From 64a67c6d761923e53ce3c9f63149d2a88e3749e2 Mon Sep 17 00:00:00 2001 From: Ilia Bozhinov Date: Wed, 24 Jun 2026 19:52:31 +0200 Subject: [PATCH 1/7] update for new wayfire API --- src/annotate.cpp | 62 ++++++++++++++++---------------- src/crosshair.cpp | 6 ++-- src/extra-animations/blinds.hpp | 19 +++++----- src/extra-animations/burn.hpp | 6 ++-- src/extra-animations/carpet.hpp | 6 ++-- src/extra-animations/helix.hpp | 14 ++++---- src/extra-animations/melt.hpp | 6 ++-- src/extra-animations/shatter.hpp | 6 ++-- src/extra-animations/vortex.hpp | 6 ++-- src/fisheye.cpp | 10 +++--- src/follow-focus.cpp | 12 +++---- src/force-fullscreen.cpp | 29 +++++++-------- src/keycolor.cpp | 4 +-- src/obs.cpp | 4 +-- src/showrepaint.cpp | 14 ++++---- src/window-zoom.cpp | 14 ++++---- src/workspace-names.cpp | 6 ++-- 17 files changed, 113 insertions(+), 111 deletions(-) diff --git a/src/annotate.cpp b/src/annotate.cpp index 044cfcb..d8bca5c 100644 --- a/src/annotate.cpp +++ b/src/annotate.cpp @@ -99,7 +99,7 @@ class simple_node_render_instance_t : public render_instance_t } void schedule_instructions(std::vector& instructions, - const wf::render_target_t& target, wf::region_t& damage) override + const wf::render_target_t& target, wf::regionf_t& damage) override { // We want to render ourselves only, the node does not have children instructions.push_back(render_instruction_t{ @@ -111,15 +111,15 @@ class simple_node_render_instance_t : public render_instance_t void render(const wf::scene::render_instruction_t& data) override { - auto ol = this->overlay; - wlr_box og = {*x, *y, *w, *h}; + auto ol = this->overlay; + wf::geometry_t og = {(double)*x, (double)*y, (double)*w, (double)*h}; data.pass->custom_gles_subpass([&] { wf::gles::bind_render_buffer(data.target); for (auto& box : data.damage) { - wf::gles::render_target_logic_scissor(data.target, wlr_box_from_pixman_box(box)); + wf::gles::render_target_logic_scissor(data.target, box); if (ol->cr) { OpenGL::render_texture(wf::gles_texture_t{ol->texture->tex}, data.target, og, @@ -164,7 +164,7 @@ class simple_node_t : public node_t this, push_damage, &x, &y, &w, &h, overlay, shape_overlay)); } - void do_push_damage(wf::region_t updated_region) + void do_push_damage(wf::regionf_t updated_region) { node_damage_signal ev; ev.region = updated_region; @@ -201,7 +201,7 @@ std::shared_ptr add_simple_node(wf::output_t *output, int x, int class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t { uint32_t button; - wlr_box last_bbox; + wf::geometry_t last_bbox; annotate_draw_method draw_method; wf::pointf_t grab_point, last_cursor; std::vector>> overlays; @@ -519,15 +519,15 @@ class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public cairo_line_to(cr, to.x, to.y); cairo_stroke(cr); - wlr_box bbox; + wf::geometry_t bbox; int padding = line_width + 1; bbox.x = std::min(from.x, to.x) - padding; bbox.y = std::min(from.y, to.y) - padding; - bbox.width = abs(from.x - to.x) + padding * 2; - bbox.height = abs(from.y - to.y) + padding * 2; - get_node_overlay()->do_push_damage(wf::region_t(bbox)); + bbox.width = std::abs(from.x - to.x) + padding * 2; + bbox.height = std::abs(from.y - to.y) + padding * 2; + get_node_overlay()->do_push_damage(wf::regionf_t(bbox)); cairo_surface_upload_to_texture_with_damage(ol->cairo_surface, *ol->texture, - bbox); + wf::to_integer_box(bbox)); } bool should_damage_last() @@ -563,14 +563,14 @@ class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public cairo_line_to(cr, to.x, to.y); cairo_stroke(cr); - wlr_box bbox; + wf::geometry_t bbox; int padding = line_width + 1; bbox.x = std::min(from.x, to.x) - padding; bbox.y = std::min(from.y, to.y) - padding; - bbox.width = abs(from.x - to.x) + padding * 2; - bbox.height = abs(from.y - to.y) + padding * 2; + bbox.width = std::abs(from.x - to.x) + padding * 2; + bbox.height = std::abs(from.y - to.y) + padding * 2; output->render->damage(bbox); - wf::region_t damage_region{bbox}; + wf::regionf_t damage_region{bbox}; if (damage_last_bbox) { output->render->damage(last_bbox); @@ -579,14 +579,14 @@ class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public damage_region &= output->get_relative_geometry(); auto damage_extents = damage_region.get_extents(); - wlr_box damage_box = + auto damage_box = wf::to_integer_box(wf::geometry_t {damage_extents.x1, damage_extents.y1, damage_extents.x2 - damage_extents.x1, - damage_extents.y2 - damage_extents.y1}; + damage_extents.y2 - damage_extents.y1}); cairo_surface_upload_to_texture_with_damage(ol->cairo_surface, *ol->texture, damage_box); - get_node_overlay()->do_push_damage(wf::region_t(last_bbox)); - get_node_overlay()->do_push_damage(wf::region_t(bbox)); + get_node_overlay()->do_push_damage(wf::regionf_t(last_bbox)); + get_node_overlay()->do_push_damage(wf::regionf_t(bbox)); last_bbox = bbox; } @@ -632,14 +632,14 @@ class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public cairo_rectangle(cr, x, y, w, h); cairo_stroke(cr); - wlr_box bbox; + wf::geometry_t bbox; int padding = line_width + 1; bbox.x = x - padding; bbox.y = y - padding; bbox.width = w + padding * 2; bbox.height = h + padding * 2; output->render->damage(bbox); - wf::region_t damage_region{bbox}; + wf::regionf_t damage_region{bbox}; if (damage_last_bbox) { output->render->damage(last_bbox); @@ -648,14 +648,14 @@ class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public damage_region &= output->get_relative_geometry(); auto damage_extents = damage_region.get_extents(); - wlr_box damage_box = + auto damage_box = wf::to_integer_box(wf::geometry_t {damage_extents.x1, damage_extents.y1, damage_extents.x2 - damage_extents.x1, - damage_extents.y2 - damage_extents.y1}; + damage_extents.y2 - damage_extents.y1}); cairo_surface_upload_to_texture_with_damage(ol->cairo_surface, *ol->texture, damage_box); - get_node_overlay()->do_push_damage(wf::region_t(last_bbox)); - get_node_overlay()->do_push_damage(wf::region_t(bbox)); + get_node_overlay()->do_push_damage(wf::regionf_t(last_bbox)); + get_node_overlay()->do_push_damage(wf::regionf_t(bbox)); last_bbox = bbox; } @@ -695,14 +695,14 @@ class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public cairo_arc(cr, from.x, from.y, radius, 0, 2 * M_PI); cairo_stroke(cr); - wlr_box bbox; + wf::geometry_t bbox; int padding = line_width + 1; bbox.x = (from.x - radius) - padding; bbox.y = (from.y - radius) - padding; bbox.width = (radius * 2) + padding * 2; bbox.height = (radius * 2) + padding * 2; output->render->damage(bbox); - wf::region_t damage_region{bbox}; + wf::regionf_t damage_region{bbox}; if (damage_last_bbox) { output->render->damage(last_bbox); @@ -711,14 +711,14 @@ class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public damage_region &= output->get_relative_geometry(); auto damage_extents = damage_region.get_extents(); - wlr_box damage_box = + auto damage_box = wf::to_integer_box(wf::geometry_t {damage_extents.x1, damage_extents.y1, damage_extents.x2 - damage_extents.x1, - damage_extents.y2 - damage_extents.y1}; + damage_extents.y2 - damage_extents.y1}); cairo_surface_upload_to_texture_with_damage(ol->cairo_surface, *ol->texture, damage_box); - get_node_overlay()->do_push_damage(wf::region_t(last_bbox)); - get_node_overlay()->do_push_damage(wf::region_t(bbox)); + get_node_overlay()->do_push_damage(wf::regionf_t(last_bbox)); + get_node_overlay()->do_push_damage(wf::regionf_t(bbox)); last_bbox = bbox; } diff --git a/src/crosshair.cpp b/src/crosshair.cpp index 6417c5a..66acd40 100644 --- a/src/crosshair.cpp +++ b/src/crosshair.cpp @@ -68,17 +68,17 @@ class wayfire_crosshair : public wf::per_output_plugin_instance_t { auto target_fb = output->render->get_target_framebuffer(); auto gc = wf::get_core().get_cursor_position(); - wf::point_t coords{(int)gc.x, (int)gc.y}; + wf::pointf_t coords{gc.x, gc.y}; if (!(output->get_layout_geometry() & coords)) { return; } - wf::region_t region; + wf::regionf_t region; region |= geometry[0]; region |= geometry[1]; - region &= output->render->get_swap_damage(); + region &= target_fb.geometry_region_from_framebuffer_region(output->render->get_swap_damage()); auto alpha = wf::color_t(line_color).a; wf::color_t color = wf::color_t{ diff --git a/src/extra-animations/blinds.hpp b/src/extra-animations/blinds.hpp index 9adf359..cd13f3d 100644 --- a/src/extra-animations/blinds.hpp +++ b/src/extra-animations/blinds.hpp @@ -122,7 +122,7 @@ class blinds_transformer : public wf::scene::view_2d_transformer_t void schedule_instructions( std::vector& instructions, - const wf::render_target_t& target, wf::region_t& damage) override + const wf::render_target_t& target, wf::regionf_t& damage) override { instructions.push_back(render_instruction_t{ .instance = this, @@ -131,9 +131,9 @@ class blinds_transformer : public wf::scene::view_2d_transformer_t }); } - void transform_damage_region(wf::region_t& damage) override + void transform_damage_region(wf::regionf_t& damage) override { - damage |= wf::region_t{self->animation_geometry}; + damage |= self->animation_geometry; } void render(const wf::scene::render_instruction_t& data) override @@ -157,17 +157,17 @@ class blinds_transformer : public wf::scene::view_2d_transformer_t auto y = src_box.height - i; auto inv_h = 1.0 / src_box.height; uv.push_back(1.0); - uv.push_back(std::max(0, y - line_height) * inv_h); + uv.push_back(std::max(0.0, y - line_height) * inv_h); uv.push_back(0.0); - uv.push_back(std::max(0, y - line_height) * inv_h); + uv.push_back(std::max(0.0, y - line_height) * inv_h); uv.push_back(0.0); uv.push_back(y * inv_h); uv.push_back(1.0); uv.push_back(y * inv_h); auto x1 = src_box.width / 2.0; auto x2 = -(src_box.width / 2.0); - auto y1 = -(std::min(src_box.height - i, line_height) / 2.0); - auto y2 = std::min(src_box.height - i, line_height) / 2.0; + auto y1 = -(std::min(src_box.height - i, (double)line_height) / 2.0); + auto y2 = std::min(src_box.height - i, (double)line_height) / 2.0; glm::vec4 v, r; glm::mat4 m(1.0); m = @@ -208,7 +208,8 @@ class blinds_transformer : public wf::scene::view_2d_transformer_t auto transform = p * l; wf::auxilliary_buffer_t slice_buffer; - slice_buffer.allocate({src_box.width + line_height * 2, static_cast(y2 - y1)}); + slice_buffer.allocate({static_cast(std::ceil(src_box.width + line_height * 2)), + static_cast(std::ceil(y2 - y1))}); wf::gles::bind_render_buffer(slice_buffer.get_renderbuffer()); OpenGL::clear(wf::color_t{0.0, 0.0, 0.0, 0.0}, GL_COLOR_BUFFER_BIT); self->program.use(wf::TEXTURE_TYPE_RGBA); @@ -223,7 +224,7 @@ class blinds_transformer : public wf::scene::view_2d_transformer_t wf::gles::bind_render_buffer(data.target); for (auto box : data.damage) { - wf::gles::render_target_logic_scissor(data.target, wlr_box_from_pixman_box(box)); + wf::gles::render_target_logic_scissor(data.target, box); OpenGL::render_transformed_texture(slice_tex, gl_geometry{float(src_box.x - line_height), float(src_box.y + i), diff --git a/src/extra-animations/burn.hpp b/src/extra-animations/burn.hpp index 7eadcbe..b2b3b8b 100644 --- a/src/extra-animations/burn.hpp +++ b/src/extra-animations/burn.hpp @@ -215,7 +215,7 @@ class burn_transformer : public wf::scene::view_2d_transformer_t void schedule_instructions( std::vector& instructions, - const wf::render_target_t& target, wf::region_t& damage) override + const wf::render_target_t& target, wf::regionf_t& damage) override { instructions.push_back(render_instruction_t{ .instance = this, @@ -224,7 +224,7 @@ class burn_transformer : public wf::scene::view_2d_transformer_t }); } - void transform_damage_region(wf::region_t& damage) override + void transform_damage_region(wf::regionf_t& damage) override { damage |= self->get_bounding_box(); } @@ -307,7 +307,7 @@ class burn_transformer : public wf::scene::view_2d_transformer_t wf::gles::bind_render_buffer(data.target); for (auto box : data.damage) { - wf::gles::render_target_logic_scissor(data.target, wlr_box_from_pixman_box(box)); + wf::gles::render_target_logic_scissor(data.target, box); OpenGL::render_transformed_texture(final_tex, pbb, wf::gles::render_target_orthographic_projection(data.target), glm::vec4(1.0, 1.0, 1.0, std::clamp((progress - 0.07) * 10.0, 0.0, 1.0)), 0); diff --git a/src/extra-animations/carpet.hpp b/src/extra-animations/carpet.hpp index 8c4336c..6d072a2 100644 --- a/src/extra-animations/carpet.hpp +++ b/src/extra-animations/carpet.hpp @@ -384,7 +384,7 @@ class carpet_transformer : public wf::scene::view_2d_transformer_t void schedule_instructions( std::vector& instructions, - const wf::render_target_t& target, wf::region_t& damage) override + const wf::render_target_t& target, wf::regionf_t& damage) override { instructions.push_back(render_instruction_t{ .instance = this, @@ -393,7 +393,7 @@ class carpet_transformer : public wf::scene::view_2d_transformer_t }); } - void transform_damage_region(wf::region_t& damage) override + void transform_damage_region(wf::regionf_t& damage) override { damage |= self->get_bounding_box(); } @@ -440,7 +440,7 @@ class carpet_transformer : public wf::scene::view_2d_transformer_t wf::gles::bind_render_buffer(data.target); for (auto box : data.damage) { - wf::gles::render_target_logic_scissor(data.target, wlr_box_from_pixman_box(box)); + wf::gles::render_target_logic_scissor(data.target, box); OpenGL::render_transformed_texture(final_tex, pbb, wf::gles::render_target_orthographic_projection(data.target), glm::vec4(1.0, 1.0, 1.0, 1.0), 0); diff --git a/src/extra-animations/helix.hpp b/src/extra-animations/helix.hpp index 913b0eb..0c2e747 100644 --- a/src/extra-animations/helix.hpp +++ b/src/extra-animations/helix.hpp @@ -123,7 +123,7 @@ class helix_transformer : public wf::scene::view_2d_transformer_t void schedule_instructions( std::vector& instructions, - const wf::render_target_t& target, wf::region_t& damage) override + const wf::render_target_t& target, wf::regionf_t& damage) override { instructions.push_back(render_instruction_t{ .instance = this, @@ -132,9 +132,9 @@ class helix_transformer : public wf::scene::view_2d_transformer_t }); } - void transform_damage_region(wf::region_t& damage) override + void transform_damage_region(wf::regionf_t& damage) override { - damage |= wf::region_t{self->animation_geometry}; + damage |= self->animation_geometry; } void render(const wf::scene::render_instruction_t& data) override @@ -159,9 +159,9 @@ class helix_transformer : public wf::scene::view_2d_transformer_t auto y = src_box.height - i; auto inv_h = 1.0 / src_box.height; uv.push_back(0.0); - uv.push_back(std::max(0, y - line_height) * inv_h); + uv.push_back(std::max(0.0, y - line_height) * inv_h); uv.push_back(1.0); - uv.push_back(std::max(0, y - line_height) * inv_h); + uv.push_back(std::max(0.0, y - line_height) * inv_h); uv.push_back(0.0); uv.push_back(y * inv_h); uv.push_back(1.0); @@ -169,7 +169,7 @@ class helix_transformer : public wf::scene::view_2d_transformer_t uv.push_back(0.0); uv.push_back(y * inv_h); uv.push_back(1.0); - uv.push_back(std::max(0, y - line_height) * inv_h); + uv.push_back(std::max(0.0, y - line_height) * inv_h); glm::vec4 v, r; glm::mat4 m(1.0); m = glm::rotate(m, float(M_PI), glm::vec3(1.0, 0.0, 0.0)); @@ -231,7 +231,7 @@ class helix_transformer : public wf::scene::view_2d_transformer_t wf::gles::bind_render_buffer(data.target); for (auto box : data.damage) { - wf::gles::render_target_logic_scissor(data.target, wlr_box_from_pixman_box(box)); + wf::gles::render_target_logic_scissor(data.target, box); self->program.use(wf::TEXTURE_TYPE_RGBA); self->program.uniformMatrix4f("matrix", transform); self->program.attrib_pointer("position", 3, 0, vertices.data()); diff --git a/src/extra-animations/melt.hpp b/src/extra-animations/melt.hpp index f9f1966..8b5b966 100644 --- a/src/extra-animations/melt.hpp +++ b/src/extra-animations/melt.hpp @@ -140,7 +140,7 @@ class melt_transformer : public wf::scene::view_2d_transformer_t void schedule_instructions( std::vector& instructions, - const wf::render_target_t& target, wf::region_t& damage) override + const wf::render_target_t& target, wf::regionf_t& damage) override { instructions.push_back(render_instruction_t{ .instance = this, @@ -149,7 +149,7 @@ class melt_transformer : public wf::scene::view_2d_transformer_t }); } - void transform_damage_region(wf::region_t& damage) override + void transform_damage_region(wf::regionf_t& damage) override { damage |= self->get_padded_bounding_box(); } @@ -196,7 +196,7 @@ class melt_transformer : public wf::scene::view_2d_transformer_t wf::gles::bind_render_buffer(data.target); for (auto box : data.damage) { - wf::gles::render_target_logic_scissor(data.target, wlr_box_from_pixman_box(box)); + wf::gles::render_target_logic_scissor(data.target, box); OpenGL::render_transformed_texture(final_tex, pbb, wf::gles::render_target_orthographic_projection(data.target), glm::vec4(1.0, 1.0, 1.0, 1.0 / (1.0 + pow(2.718, -(progress * 15.0 - 3.0)))), 0); diff --git a/src/extra-animations/shatter.hpp b/src/extra-animations/shatter.hpp index d7be81f..e11946e 100644 --- a/src/extra-animations/shatter.hpp +++ b/src/extra-animations/shatter.hpp @@ -130,7 +130,7 @@ class shatter_transformer : public wf::scene::view_2d_transformer_t void schedule_instructions( std::vector& instructions, - const wf::render_target_t& target, wf::region_t& damage) override + const wf::render_target_t& target, wf::regionf_t& damage) override { instructions.push_back(render_instruction_t{ .instance = this, @@ -139,9 +139,9 @@ class shatter_transformer : public wf::scene::view_2d_transformer_t }); } - void transform_damage_region(wf::region_t& damage) override + void transform_damage_region(wf::regionf_t& damage) override { - damage |= wf::region_t{self->animation_geometry}; + damage |= self->animation_geometry; } void render(const wf::scene::render_instruction_t& data) override diff --git a/src/extra-animations/vortex.hpp b/src/extra-animations/vortex.hpp index 883e784..53c14fc 100644 --- a/src/extra-animations/vortex.hpp +++ b/src/extra-animations/vortex.hpp @@ -148,7 +148,7 @@ class vortex_transformer : public wf::scene::view_2d_transformer_t void schedule_instructions( std::vector& instructions, - const wf::render_target_t& target, wf::region_t& damage) override + const wf::render_target_t& target, wf::regionf_t& damage) override { instructions.push_back(render_instruction_t{ .instance = this, @@ -157,9 +157,9 @@ class vortex_transformer : public wf::scene::view_2d_transformer_t }); } - void transform_damage_region(wf::region_t& damage) override + void transform_damage_region(wf::regionf_t& damage) override { - damage |= wf::region_t{self->animation_geometry}; + damage |= self->animation_geometry; } void render(const wf::scene::render_instruction_t& data) override diff --git a/src/fisheye.cpp b/src/fisheye.cpp index c3d2ac3..b3da65a 100644 --- a/src/fisheye.cpp +++ b/src/fisheye.cpp @@ -171,12 +171,12 @@ class wayfire_fisheye : public wf::per_output_plugin_instance_t wf::post_hook_t render_hook = [=] (wf::auxilliary_buffer_t& source, const wf::render_buffer_t& dest) { - auto oc = output->get_cursor_position(); - wlr_box box = {(int)oc.x, (int)oc.y, 1, 1}; - box = output->render->get_target_framebuffer(). + auto oc = output->get_cursor_position(); + wf::geometry_t box = {oc.x, oc.y, 1, 1}; + auto fb_box = output->render->get_target_framebuffer(). framebuffer_box_from_geometry_box(box); - oc.x = box.x; - oc.y = box.y; + oc.x = fb_box.x; + oc.y = fb_box.y; static const float vertexData[] = { -1.0f, -1.0f, diff --git a/src/follow-focus.cpp b/src/follow-focus.cpp index b32acc7..e67cc73 100644 --- a/src/follow-focus.cpp +++ b/src/follow-focus.cpp @@ -43,7 +43,7 @@ class wayfire_follow_focus : public wf::per_output_plugin_instance_t private: wayfire_view focus_view = nullptr; wf::wl_timer change_output_focus, change_view_focus; - wf::point_t last_output_coords, last_view_coords; + wf::pointf_t last_output_coords, last_view_coords; wf::option_wrapper_t should_change_view{"follow-focus/change_view"}; wf::option_wrapper_t should_change_output{"follow-focus/change_output"}; @@ -67,7 +67,7 @@ class wayfire_follow_focus : public wf::per_output_plugin_instance_t void change_output() { auto cpf = wf::get_core().get_cursor_position(); - wf::point_t coords{static_cast(cpf.x), static_cast(cpf.y)}; + wf::pointf_t coords{cpf.x, cpf.y}; if (output->get_layout_geometry() & coords && (output == focus_output)) { @@ -90,7 +90,7 @@ class wayfire_follow_focus : public wf::per_output_plugin_instance_t } auto cpf = wf::get_core().get_cursor_position(); - wf::point_t coords{static_cast(cpf.x), static_cast(cpf.y)}; + wf::pointf_t coords{cpf.x, cpf.y}; if (output->get_layout_geometry() & coords && (output != focus_output)) { @@ -98,7 +98,7 @@ class wayfire_follow_focus : public wf::per_output_plugin_instance_t focus_output = output; } - if (abs(coords - last_output_coords) < threshold) + if (wf::abs(coords - last_output_coords) < threshold) { return; } @@ -142,14 +142,14 @@ class wayfire_follow_focus : public wf::per_output_plugin_instance_t } auto cpf = wf::get_core().get_cursor_position(); - wf::point_t coords{static_cast(cpf.x), static_cast(cpf.y)}; + wf::pointf_t coords{cpf.x, cpf.y}; if (view != focus_view) { last_view_coords = coords; focus_view = view; } - if (abs(coords - last_view_coords) < threshold) + if (wf::abs(coords - last_view_coords) < threshold) { return; } diff --git a/src/force-fullscreen.cpp b/src/force-fullscreen.cpp index f86e609..8e25717 100644 --- a/src/force-fullscreen.cpp +++ b/src/force-fullscreen.cpp @@ -56,13 +56,13 @@ class simple_node_render_instance_t : public render_instance_t wayfire_toplevel_view view; damage_callback push_to_parent; int *x, *y, *w, *h; - wlr_box *transparent_box; + wf::geometry_t *transparent_box; wf::option_wrapper_t transparent_behind_views{ "force-fullscreen/transparent_behind_views"}; public: simple_node_render_instance_t(node_t *self, damage_callback push_damage, - wayfire_toplevel_view view, int *x, int *y, int *w, int *h, wlr_box *transparent_box) + wayfire_toplevel_view view, int *x, int *y, int *w, int *h, wf::geometry_t *transparent_box) { this->x = x; this->y = y; @@ -77,7 +77,7 @@ class simple_node_render_instance_t : public render_instance_t void schedule_instructions( std::vector& instructions, - const wf::render_target_t& target, wf::region_t& damage) override + const wf::render_target_t& target, wf::regionf_t& damage) override { // We want to render ourselves only, the node does not have children instructions.push_back(render_instruction_t{ @@ -96,7 +96,7 @@ class simple_node_render_instance_t : public render_instance_t return; } - wf::region_t scissor_region{data.damage}; + wf::regionf_t scissor_region{data.damage}; if (transparent_behind_views) { auto bbox = *transparent_box; @@ -104,7 +104,7 @@ class simple_node_render_instance_t : public render_instance_t bbox.y += 1; bbox.width -= 2; bbox.height -= 2; - scissor_region ^= wf::region_t{bbox}; + scissor_region ^= wf::regionf_t{bbox}; } data.pass->clear(scissor_region, {0, 0, 0, 1}); @@ -114,13 +114,13 @@ class simple_node_render_instance_t : public render_instance_t class black_border_node_t : public node_t { wayfire_toplevel_view view; - wlr_box transparent_box; + wf::geometry_t transparent_box; public: int x, y, w, h; black_border_node_t(wayfire_toplevel_view view, int x, int y, int w, - int h, wlr_box transparent_box) : node_t(false) + int h, wf::geometry_t transparent_box) : node_t(false) { this->x = x; this->y = y; @@ -156,7 +156,7 @@ class fullscreen_background std::shared_ptr transformer; std::shared_ptr black_border_node; bool black_border = false; - wlr_box transformed_view_box; + wf::geometry_t transformed_view_box; fullscreen_background(wayfire_toplevel_view view) {} @@ -228,7 +228,7 @@ class wayfire_force_fullscreen : public wf::per_output_plugin_instance_t } }; - void ensure_subsurface(wayfire_toplevel_view view, wlr_box transformed_view_box) + void ensure_subsurface(wayfire_toplevel_view view, wf::geometry_t transformed_view_box) { auto pair = backgrounds.find(view); @@ -289,7 +289,7 @@ class wayfire_force_fullscreen : public wf::per_output_plugin_instance_t scale_x = scale_y = std::min(scale_x, scale_y); } - wlr_box box; + wf::geometry_t box; box.width = std::floor(vg.width * scale_x); box.height = std::floor(vg.height * scale_y); box.x = std::ceil((og.width - box.width) / 2.0); @@ -332,7 +332,7 @@ class wayfire_force_fullscreen : public wf::per_output_plugin_instance_t return false; } - wlr_box saved_geometry = view->get_geometry(); + wf::geometry_t saved_geometry = view->get_geometry(); auto background = backgrounds.find(view); bool fullscreen = background == backgrounds.end() ? true : false; @@ -340,7 +340,7 @@ class wayfire_force_fullscreen : public wf::per_output_plugin_instance_t view->toplevel()->pending().fullscreen = fullscreen; wf::get_core().tx_manager->schedule_object(view->toplevel()); - wlr_box undecorated_geometry = view->get_geometry(); + wf::geometry_t undecorated_geometry = view->get_geometry(); if (!fullscreen) { @@ -505,7 +505,7 @@ class wayfire_force_fullscreen : public wf::per_output_plugin_instance_t for (auto& b : backgrounds) { auto view = wf::get_active_view_for_output(output); - wlr_box box; + wf::geometry_t box; box = b.second->transformed_view_box; box.x += og.x; @@ -519,7 +519,8 @@ class wayfire_force_fullscreen : public wf::per_output_plugin_instance_t if ((b.first == view) && !(box & wf::pointf_t{cursor.x, cursor.y})) { - wlr_box_closest_point(&box, cursor.x, cursor.y, + auto ibox = wf::to_integer_box(box); + wlr_box_closest_point(&ibox, cursor.x, cursor.y, &cursor.x, &cursor.y); ev->event->delta_x = ev->event->unaccel_dx = cursor.x - last_cursor.x; diff --git a/src/keycolor.cpp b/src/keycolor.cpp index 033557a..277c4a0 100644 --- a/src/keycolor.cpp +++ b/src/keycolor.cpp @@ -130,7 +130,7 @@ class simple_node_render_instance_t : public wf::scene::transformer_render_insta void schedule_instructions( std::vector& instructions, - const wf::render_target_t& target, wf::region_t& damage) override + const wf::render_target_t& target, wf::regionf_t& damage) override { // We want to render ourselves only, the node does not have children instructions.push_back(render_instruction_t{ @@ -196,7 +196,7 @@ class simple_node_render_instance_t : public wf::scene::transformer_render_insta for (const auto& box : data.damage) { - wf::gles::render_target_logic_scissor(data.target, wlr_box_from_pixman_box(box)); + wf::gles::render_target_logic_scissor(data.target, box); GL_CALL(glDrawArrays(GL_TRIANGLE_FAN, 0, 4)); } diff --git a/src/obs.cpp b/src/obs.cpp index 4d2498f..4499329 100644 --- a/src/obs.cpp +++ b/src/obs.cpp @@ -138,7 +138,7 @@ class wf_obs : public wf::scene::view_2d_transformer_t } void schedule_instructions(std::vector& instructions, - const wf::render_target_t& target, wf::region_t& damage) override + const wf::render_target_t& target, wf::regionf_t& damage) override { // We want to render ourselves only, the node does not have children instructions.push_back(render_instruction_t{ @@ -190,7 +190,7 @@ class wf_obs : public wf::scene::view_2d_transformer_t for (const auto& box : data.damage) { - wf::gles::render_target_logic_scissor(data.target, wlr_box_from_pixman_box(box)); + wf::gles::render_target_logic_scissor(data.target, box); OpenGL::render_transformed_texture(final_tex, view_box, wf::gles::render_target_orthographic_projection(data.target), glm::vec4(1.0), 0); diff --git a/src/showrepaint.cpp b/src/showrepaint.cpp index caa70ad..6619122 100644 --- a/src/showrepaint.cpp +++ b/src/showrepaint.cpp @@ -119,13 +119,13 @@ class wayfire_showrepaint : public wf::per_output_plugin_instance_t wf::effect_hook_t overlay_hook = [=] () { auto target_fb = output->render->get_target_framebuffer(); - wf::region_t swap_damage = target_fb.geometry_region_from_framebuffer_region( + wf::regionf_t swap_damage = target_fb.geometry_region_from_framebuffer_region( output->render->get_swap_damage()); - wf::region_t scheduled_damage = output->render->get_scheduled_damage(); - wf::region_t output_region{target_fb.geometry}; - wf::region_t inverted_damage; - wf::region_t damage; + wf::regionf_t scheduled_damage = output->render->get_scheduled_damage(); + wf::regionf_t output_region{target_fb.geometry}; + wf::regionf_t inverted_damage; + wf::regionf_t damage; /* Show scheduled client damage. Scheduled damage is the client damage * in union with last frame client damage. If this region is empty, we @@ -188,8 +188,8 @@ class wayfire_showrepaint : public wf::per_output_plugin_instance_t */ auto target_fb = output->render->get_target_framebuffer(); last_buffer.allocate(target_fb.get_size()); - wlr_box full = wf::construct_box({0, 0}, target_fb.get_size()); - last_buffer.get_renderbuffer().blit(target_fb, wf::geometry_to_fbox(full), full); + wf::geometry_t full = wf::construct_box({0, 0}, target_fb.get_size()); + last_buffer.get_renderbuffer().blit(target_fb, full, full); }; void fini() override diff --git a/src/window-zoom.cpp b/src/window-zoom.cpp index 56eee24..afd2186 100644 --- a/src/window-zoom.cpp +++ b/src/window-zoom.cpp @@ -60,14 +60,14 @@ class simple_node_render_instance_t : public transformer_render_instance_t nearest_filtering{"winzoom/nearest_filtering"}; public: simple_node_render_instance_t(transformer_base_node_t *self, damage_callback push_damage, wayfire_toplevel_view view, float *scale_x, float *scale_y, - wlr_box *transformed_view_geometry) : + wf::geometry_t *transformed_view_geometry) : transformer_render_instance_t(self, push_damage, view->get_output()) { @@ -89,7 +89,7 @@ class simple_node_render_instance_t : public transformer_render_instance_t& instructions, - const wf::render_target_t& target, wf::region_t& damage) override + const wf::render_target_t& target, wf::regionf_t& damage) override { // We want to render ourselves only, the node does not have children instructions.push_back(render_instruction_t{ @@ -99,16 +99,16 @@ class simple_node_render_instance_t : public transformer_render_instance_tget_transformed_node()->get_children_bounding_box(); } - wlr_box get_scaled_geometry() + wf::geometry_t get_scaled_geometry() { auto vg = view->get_geometry(); auto midpoint = get_center(vg); - auto result = wf::pointf_t{float(vg.x), float(vg.y)} - midpoint; + auto result = wf::pointf_t{vg.x, vg.y} - midpoint; result.x *= *scale_x; result.y *= *scale_y; result += midpoint; @@ -131,7 +131,7 @@ class simple_node_render_instance_t : public transformer_render_instance_t& instructions, - const wf::render_target_t& target, wf::region_t& damage) override + const wf::render_target_t& target, wf::regionf_t& damage) override { // We want to render ourselves only, the node does not have children instructions.push_back(render_instruction_t{ @@ -113,7 +113,7 @@ class simple_node_render_instance_t : public render_instance_t wf::gles::bind_render_buffer(data.target); for (auto& box : data.damage) { - wf::gles::render_target_logic_scissor(data.target, wlr_box_from_pixman_box(box)); + wf::gles::render_target_logic_scissor(data.target, box); OpenGL::render_texture(wf::gles_texture_t{workspace->texture->get_texture()}, data.target, g, glm::vec4(1, 1, 1, *alpha_fade), 0); } @@ -157,7 +157,7 @@ class simple_node_t : public node_t this, push_damage, &offset, &alpha_fade, workspace)); } - void do_push_damage(wf::region_t updated_region) + void do_push_damage(wf::regionf_t updated_region) { node_damage_signal ev; ev.region = updated_region; From 4a8c101742e02d42ed34661b2892c80e16d00117 Mon Sep 17 00:00:00 2001 From: Scott Moreau Date: Wed, 24 Jun 2026 12:32:02 -0600 Subject: [PATCH 2/7] Fix warnings introduced by wayfire plugin API change --- metadata/crosshair.xml | 2 +- src/annotate.cpp | 37 +++++++++++++++------------------ src/crosshair.cpp | 6 +++--- src/extra-animations/burn.hpp | 2 +- src/extra-animations/carpet.hpp | 2 +- src/extra-animations/dodge.hpp | 4 ++-- src/extra-animations/melt.hpp | 2 +- src/extra-animations/vortex.hpp | 16 +++++++------- src/force-fullscreen.cpp | 37 +++++++++++++++------------------ src/workspace-names.cpp | 6 +++--- 10 files changed, 54 insertions(+), 60 deletions(-) diff --git a/metadata/crosshair.xml b/metadata/crosshair.xml index 25c67f3..804bc7d 100644 --- a/metadata/crosshair.xml +++ b/metadata/crosshair.xml @@ -4,7 +4,7 @@ <_short>Crosshair <_long>Render fullscreen mouse crosshair Utility -