gl renderer: Remove shadow program
authorTimm Bäder <mail@baedert.org>
Thu, 15 Mar 2018 17:07:35 +0000 (18:07 +0100)
committerTimm Bäder <mail@baedert.org>
Thu, 15 Mar 2018 17:12:00 +0000 (18:12 +0100)
Drawing shadows is the same task as drawing text in our case and these
two shaders have been the same thing for quite a while.

gsk/gl/gskglrenderer.c
gsk/gl/gskglrenderopsprivate.h
gsk/meson.build
gsk/resources/glsl/coloring.fs.glsl
gsk/resources/glsl/shadow.fs.glsl [deleted file]

index b82c2e53c3a1d6cd0527ddc143abc3f9d91a1992..f6137b76367e79928977865348cb121115ce7efa 100644 (file)
@@ -209,7 +209,6 @@ struct _GskGLRenderer
       Program inset_shadow_program;
       Program outset_shadow_program;
       Program unblurred_outset_shadow_program;
-      Program shadow_program;
       Program border_program;
       Program cross_fade_program;
     };
@@ -1371,7 +1370,7 @@ render_shadow_node (GskGLRenderer       *self,
                          shadow_child, &texture_id, &is_offscreen, FALSE, TRUE);
 
       ops_offset (builder, dx, dy);
-      ops_set_program (builder, &self->shadow_program);
+      ops_set_program (builder, &self->coloring_program);
       ops_set_color (builder, &shadow->color);
       ops_set_texture (builder, texture_id);
       if (is_offscreen)
@@ -1755,7 +1754,6 @@ gsk_gl_renderer_create_programs (GskGLRenderer  *self,
     { "inset shadow",    "blit.vs.glsl",  "inset_shadow.fs.glsl" },
     { "outset shadow",   "blit.vs.glsl",  "outset_shadow.fs.glsl" },
     { "unblurred outset shadow",   "blit.vs.glsl",  "unblurred_outset_shadow.fs.glsl" },
-    { "shadow",          "blit.vs.glsl",  "shadow.fs.glsl" },
     { "border",          "blit.vs.glsl",  "border.fs.glsl" },
     { "cross fade",      "blit.vs.glsl",  "cross_fade.fs.glsl" },
   };
@@ -1874,9 +1872,6 @@ gsk_gl_renderer_create_programs (GskGLRenderer  *self,
   INIT_PROGRAM_UNIFORM_LOCATION (unblurred_outset_shadow, corner_widths);
   INIT_PROGRAM_UNIFORM_LOCATION (unblurred_outset_shadow, corner_heights);
 
-  /* shadow */
-  INIT_PROGRAM_UNIFORM_LOCATION (shadow, color);
-
   /* border */
   INIT_PROGRAM_UNIFORM_LOCATION (border, color);
   INIT_PROGRAM_UNIFORM_LOCATION (border, widths);
index 7d6fe8a82177ffa7c399f8fe004e7fc6bbb1a1dd..ddf6b5e3112c6689326dfd6dcadd423fca600ae1 100644 (file)
@@ -10,7 +10,7 @@
 #include "gskglrendererprivate.h"
 
 #define GL_N_VERTICES 6
-#define GL_N_PROGRAMS 13
+#define GL_N_PROGRAMS 12
 
 enum {
   OP_NONE,
@@ -63,9 +63,6 @@ typedef struct
     struct {
       int color_location;
     } coloring;
-    struct {
-      int color_location;
-    } shadow;
     struct {
       int color_matrix_location;
       int color_offset_location;
index e5a66313d30d76fabe8761a72968817dc8c08ac4..0c8b6400ec74e79f6636fdee45ccd7767ccd0425 100644 (file)
@@ -11,7 +11,6 @@ gsk_private_gl_shaders = [
   'resources/glsl/inset_shadow.fs.glsl',
   'resources/glsl/outset_shadow.fs.glsl',
   'resources/glsl/unblurred_outset_shadow.fs.glsl',
-  'resources/glsl/shadow.fs.glsl',
   'resources/glsl/border.fs.glsl',
   'resources/glsl/cross_fade.fs.glsl',
   'resources/glsl/es2_common.fs.glsl',
index 7b2e68b4c00bde856f306c357ce300306d287485..b8aa382eab380b00523c2ec8ee8ec265193a9a27 100644 (file)
@@ -8,6 +8,7 @@ void main() {
   color.rgb *= color.a;
 
   // u_source is drawn using cairo, so already pre-multiplied.
+  color = vec4(u_color.rgb * diffuse.a * u_alpha, diffuse.a * color.a * u_alpha);
 
-  setOutputColor(color * diffuse * u_alpha);
+  setOutputColor(color);
 }
diff --git a/gsk/resources/glsl/shadow.fs.glsl b/gsk/resources/glsl/shadow.fs.glsl
deleted file mode 100644 (file)
index 9faab8c..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-uniform vec4 u_color;
-
-void main() {
-  vec4 diffuse = Texture(u_source, vUv);
-  vec4 color = u_color;
-
-  // pre-multiply
-  color.rgb *= color.a;
-
-  color = vec4(u_color.rgb * diffuse.a * u_alpha, diffuse.a * color.a * u_alpha);
-
-  setOutputColor(color);
-}