66#include <GLES2/gl2ext.h>
77#include <stdint.h>
88#include <stdlib.h>
9+ #include <string.h>
910#include <time.h>
1011#include <wlr/config.h>
1112#include <wlr/render/allocator.h>
1617#include <wlr/types/wlr_buffer.h>
1718#include <wlr/util/log.h>
1819
20+ #include "gl_grayscale_frag_src.h"
21+ #include "gl_invert_frag_src.h"
22+ #include "gl_nightlight_frag_src.h"
23+ #include "gl_sepia_frag_src.h"
24+
1925#ifdef WLR_HAS_GLES2_RENDERER
2026const struct wlr_drm_format_set * wlr_renderer_get_render_formats (struct wlr_renderer * renderer );
2127
@@ -1061,6 +1067,18 @@ static void gles2_destroy_screen_shader(void) {
10611067 g -> screen_shader_u_time = -1 ;
10621068}
10631069
1070+ static const char * gles2_get_screen_shader_source (const char * name ) {
1071+ if (strcmp (name , "grayscale" ) == 0 )
1072+ return gl_grayscale_frag_src ;
1073+ if (strcmp (name , "invert" ) == 0 )
1074+ return gl_invert_frag_src ;
1075+ if (strcmp (name , "sepia" ) == 0 )
1076+ return gl_sepia_frag_src ;
1077+ if (strcmp (name , "nightlight" ) == 0 )
1078+ return gl_nightlight_frag_src ;
1079+ return NULL ;
1080+ }
1081+
10641082const effects_backend_t gles2_backend = {
10651083 .init = gles2_init ,
10661084 .fini = gles2_fini ,
@@ -1080,6 +1098,7 @@ const effects_backend_t gles2_backend = {
10801098 .apply_corner_mask = gles2_apply_corner_mask ,
10811099 .apply_screen_shader = gles2_apply_screen_shader ,
10821100 .capture_readback = gles2_capture_readback ,
1101+ .get_screen_shader_source = gles2_get_screen_shader_source ,
10831102 .compile_screen_shader = gles2_compile_screen_shader ,
10841103 .destroy_screen_shader = gles2_destroy_screen_shader ,
10851104};
0 commit comments