mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-25 22:25:58 +01:00
parent
5299d973d5
commit
e9706e62f5
3 changed files with 12 additions and 7 deletions
|
@ -210,17 +210,18 @@ static void render_pass_add_rect(struct wlr_render_pass *wlr_pass,
|
||||||
struct wlr_gles2_renderer *renderer = pass->buffer->renderer;
|
struct wlr_gles2_renderer *renderer = pass->buffer->renderer;
|
||||||
|
|
||||||
const struct wlr_render_color *color = &options->color;
|
const struct wlr_render_color *color = &options->color;
|
||||||
const struct wlr_box *box = &options->box;
|
struct wlr_box box;
|
||||||
|
wlr_render_rect_options_get_box(options, pass->buffer->buffer, &box);
|
||||||
|
|
||||||
push_gles2_debug(renderer);
|
push_gles2_debug(renderer);
|
||||||
setup_blending(color->a == 1.0 ? WLR_RENDER_BLEND_MODE_NONE : options->blend_mode);
|
setup_blending(color->a == 1.0 ? WLR_RENDER_BLEND_MODE_NONE : options->blend_mode);
|
||||||
|
|
||||||
glUseProgram(renderer->shaders.quad.program);
|
glUseProgram(renderer->shaders.quad.program);
|
||||||
|
|
||||||
set_proj_matrix(renderer->shaders.quad.proj, pass->projection_matrix, &options->box);
|
set_proj_matrix(renderer->shaders.quad.proj, pass->projection_matrix, &box);
|
||||||
glUniform4f(renderer->shaders.quad.color, color->r, color->g, color->b, color->a);
|
glUniform4f(renderer->shaders.quad.color, color->r, color->g, color->b, color->a);
|
||||||
|
|
||||||
render(box, options->clip, renderer->shaders.quad.pos_attrib);
|
render(&box, options->clip, renderer->shaders.quad.pos_attrib);
|
||||||
|
|
||||||
pop_gles2_debug(renderer);
|
pop_gles2_debug(renderer);
|
||||||
}
|
}
|
||||||
|
|
|
@ -162,7 +162,8 @@ static void render_pass_add_rect(struct wlr_render_pass *wlr_pass,
|
||||||
const struct wlr_render_rect_options *options) {
|
const struct wlr_render_rect_options *options) {
|
||||||
struct wlr_pixman_render_pass *pass = get_render_pass(wlr_pass);
|
struct wlr_pixman_render_pass *pass = get_render_pass(wlr_pass);
|
||||||
struct wlr_pixman_buffer *buffer = pass->buffer;
|
struct wlr_pixman_buffer *buffer = pass->buffer;
|
||||||
struct wlr_box box = options->box;
|
struct wlr_box box;
|
||||||
|
wlr_render_rect_options_get_box(options, pass->buffer->buffer, &box);
|
||||||
|
|
||||||
pixman_op_t op = get_pixman_blending(options->color.a == 1 ?
|
pixman_op_t op = get_pixman_blending(options->color.a == 1 ?
|
||||||
WLR_RENDER_BLEND_MODE_NONE : options->blend_mode);
|
WLR_RENDER_BLEND_MODE_NONE : options->blend_mode);
|
||||||
|
|
|
@ -428,11 +428,14 @@ static void render_pass_add_rect(struct wlr_render_pass *wlr_pass,
|
||||||
int clip_rects_len;
|
int clip_rects_len;
|
||||||
const pixman_box32_t *clip_rects = pixman_region32_rectangles(&clip, &clip_rects_len);
|
const pixman_box32_t *clip_rects = pixman_region32_rectangles(&clip, &clip_rects_len);
|
||||||
|
|
||||||
|
struct wlr_box box;
|
||||||
|
wlr_render_rect_options_get_box(options, pass->render_buffer->wlr_buffer, &box);
|
||||||
|
|
||||||
switch (options->blend_mode) {
|
switch (options->blend_mode) {
|
||||||
case WLR_RENDER_BLEND_MODE_PREMULTIPLIED:;
|
case WLR_RENDER_BLEND_MODE_PREMULTIPLIED:;
|
||||||
float proj[9], matrix[9];
|
float proj[9], matrix[9];
|
||||||
wlr_matrix_identity(proj);
|
wlr_matrix_identity(proj);
|
||||||
wlr_matrix_project_box(matrix, &options->box, WL_OUTPUT_TRANSFORM_NORMAL, 0, proj);
|
wlr_matrix_project_box(matrix, &box, WL_OUTPUT_TRANSFORM_NORMAL, 0, proj);
|
||||||
wlr_matrix_multiply(matrix, pass->projection, matrix);
|
wlr_matrix_multiply(matrix, pass->projection, matrix);
|
||||||
|
|
||||||
struct wlr_vk_pipeline *pipe = setup_get_or_create_pipeline(
|
struct wlr_vk_pipeline *pipe = setup_get_or_create_pipeline(
|
||||||
|
@ -479,8 +482,8 @@ static void render_pass_add_rect(struct wlr_render_pass *wlr_pass,
|
||||||
};
|
};
|
||||||
VkClearRect clear_rect = {
|
VkClearRect clear_rect = {
|
||||||
.rect = {
|
.rect = {
|
||||||
.offset = { options->box.x, options->box.y },
|
.offset = { box.x, box.y },
|
||||||
.extent = { options->box.width, options->box.height },
|
.extent = { box.width, box.height },
|
||||||
},
|
},
|
||||||
.layerCount = 1,
|
.layerCount = 1,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue