commit 80927985fbb40e0bdf2a3c4322d808a9681cca6a
parent 7c089442c3c9877eec2422780f6ce57315de2d11
Author: Tony Crisci <tony@dubstepdish.com>
Date: Sat, 17 Feb 2018 16:30:32 -0500
fix output rendering issue
Diffstat:
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/sway/desktop/output.c b/sway/desktop/output.c
@@ -46,18 +46,22 @@ static void render_surface(struct wlr_surface *surface,
int height = surface->current->height;
int render_width = width * wlr_output->scale;
int render_height = height * wlr_output->scale;
- double ox = lx, oy = ly;
- wlr_output_layout_output_coords(layout, wlr_output, &ox, &oy);
- ox *= wlr_output->scale;
- oy *= wlr_output->scale;
+ int owidth, oheight;
+ wlr_output_effective_resolution(wlr_output, &owidth, &oheight);
- struct wlr_box render_box = {
- .x = lx, .y = ly,
+ // FIXME: view coords are inconsistently assumed to be in output or layout coords
+ struct wlr_box layout_box = {
+ .x = lx + owidth, .y = ly + oheight,
.width = render_width, .height = render_height,
};
- if (wlr_output_layout_intersects(layout, wlr_output, &render_box)) {
+ if (wlr_output_layout_intersects(layout, wlr_output, &layout_box)) {
+ struct wlr_box render_box = {
+ .x = lx, .y = ly,
+ .width = render_width, .height = render_height
+ };
float matrix[16];
- wlr_matrix_project_box(&matrix, &render_box, surface->current->transform, 0, &wlr_output->transform_matrix);
+ wlr_matrix_project_box(&matrix, &render_box,
+ surface->current->transform, 0, &wlr_output->transform_matrix);
wlr_render_with_matrix(server.renderer, surface->texture,
&matrix);