Просмотр исходного кода

Linux/AMD: Fixed font shaders.

bkaradzic 12 лет назад
Родитель
Сommit
9c005e40ba

+ 7 - 2
examples/common/font/fs_font_basic.sc

@@ -8,6 +8,11 @@ void main()
 {
 	vec4 color = textureCube(u_texColor, v_texcoord0.xyz);
 	int index = int(v_texcoord0.w*4.0 + 0.5);
-	float a = color.bgra[index];
-	gl_FragColor = vec4(v_color0.rgb, v_color0.a * a);
+	float rgba[4];
+	rgba[0] = color.z;
+	rgba[1] = color.y;
+	rgba[2] = color.x;
+	rgba[3] = color.w;
+	float alpha = rgba[index];
+	gl_FragColor = vec4(v_color0.xyz, v_color0.a * alpha);
 }

+ 8 - 5
examples/common/font/fs_font_distance_field.sc

@@ -4,18 +4,21 @@ $input v_color0, v_texcoord0
 
 SAMPLERCUBE(u_texColor, 0);
 
-uniform float u_inverse_gamma;
-
 void main()
 {	
 	vec4 color = textureCube(u_texColor, v_texcoord0.xyz);
 	int index = int(v_texcoord0.w*4.0 + 0.5);
-	float distance = color.bgra[index];
+	float rgba[4];
+	rgba[0] = color.z;
+	rgba[1] = color.y;
+	rgba[2] = color.x;
+	rgba[3] = color.w;
+	float dist = rgba[index];
 
 	float dx = length(dFdx(v_texcoord0.xyz) );
 	float dy = length(dFdy(v_texcoord0.xyz) );
 	float w = 16.0*0.5*(dx+dy);
 
-	float a = smoothstep(0.5-w, 0.5+w, distance);
-	gl_FragColor = vec4(v_color0.rgb, v_color0.a*a);
+	float alpha = smoothstep(0.5-w, 0.5+w, dist);
+	gl_FragColor = vec4(v_color0.xyz, v_color0.w*alpha);
 }