From ef6c45b9340c7fce5d1d807dc0e417d47522e9e1 Mon Sep 17 00:00:00 2001 From: inorichi Date: Wed, 13 May 2026 19:58:12 +0200 Subject: [PATCH] Fix texture blending --- .../ass/media/widget/AssSubtitleTextureView.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib_ass_media/src/main/java/io/github/peerless2012/ass/media/widget/AssSubtitleTextureView.kt b/lib_ass_media/src/main/java/io/github/peerless2012/ass/media/widget/AssSubtitleTextureView.kt index fd785a4..a96f4fc 100644 --- a/lib_ass_media/src/main/java/io/github/peerless2012/ass/media/widget/AssSubtitleTextureView.kt +++ b/lib_ass_media/src/main/java/io/github/peerless2012/ass/media/widget/AssSubtitleTextureView.kt @@ -211,8 +211,7 @@ class AssSubtitleTextureView : TextureView, AssSubtitleRender, TextureView.Surfa uniform vec4 u_Color; void main() { float alpha = texture2D(u_Texture, v_TexCoord).a; - gl_FragColor = u_Color * alpha; - + gl_FragColor = vec4(u_Color.rgb, u_Color.a * alpha); } """.trimIndent() @@ -272,9 +271,9 @@ class AssSubtitleTextureView : TextureView, AssSubtitleRender, TextureView.Surfa GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, 0) // enable blend - GLES20.glEnable(GLES20.GL_BLEND); + GLES20.glEnable(GLES20.GL_BLEND) // set blend mode - GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA); + GLES20.glBlendFuncSeparate(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA, GLES20.GL_ONE, GLES20.GL_ONE_MINUS_SRC_ALPHA) } override fun onSurfaceChanged(width: Int, height: Int) {