11package com .tencent .vod .flutter .player .render .gl ;
22
33import android .opengl .GLES11Ext ;
4- import android .opengl .GLES30 ;
4+ import android .opengl .GLES20 ;
55import android .opengl .Matrix ;
66
77import com .tencent .liteav .base .util .LiteavLog ;
@@ -82,10 +82,10 @@ public FTXTextureRender(int width, int height) {
8282 */
8383 public void surfaceCreated () {
8484 mVideoFragmentProgram = TXGlUtilVideo .createProgram (VERTEX_SHADER , VIDEO_FRAGMENT_SHADER );
85- maPositionHandle = GLES30 .glGetAttribLocation (mVideoFragmentProgram , "aPosition" );
86- maTexCoordHandle = GLES30 .glGetAttribLocation (mVideoFragmentProgram , "aTextureCoord" );
87- muMVPMatrixHandle = GLES30 .glGetUniformLocation (mVideoFragmentProgram , "uMVPMatrix" );
88- maTextureHandle = GLES30 .glGetUniformLocation (mVideoFragmentProgram , "sTexture" );
85+ maPositionHandle = GLES20 .glGetAttribLocation (mVideoFragmentProgram , "aPosition" );
86+ maTexCoordHandle = GLES20 .glGetAttribLocation (mVideoFragmentProgram , "aTextureCoord" );
87+ muMVPMatrixHandle = GLES20 .glGetUniformLocation (mVideoFragmentProgram , "uMVPMatrix" );
88+ maTextureHandle = GLES20 .glGetUniformLocation (mVideoFragmentProgram , "sTexture" );
8989
9090 textureID [0 ] = initTex ();
9191 }
@@ -95,8 +95,8 @@ public int getTextureID() {
9595 }
9696
9797 public void deleteTexture () {
98- GLES30 .glDeleteProgram (mVideoFragmentProgram );
99- GLES30 .glDeleteTextures (1 , textureID , 0 );
98+ GLES20 .glDeleteProgram (mVideoFragmentProgram );
99+ GLES20 .glDeleteTextures (1 , textureID , 0 );
100100 }
101101
102102 /**
@@ -106,17 +106,17 @@ public void deleteTexture() {
106106 */
107107 public int initTex () {
108108 int [] tex = new int [1 ];
109- GLES30 .glGenTextures (1 , tex , 0 );
110- GLES30 .glActiveTexture (GLES30 .GL_TEXTURE0 );
111- GLES30 .glBindTexture (GLES11Ext .GL_TEXTURE_EXTERNAL_OES , tex [0 ]);
112- GLES30 .glTexParameteri (GLES11Ext .GL_TEXTURE_EXTERNAL_OES ,
113- GLES30 .GL_TEXTURE_WRAP_S , GLES30 .GL_CLAMP_TO_EDGE );
114- GLES30 .glTexParameteri (GLES11Ext .GL_TEXTURE_EXTERNAL_OES ,
115- GLES30 .GL_TEXTURE_WRAP_T , GLES30 .GL_CLAMP_TO_EDGE );
116- GLES30 .glTexParameteri (GLES11Ext .GL_TEXTURE_EXTERNAL_OES ,
117- GLES30 .GL_TEXTURE_MIN_FILTER , GLES30 .GL_LINEAR );
118- GLES30 .glTexParameteri (GLES11Ext .GL_TEXTURE_EXTERNAL_OES ,
119- GLES30 .GL_TEXTURE_MAG_FILTER , GLES30 .GL_LINEAR );
109+ GLES20 .glGenTextures (1 , tex , 0 );
110+ GLES20 .glActiveTexture (GLES20 .GL_TEXTURE0 );
111+ GLES20 .glBindTexture (GLES11Ext .GL_TEXTURE_EXTERNAL_OES , tex [0 ]);
112+ GLES20 .glTexParameteri (GLES11Ext .GL_TEXTURE_EXTERNAL_OES ,
113+ GLES20 .GL_TEXTURE_WRAP_S , GLES20 .GL_CLAMP_TO_EDGE );
114+ GLES20 .glTexParameteri (GLES11Ext .GL_TEXTURE_EXTERNAL_OES ,
115+ GLES20 .GL_TEXTURE_WRAP_T , GLES20 .GL_CLAMP_TO_EDGE );
116+ GLES20 .glTexParameteri (GLES11Ext .GL_TEXTURE_EXTERNAL_OES ,
117+ GLES20 .GL_TEXTURE_MIN_FILTER , GLES20 .GL_LINEAR );
118+ GLES20 .glTexParameteri (GLES11Ext .GL_TEXTURE_EXTERNAL_OES ,
119+ GLES20 .GL_TEXTURE_MAG_FILTER , GLES20 .GL_LINEAR );
120120 return tex [0 ];
121121 }
122122
@@ -201,8 +201,8 @@ private void mergerMatrix() {
201201 }
202202
203203 public void cleanDrawCache () {
204- GLES30 .glViewport (0 , 0 , mPortWidth , mPortHeight );
205- GLES30 .glClear (GLES30 .GL_COLOR_BUFFER_BIT );
204+ GLES20 .glViewport (0 , 0 , mPortWidth , mPortHeight );
205+ GLES20 .glClear (GLES20 .GL_COLOR_BUFFER_BIT );
206206 }
207207
208208 /**
@@ -211,30 +211,30 @@ public void cleanDrawCache() {
211211 public void drawFrame () {
212212 cleanDrawCache ();
213213 // video frame
214- GLES30 .glUseProgram (mVideoFragmentProgram );
214+ GLES20 .glUseProgram (mVideoFragmentProgram );
215215
216216 // OpenGL rotates counterclockwise, here it needs to be modified to rotate clockwise
217- GLES30 .glUniformMatrix4fv (muMVPMatrixHandle , 1 , false , mResultMatrix , 0 );
217+ GLES20 .glUniformMatrix4fv (muMVPMatrixHandle , 1 , false , mResultMatrix , 0 );
218218
219- GLES30 .glActiveTexture (GLES30 .GL_TEXTURE0 );
220- GLES30 .glBindTexture (GLES11Ext .GL_TEXTURE_EXTERNAL_OES , textureID [0 ]);
221- GLES30 .glUniform1i (maTextureHandle , 0 );
219+ GLES20 .glActiveTexture (GLES20 .GL_TEXTURE0 );
220+ GLES20 .glBindTexture (GLES11Ext .GL_TEXTURE_EXTERNAL_OES , textureID [0 ]);
221+ GLES20 .glUniform1i (maTextureHandle , 0 );
222222
223223 // Enable the "aPosition" vertex attribute.
224- GLES30 .glEnableVertexAttribArray (maPositionHandle );
224+ GLES20 .glEnableVertexAttribArray (maPositionHandle );
225225 // Connect vertexBuffer to "aPosition".
226- GLES30 .glVertexAttribPointer (maPositionHandle , 3 ,
227- GLES30 .GL_FLOAT , false , 3 * FLOAT_SIZE_BYTES , FULL_RECTANGLE_BUF );
226+ GLES20 .glVertexAttribPointer (maPositionHandle , 3 ,
227+ GLES20 .GL_FLOAT , false , 3 * FLOAT_SIZE_BYTES , FULL_RECTANGLE_BUF );
228228 // Enable the "aTextureCoord" vertex attribute.
229- GLES30 .glEnableVertexAttribArray (maTexCoordHandle );
229+ GLES20 .glEnableVertexAttribArray (maTexCoordHandle );
230230 // Connect texBuffer to "aTextureCoord".
231- GLES30 .glVertexAttribPointer (maTexCoordHandle , 4 ,
232- GLES30 .GL_FLOAT , false , 4 * FLOAT_SIZE_BYTES , FULL_RECTANGLE_TEX_BUF );
231+ GLES20 .glVertexAttribPointer (maTexCoordHandle , 4 ,
232+ GLES20 .GL_FLOAT , false , 4 * FLOAT_SIZE_BYTES , FULL_RECTANGLE_TEX_BUF );
233233 // Draw the rect.
234- GLES30 .glDrawArrays (GLES30 .GL_TRIANGLE_STRIP , 0 , 4 );
234+ GLES20 .glDrawArrays (GLES20 .GL_TRIANGLE_STRIP , 0 , 4 );
235235 // Done -- disable vertex array, texture, and program.
236- GLES30 .glDisableVertexAttribArray (maPositionHandle );
237- GLES30 .glDisableVertexAttribArray (maTexCoordHandle );
238- GLES30 .glUseProgram (0 );
236+ GLES20 .glDisableVertexAttribArray (maPositionHandle );
237+ GLES20 .glDisableVertexAttribArray (maTexCoordHandle );
238+ GLES20 .glUseProgram (0 );
239239 }
240240}
0 commit comments