val mediaPlayer = MediaPlayer().apply setDataSource(videoPath) setSurface(Surface(renderer.getSurfaceTexture())) prepare() start()
fun getSurfaceTexture(): SurfaceTexture = surfaceTexture
override fun onDrawFrame(gl: GL10?) surfaceTexture.updateTexImage() GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT) GLES20.glUseProgram(program) drawQuad()
// Anaglyph fragment shader – Dubois optimized matrix precision mediump float; uniform sampler2D uTexture; // frame from video varying vec2 vTexCoord; void main() vec4 color = texture2D(uTexture, vTexCoord);
private fun generateTexture(): Int // ... generate GL_TEXTURE_EXTERNAL_OES texture
gl_FragColor = vec4(r, g, b, 1.0);
val mediaPlayer = MediaPlayer().apply setDataSource(videoPath) setSurface(Surface(renderer.getSurfaceTexture())) prepare() start()
fun getSurfaceTexture(): SurfaceTexture = surfaceTexture anaglyph 3d video player for android
override fun onDrawFrame(gl: GL10?) surfaceTexture.updateTexImage() GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT) GLES20.glUseProgram(program) drawQuad() val mediaPlayer = MediaPlayer()
// Anaglyph fragment shader – Dubois optimized matrix precision mediump float; uniform sampler2D uTexture; // frame from video varying vec2 vTexCoord; void main() vec4 color = texture2D(uTexture, vTexCoord); uniform sampler2D uTexture
private fun generateTexture(): Int // ... generate GL_TEXTURE_EXTERNAL_OES texture
gl_FragColor = vec4(r, g, b, 1.0);