gles2: Honor alpha in fragment_src_external
By using the same vertex shader and adding alpha to the fragment shader
for external textures we can:
  - use alpha blending
  - have wlr_gles2_render_texture_with_matrix work with
    the GL_TEXTURE_EXTERNAL_OES. So far this failed
    since we passed in alpha which was unknown by fragment_src_external
			
			
This commit is contained in:
		
							parent
							
								
									13e4ba4867
								
							
						
					
					
						commit
						2d01663b25
					
				|  | @ -90,7 +90,7 @@ static void init_default_shaders() { | ||||||
| 		goto error; | 		goto error; | ||||||
| 	} | 	} | ||||||
| 	if (glEGLImageTargetTexture2DOES) { | 	if (glEGLImageTargetTexture2DOES) { | ||||||
| 		if (!compile_program(quad_vertex_src, fragment_src_external, | 		if (!compile_program(vertex_src, fragment_src_external, | ||||||
| 				&shaders.external)) { | 				&shaders.external)) { | ||||||
| 			goto error; | 			goto error; | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | @ -80,8 +80,9 @@ const GLchar fragment_src_external[] = | ||||||
| "precision mediump float;" | "precision mediump float;" | ||||||
| "varying vec2 v_texcoord;" | "varying vec2 v_texcoord;" | ||||||
| "uniform samplerExternalOES texture0;" | "uniform samplerExternalOES texture0;" | ||||||
|  | "uniform float alpha;" | ||||||
| "" | "" | ||||||
| "void main() {" | "void main() {" | ||||||
| "	vec4 col = texture2D(texture0, v_texcoord);" | "	vec4 col = texture2D(texture0, v_texcoord);" | ||||||
| "	gl_FragColor = vec4(col.rgb, col.a);" | "	gl_FragColor = vec4(col.rgb, col.a * alpha);" | ||||||
| "}"; | "}"; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue