@@ -44,15 +44,21 @@ public class FTXTextureRender {
4444 "}\n " ;
4545
4646 private static final String VIDEO_FRAGMENT_SHADER =
47- "#version 300 es\n " +
48- "#extension GL_OES_EGL_image_external_essl3 : require\n " +
49- "precision mediump float;\n " +
50- "uniform samplerExternalOES sTexture;\n " +
51- "in vec2 vTextureCoord;\n " +
52- "out vec4 outColor;\n " +
53- "void main() {\n " +
54- " outColor = texture(sTexture, vTextureCoord);\n " +
55- "}" ;
47+ "#version 300 es\n "
48+ + "#extension GL_OES_EGL_image_external_essl3 : require\n "
49+ + "precision mediump float;\n "
50+ + "uniform samplerExternalOES sTexture;\n "
51+ + "in vec2 vTextureCoord;\n "
52+ + "out vec4 outColor;\n "
53+ + "void main() {\n "
54+ + " vec2 safeCoord = vTextureCoord;\n "
55+ + " if (safeCoord.x > 0.99) {\n "
56+ + " safeCoord.x = 0.99;\n "
57+ + " }\n "
58+ + " safeCoord.x = clamp(safeCoord.x, 0.001, 0.999);\n "
59+ + " safeCoord.y = clamp(safeCoord.y, 0.001, 0.999);\n "
60+ + " outColor = texture(sTexture, safeCoord);\n "
61+ + "}\n " ;
5662
5763 private final float [] projectionMatrix = new float [16 ];
5864 private final float [] rotationMatrix = new float [16 ];
@@ -113,9 +119,9 @@ public int initTex() {
113119 GLES20 .GL_TEXTURE_WRAP_S , GLES20 .GL_CLAMP_TO_EDGE );
114120 GLES20 .glTexParameteri (GLES11Ext .GL_TEXTURE_EXTERNAL_OES ,
115121 GLES20 .GL_TEXTURE_WRAP_T , GLES20 .GL_CLAMP_TO_EDGE );
116- GLES20 .glTexParameteri (GLES11Ext .GL_TEXTURE_EXTERNAL_OES ,
122+ GLES20 .glTexParameterf (GLES11Ext .GL_TEXTURE_EXTERNAL_OES ,
117123 GLES20 .GL_TEXTURE_MIN_FILTER , GLES20 .GL_LINEAR );
118- GLES20 .glTexParameteri (GLES11Ext .GL_TEXTURE_EXTERNAL_OES ,
124+ GLES20 .glTexParameterf (GLES11Ext .GL_TEXTURE_EXTERNAL_OES ,
119125 GLES20 .GL_TEXTURE_MAG_FILTER , GLES20 .GL_LINEAR );
120126 return tex [0 ];
121127 }
@@ -197,7 +203,6 @@ private void mergerMatrix() {
197203 // reset
198204 Matrix .setIdentityM (mResultMatrix , 0 );
199205 Matrix .multiplyMM (mResultMatrix , 0 , rotationMatrix , 0 , projectionMatrix , 0 );
200- System .arraycopy (mResultMatrix , 0 , projectionMatrix , 0 , 16 );
201206 }
202207
203208 public void cleanDrawCache () {
0 commit comments