summaryrefslogtreecommitdiff
path: root/include/render/fx_renderer
diff options
context:
space:
mode:
Diffstat (limited to 'include/render/fx_renderer')
-rw-r--r--include/render/fx_renderer/fx_renderer.h7
-rw-r--r--include/render/fx_renderer/shaders.h67
2 files changed, 74 insertions, 0 deletions
diff --git a/include/render/fx_renderer/fx_renderer.h b/include/render/fx_renderer/fx_renderer.h
index 526a640..bb8d205 100644
--- a/include/render/fx_renderer/fx_renderer.h
+++ b/include/render/fx_renderer/fx_renderer.h
@@ -161,16 +161,23 @@ struct fx_renderer {
struct {
struct quad_shader quad;
+ struct quad_grad_shader quad_grad;
struct quad_round_shader quad_round;
struct quad_round_shader quad_round_tl;
struct quad_round_shader quad_round_tr;
struct quad_round_shader quad_round_bl;
struct quad_round_shader quad_round_br;
+ struct quad_grad_round_shader quad_grad_round;
+ struct quad_grad_round_shader quad_grad_round_tl;
+ struct quad_grad_round_shader quad_grad_round_tr;
+ struct quad_grad_round_shader quad_grad_round_bl;
+ struct quad_grad_round_shader quad_grad_round_br;
struct tex_shader tex_rgba;
struct tex_shader tex_rgbx;
struct tex_shader tex_ext;
struct box_shadow_shader box_shadow;
struct rounded_border_corner_shader rounded_border_corner;
+ struct rounded_grad_border_corner_shader rounded_grad_border_corner;
struct blur_shader blur1;
struct blur_shader blur2;
struct blur_effects_shader blur_effects;
diff --git a/include/render/fx_renderer/shaders.h b/include/render/fx_renderer/shaders.h
index 6c19744..ad18167 100644
--- a/include/render/fx_renderer/shaders.h
+++ b/include/render/fx_renderer/shaders.h
@@ -37,6 +37,24 @@ struct quad_shader {
bool link_quad_program(struct quad_shader *shader);
+struct quad_grad_shader {
+ int max_len;
+
+ GLuint program;
+ GLint proj;
+ GLint colors;
+ GLint size;
+ GLint degree;
+ GLint grad_box;
+ GLint pos_attrib;
+ GLint linear;
+ GLint origin;
+ GLint count;
+ GLint blend;
+};
+
+bool link_quad_grad_program(struct quad_grad_shader *shader, int max_len);
+
struct quad_round_shader {
GLuint program;
GLint proj;
@@ -49,6 +67,29 @@ struct quad_round_shader {
bool link_quad_round_program(struct quad_round_shader *shader, enum fx_rounded_quad_shader_source source);
+struct quad_grad_round_shader {
+ GLuint program;
+ GLint proj;
+ GLint color;
+ GLint pos_attrib;
+ GLint size;
+ GLint position;
+ GLint radius;
+
+ GLint colors;
+ GLint grad_size;
+ GLint degree;
+ GLint grad_box;
+ GLint linear;
+ GLint origin;
+ GLint count;
+ GLint blend;
+
+ int max_len;
+};
+
+bool link_quad_grad_round_program(struct quad_grad_round_shader *shader, enum fx_rounded_quad_shader_source source, int max_len);
+
struct tex_shader {
GLuint program;
GLint proj;
@@ -84,6 +125,32 @@ struct rounded_border_corner_shader {
bool link_rounded_border_corner_program(struct rounded_border_corner_shader *shader);
+struct rounded_grad_border_corner_shader {
+ int max_len;
+ GLuint program;
+ GLint proj;
+ GLint is_top_left;
+ GLint is_top_right;
+ GLint is_bottom_left;
+ GLint is_bottom_right;
+ GLint position;
+ GLint radius;
+ GLint half_size;
+ GLint half_thickness;
+
+ GLint colors;
+ GLint size;
+ GLint degree;
+ GLint grad_box;
+ GLint pos_attrib;
+ GLint linear;
+ GLint origin;
+ GLint count;
+ GLint blend;
+};
+
+bool link_rounded_grad_border_corner_program(struct rounded_grad_border_corner_shader *shader, int max_len);
+
struct box_shadow_shader {
GLuint program;
GLint proj;