private fun generateTexture(): Int // ... generate GL_TEXTURE_EXTERNAL_OES texture
// Dubois anaglyph red-cyan coefficients float r = left.r * 0.437 + left.g * 0.449 + left.b * 0.164; float g = right.r * 0.062 + right.g * 0.354 + right.b * 0.207; float b = right.r * 0.011 + right.g * 0.101 + right.b * 0.142; anaglyph 3d video player for android
override fun onSurfaceChanged(gl: GL10?, width: Int, height: Int) GLES20.glViewport(0, 0, width, height) private fun generateTexture(): Int //
override fun onDrawFrame(gl: GL10?) surfaceTexture.updateTexImage() GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT) GLES20.glUseProgram(program) drawQuad() override fun onSurfaceChanged(gl: GL10?
gl_FragColor = vec4(r, g, b, 1.0);
// 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);