mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-27 06:00:22 +00:00
gl renderer: Remove shadow program
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.
This commit is contained in:
parent
0a7880110e
commit
eaf899061a
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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',
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
Loading…
Reference in New Issue
Block a user