diff options
author | Will McKinnon <[email protected]> | 2023-04-06 18:49:51 -0400 |
---|---|---|
committer | Will McKinnon <[email protected]> | 2023-04-06 20:30:42 -0400 |
commit | 420364dd191fa3c22370bbaa34f178b07bcb8318 (patch) | |
tree | bf7e3bcb7a0835e0c16901a3b800c7f218607d53 /include/sway/desktop/fx_renderer.h | |
parent | c24fccd45c4bc69c968a09ae5b953672a29bac12 (diff) |
structure: moved fx_renderer and related fuctions to a folder
Diffstat (limited to 'include/sway/desktop/fx_renderer.h')
-rw-r--r-- | include/sway/desktop/fx_renderer.h | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/include/sway/desktop/fx_renderer.h b/include/sway/desktop/fx_renderer.h deleted file mode 100644 index a48a00e1..00000000 --- a/include/sway/desktop/fx_renderer.h +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef _SWAY_OPENGL_H -#define _SWAY_OPENGL_H - -#include <GLES2/gl2.h> -#include <GLES2/gl2ext.h> -#include <stdbool.h> - -enum corner_location { ALL, TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT, NONE }; - -enum fx_tex_shader_source { - SHADER_SOURCE_TEXTURE_RGBA = 1, - SHADER_SOURCE_TEXTURE_RGBX = 2, - SHADER_SOURCE_TEXTURE_EXTERNAL = 3, -}; - -enum fx_rounded_quad_shader_source { - SHADER_SOURCE_QUAD_ROUND = 1, - SHADER_SOURCE_QUAD_ROUND_TOP_LEFT = 2, - SHADER_SOURCE_QUAD_ROUND_TOP_RIGHT = 3, -}; - -struct decoration_data { - float alpha; - float saturation; - int corner_radius; - float dim; - float* dim_color; - bool has_titlebar; -}; - -struct gles2_tex_shader { - GLuint program; - GLint proj; - GLint tex; - GLint alpha; - GLint pos_attrib; - GLint tex_attrib; - GLint size; - GLint position; - GLint radius; - GLint saturation; - GLint dim; - GLint dim_color; - GLint has_titlebar; -}; - -struct rounded_quad_shader { - GLuint program; - GLint proj; - GLint color; - GLint pos_attrib; - GLint size; - GLint position; - GLint radius; -}; - -struct fx_renderer { - struct wlr_egl *egl; - - float projection[9]; - - GLuint stencil_buffer_id; - - struct { - bool OES_egl_image_external; - } exts; - - struct { - PFNGLEGLIMAGETARGETTEXTURE2DOESPROC glEGLImageTargetTexture2DOES; - } procs; - - - // Shaders - struct { - struct { - GLuint program; - GLint proj; - GLint color; - GLint pos_attrib; - } quad; - - struct rounded_quad_shader rounded_quad; - struct rounded_quad_shader rounded_tl_quad; - struct rounded_quad_shader rounded_tr_quad; - - struct { - GLuint program; - GLint proj; - GLint color; - GLint pos_attrib; - 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; - } corner; - - struct { - GLuint program; - GLint proj; - GLint color; - GLint pos_attrib; - GLint position; - GLint size; - GLint blur_sigma; - GLint corner_radius; - } box_shadow; - - struct gles2_tex_shader tex_rgba; - struct gles2_tex_shader tex_rgbx; - struct gles2_tex_shader tex_ext; - } shaders; -}; - -struct fx_renderer *fx_renderer_create(struct wlr_egl *egl); - -void fx_renderer_begin(struct fx_renderer *renderer, uint32_t width, uint32_t height); - -void fx_renderer_end(); - -void fx_renderer_clear(const float color[static 4]); - -void fx_renderer_scissor(struct wlr_box *box); - -bool fx_render_subtexture_with_matrix(struct fx_renderer *renderer, struct wlr_texture *wlr_texture, - const struct wlr_fbox *src_box, const struct wlr_box *dst_box, const float matrix[static 9], - struct decoration_data deco_data); - -bool fx_render_texture_with_matrix(struct fx_renderer *renderer, struct wlr_texture *wlr_texture, - const struct wlr_box *dst_box, const float matrix[static 9], struct decoration_data deco_data); - -void fx_render_rect(struct fx_renderer *renderer, const struct wlr_box *box, - const float color[static 4], const float projection[static 9]); - -void fx_render_rounded_rect(struct fx_renderer *renderer, const struct wlr_box *box, - const float color[static 4], const float projection[static 9], - int radius, enum corner_location corner_location); - -void fx_render_border_corner(struct fx_renderer *renderer, const struct wlr_box *box, - const float color[static 4], const float projection[static 9], - enum corner_location corner_location, int radius, int border_thickness); - -void fx_render_box_shadow(struct fx_renderer *renderer, const struct wlr_box *box, - const float color[static 4], const float projection[static 9], int radius, float blur_sigma); - -#endif |