Skip to content

Commit 64a67c6

Browse files
committed
update for new wayfire API
1 parent a65af25 commit 64a67c6

17 files changed

Lines changed: 113 additions & 111 deletions

src/annotate.cpp

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ class simple_node_render_instance_t : public render_instance_t
9999
}
100100

101101
void schedule_instructions(std::vector<render_instruction_t>& instructions,
102-
const wf::render_target_t& target, wf::region_t& damage) override
102+
const wf::render_target_t& target, wf::regionf_t& damage) override
103103
{
104104
// We want to render ourselves only, the node does not have children
105105
instructions.push_back(render_instruction_t{
@@ -111,15 +111,15 @@ class simple_node_render_instance_t : public render_instance_t
111111

112112
void render(const wf::scene::render_instruction_t& data) override
113113
{
114-
auto ol = this->overlay;
115-
wlr_box og = {*x, *y, *w, *h};
114+
auto ol = this->overlay;
115+
wf::geometry_t og = {(double)*x, (double)*y, (double)*w, (double)*h};
116116

117117
data.pass->custom_gles_subpass([&]
118118
{
119119
wf::gles::bind_render_buffer(data.target);
120120
for (auto& box : data.damage)
121121
{
122-
wf::gles::render_target_logic_scissor(data.target, wlr_box_from_pixman_box(box));
122+
wf::gles::render_target_logic_scissor(data.target, box);
123123
if (ol->cr)
124124
{
125125
OpenGL::render_texture(wf::gles_texture_t{ol->texture->tex}, data.target, og,
@@ -164,7 +164,7 @@ class simple_node_t : public node_t
164164
this, push_damage, &x, &y, &w, &h, overlay, shape_overlay));
165165
}
166166

167-
void do_push_damage(wf::region_t updated_region)
167+
void do_push_damage(wf::regionf_t updated_region)
168168
{
169169
node_damage_signal ev;
170170
ev.region = updated_region;
@@ -201,7 +201,7 @@ std::shared_ptr<simple_node_t> add_simple_node(wf::output_t *output, int x, int
201201
class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
202202
{
203203
uint32_t button;
204-
wlr_box last_bbox;
204+
wf::geometry_t last_bbox;
205205
annotate_draw_method draw_method;
206206
wf::pointf_t grab_point, last_cursor;
207207
std::vector<std::vector<std::shared_ptr<simple_node_t>>> overlays;
@@ -519,15 +519,15 @@ class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public
519519
cairo_line_to(cr, to.x, to.y);
520520
cairo_stroke(cr);
521521

522-
wlr_box bbox;
522+
wf::geometry_t bbox;
523523
int padding = line_width + 1;
524524
bbox.x = std::min(from.x, to.x) - padding;
525525
bbox.y = std::min(from.y, to.y) - padding;
526-
bbox.width = abs(from.x - to.x) + padding * 2;
527-
bbox.height = abs(from.y - to.y) + padding * 2;
528-
get_node_overlay()->do_push_damage(wf::region_t(bbox));
526+
bbox.width = std::abs(from.x - to.x) + padding * 2;
527+
bbox.height = std::abs(from.y - to.y) + padding * 2;
528+
get_node_overlay()->do_push_damage(wf::regionf_t(bbox));
529529
cairo_surface_upload_to_texture_with_damage(ol->cairo_surface, *ol->texture,
530-
bbox);
530+
wf::to_integer_box(bbox));
531531
}
532532

533533
bool should_damage_last()
@@ -563,14 +563,14 @@ class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public
563563
cairo_line_to(cr, to.x, to.y);
564564
cairo_stroke(cr);
565565

566-
wlr_box bbox;
566+
wf::geometry_t bbox;
567567
int padding = line_width + 1;
568568
bbox.x = std::min(from.x, to.x) - padding;
569569
bbox.y = std::min(from.y, to.y) - padding;
570-
bbox.width = abs(from.x - to.x) + padding * 2;
571-
bbox.height = abs(from.y - to.y) + padding * 2;
570+
bbox.width = std::abs(from.x - to.x) + padding * 2;
571+
bbox.height = std::abs(from.y - to.y) + padding * 2;
572572
output->render->damage(bbox);
573-
wf::region_t damage_region{bbox};
573+
wf::regionf_t damage_region{bbox};
574574
if (damage_last_bbox)
575575
{
576576
output->render->damage(last_bbox);
@@ -579,14 +579,14 @@ class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public
579579

580580
damage_region &= output->get_relative_geometry();
581581
auto damage_extents = damage_region.get_extents();
582-
wlr_box damage_box =
582+
auto damage_box = wf::to_integer_box(wf::geometry_t
583583
{damage_extents.x1, damage_extents.y1, damage_extents.x2 - damage_extents.x1,
584-
damage_extents.y2 - damage_extents.y1};
584+
damage_extents.y2 - damage_extents.y1});
585585
cairo_surface_upload_to_texture_with_damage(ol->cairo_surface, *ol->texture,
586586
damage_box);
587587

588-
get_node_overlay()->do_push_damage(wf::region_t(last_bbox));
589-
get_node_overlay()->do_push_damage(wf::region_t(bbox));
588+
get_node_overlay()->do_push_damage(wf::regionf_t(last_bbox));
589+
get_node_overlay()->do_push_damage(wf::regionf_t(bbox));
590590
last_bbox = bbox;
591591
}
592592

@@ -632,14 +632,14 @@ class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public
632632
cairo_rectangle(cr, x, y, w, h);
633633
cairo_stroke(cr);
634634

635-
wlr_box bbox;
635+
wf::geometry_t bbox;
636636
int padding = line_width + 1;
637637
bbox.x = x - padding;
638638
bbox.y = y - padding;
639639
bbox.width = w + padding * 2;
640640
bbox.height = h + padding * 2;
641641
output->render->damage(bbox);
642-
wf::region_t damage_region{bbox};
642+
wf::regionf_t damage_region{bbox};
643643
if (damage_last_bbox)
644644
{
645645
output->render->damage(last_bbox);
@@ -648,14 +648,14 @@ class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public
648648

649649
damage_region &= output->get_relative_geometry();
650650
auto damage_extents = damage_region.get_extents();
651-
wlr_box damage_box =
651+
auto damage_box = wf::to_integer_box(wf::geometry_t
652652
{damage_extents.x1, damage_extents.y1, damage_extents.x2 - damage_extents.x1,
653-
damage_extents.y2 - damage_extents.y1};
653+
damage_extents.y2 - damage_extents.y1});
654654
cairo_surface_upload_to_texture_with_damage(ol->cairo_surface, *ol->texture,
655655
damage_box);
656656

657-
get_node_overlay()->do_push_damage(wf::region_t(last_bbox));
658-
get_node_overlay()->do_push_damage(wf::region_t(bbox));
657+
get_node_overlay()->do_push_damage(wf::regionf_t(last_bbox));
658+
get_node_overlay()->do_push_damage(wf::regionf_t(bbox));
659659
last_bbox = bbox;
660660
}
661661

@@ -695,14 +695,14 @@ class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public
695695
cairo_arc(cr, from.x, from.y, radius, 0, 2 * M_PI);
696696
cairo_stroke(cr);
697697

698-
wlr_box bbox;
698+
wf::geometry_t bbox;
699699
int padding = line_width + 1;
700700
bbox.x = (from.x - radius) - padding;
701701
bbox.y = (from.y - radius) - padding;
702702
bbox.width = (radius * 2) + padding * 2;
703703
bbox.height = (radius * 2) + padding * 2;
704704
output->render->damage(bbox);
705-
wf::region_t damage_region{bbox};
705+
wf::regionf_t damage_region{bbox};
706706
if (damage_last_bbox)
707707
{
708708
output->render->damage(last_bbox);
@@ -711,14 +711,14 @@ class wayfire_annotate_screen : public wf::per_output_plugin_instance_t, public
711711

712712
damage_region &= output->get_relative_geometry();
713713
auto damage_extents = damage_region.get_extents();
714-
wlr_box damage_box =
714+
auto damage_box = wf::to_integer_box(wf::geometry_t
715715
{damage_extents.x1, damage_extents.y1, damage_extents.x2 - damage_extents.x1,
716-
damage_extents.y2 - damage_extents.y1};
716+
damage_extents.y2 - damage_extents.y1});
717717
cairo_surface_upload_to_texture_with_damage(ol->cairo_surface, *ol->texture,
718718
damage_box);
719719

720-
get_node_overlay()->do_push_damage(wf::region_t(last_bbox));
721-
get_node_overlay()->do_push_damage(wf::region_t(bbox));
720+
get_node_overlay()->do_push_damage(wf::regionf_t(last_bbox));
721+
get_node_overlay()->do_push_damage(wf::regionf_t(bbox));
722722
last_bbox = bbox;
723723
}
724724

src/crosshair.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,17 +68,17 @@ class wayfire_crosshair : public wf::per_output_plugin_instance_t
6868
{
6969
auto target_fb = output->render->get_target_framebuffer();
7070
auto gc = wf::get_core().get_cursor_position();
71-
wf::point_t coords{(int)gc.x, (int)gc.y};
71+
wf::pointf_t coords{gc.x, gc.y};
7272

7373
if (!(output->get_layout_geometry() & coords))
7474
{
7575
return;
7676
}
7777

78-
wf::region_t region;
78+
wf::regionf_t region;
7979
region |= geometry[0];
8080
region |= geometry[1];
81-
region &= output->render->get_swap_damage();
81+
region &= target_fb.geometry_region_from_framebuffer_region(output->render->get_swap_damage());
8282

8383
auto alpha = wf::color_t(line_color).a;
8484
wf::color_t color = wf::color_t{

src/extra-animations/blinds.hpp

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ class blinds_transformer : public wf::scene::view_2d_transformer_t
122122

123123
void schedule_instructions(
124124
std::vector<render_instruction_t>& instructions,
125-
const wf::render_target_t& target, wf::region_t& damage) override
125+
const wf::render_target_t& target, wf::regionf_t& damage) override
126126
{
127127
instructions.push_back(render_instruction_t{
128128
.instance = this,
@@ -131,9 +131,9 @@ class blinds_transformer : public wf::scene::view_2d_transformer_t
131131
});
132132
}
133133

134-
void transform_damage_region(wf::region_t& damage) override
134+
void transform_damage_region(wf::regionf_t& damage) override
135135
{
136-
damage |= wf::region_t{self->animation_geometry};
136+
damage |= self->animation_geometry;
137137
}
138138

139139
void render(const wf::scene::render_instruction_t& data) override
@@ -157,17 +157,17 @@ class blinds_transformer : public wf::scene::view_2d_transformer_t
157157
auto y = src_box.height - i;
158158
auto inv_h = 1.0 / src_box.height;
159159
uv.push_back(1.0);
160-
uv.push_back(std::max(0, y - line_height) * inv_h);
160+
uv.push_back(std::max(0.0, y - line_height) * inv_h);
161161
uv.push_back(0.0);
162-
uv.push_back(std::max(0, y - line_height) * inv_h);
162+
uv.push_back(std::max(0.0, y - line_height) * inv_h);
163163
uv.push_back(0.0);
164164
uv.push_back(y * inv_h);
165165
uv.push_back(1.0);
166166
uv.push_back(y * inv_h);
167167
auto x1 = src_box.width / 2.0;
168168
auto x2 = -(src_box.width / 2.0);
169-
auto y1 = -(std::min(src_box.height - i, line_height) / 2.0);
170-
auto y2 = std::min(src_box.height - i, line_height) / 2.0;
169+
auto y1 = -(std::min(src_box.height - i, (double)line_height) / 2.0);
170+
auto y2 = std::min(src_box.height - i, (double)line_height) / 2.0;
171171
glm::vec4 v, r;
172172
glm::mat4 m(1.0);
173173
m =
@@ -208,7 +208,8 @@ class blinds_transformer : public wf::scene::view_2d_transformer_t
208208

209209
auto transform = p * l;
210210
wf::auxilliary_buffer_t slice_buffer;
211-
slice_buffer.allocate({src_box.width + line_height * 2, static_cast<int32_t>(y2 - y1)});
211+
slice_buffer.allocate({static_cast<int32_t>(std::ceil(src_box.width + line_height * 2)),
212+
static_cast<int32_t>(std::ceil(y2 - y1))});
212213
wf::gles::bind_render_buffer(slice_buffer.get_renderbuffer());
213214
OpenGL::clear(wf::color_t{0.0, 0.0, 0.0, 0.0}, GL_COLOR_BUFFER_BIT);
214215
self->program.use(wf::TEXTURE_TYPE_RGBA);
@@ -223,7 +224,7 @@ class blinds_transformer : public wf::scene::view_2d_transformer_t
223224
wf::gles::bind_render_buffer(data.target);
224225
for (auto box : data.damage)
225226
{
226-
wf::gles::render_target_logic_scissor(data.target, wlr_box_from_pixman_box(box));
227+
wf::gles::render_target_logic_scissor(data.target, box);
227228
OpenGL::render_transformed_texture(slice_tex,
228229
gl_geometry{float(src_box.x - line_height),
229230
float(src_box.y + i),

src/extra-animations/burn.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ class burn_transformer : public wf::scene::view_2d_transformer_t
215215

216216
void schedule_instructions(
217217
std::vector<render_instruction_t>& instructions,
218-
const wf::render_target_t& target, wf::region_t& damage) override
218+
const wf::render_target_t& target, wf::regionf_t& damage) override
219219
{
220220
instructions.push_back(render_instruction_t{
221221
.instance = this,
@@ -224,7 +224,7 @@ class burn_transformer : public wf::scene::view_2d_transformer_t
224224
});
225225
}
226226

227-
void transform_damage_region(wf::region_t& damage) override
227+
void transform_damage_region(wf::regionf_t& damage) override
228228
{
229229
damage |= self->get_bounding_box();
230230
}
@@ -307,7 +307,7 @@ class burn_transformer : public wf::scene::view_2d_transformer_t
307307
wf::gles::bind_render_buffer(data.target);
308308
for (auto box : data.damage)
309309
{
310-
wf::gles::render_target_logic_scissor(data.target, wlr_box_from_pixman_box(box));
310+
wf::gles::render_target_logic_scissor(data.target, box);
311311
OpenGL::render_transformed_texture(final_tex, pbb,
312312
wf::gles::render_target_orthographic_projection(data.target),
313313
glm::vec4(1.0, 1.0, 1.0, std::clamp((progress - 0.07) * 10.0, 0.0, 1.0)), 0);

src/extra-animations/carpet.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ class carpet_transformer : public wf::scene::view_2d_transformer_t
384384

385385
void schedule_instructions(
386386
std::vector<render_instruction_t>& instructions,
387-
const wf::render_target_t& target, wf::region_t& damage) override
387+
const wf::render_target_t& target, wf::regionf_t& damage) override
388388
{
389389
instructions.push_back(render_instruction_t{
390390
.instance = this,
@@ -393,7 +393,7 @@ class carpet_transformer : public wf::scene::view_2d_transformer_t
393393
});
394394
}
395395

396-
void transform_damage_region(wf::region_t& damage) override
396+
void transform_damage_region(wf::regionf_t& damage) override
397397
{
398398
damage |= self->get_bounding_box();
399399
}
@@ -440,7 +440,7 @@ class carpet_transformer : public wf::scene::view_2d_transformer_t
440440
wf::gles::bind_render_buffer(data.target);
441441
for (auto box : data.damage)
442442
{
443-
wf::gles::render_target_logic_scissor(data.target, wlr_box_from_pixman_box(box));
443+
wf::gles::render_target_logic_scissor(data.target, box);
444444
OpenGL::render_transformed_texture(final_tex, pbb,
445445
wf::gles::render_target_orthographic_projection(data.target),
446446
glm::vec4(1.0, 1.0, 1.0, 1.0), 0);

src/extra-animations/helix.hpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ class helix_transformer : public wf::scene::view_2d_transformer_t
123123

124124
void schedule_instructions(
125125
std::vector<render_instruction_t>& instructions,
126-
const wf::render_target_t& target, wf::region_t& damage) override
126+
const wf::render_target_t& target, wf::regionf_t& damage) override
127127
{
128128
instructions.push_back(render_instruction_t{
129129
.instance = this,
@@ -132,9 +132,9 @@ class helix_transformer : public wf::scene::view_2d_transformer_t
132132
});
133133
}
134134

135-
void transform_damage_region(wf::region_t& damage) override
135+
void transform_damage_region(wf::regionf_t& damage) override
136136
{
137-
damage |= wf::region_t{self->animation_geometry};
137+
damage |= self->animation_geometry;
138138
}
139139

140140
void render(const wf::scene::render_instruction_t& data) override
@@ -159,17 +159,17 @@ class helix_transformer : public wf::scene::view_2d_transformer_t
159159
auto y = src_box.height - i;
160160
auto inv_h = 1.0 / src_box.height;
161161
uv.push_back(0.0);
162-
uv.push_back(std::max(0, y - line_height) * inv_h);
162+
uv.push_back(std::max(0.0, y - line_height) * inv_h);
163163
uv.push_back(1.0);
164-
uv.push_back(std::max(0, y - line_height) * inv_h);
164+
uv.push_back(std::max(0.0, y - line_height) * inv_h);
165165
uv.push_back(0.0);
166166
uv.push_back(y * inv_h);
167167
uv.push_back(1.0);
168168
uv.push_back(y * inv_h);
169169
uv.push_back(0.0);
170170
uv.push_back(y * inv_h);
171171
uv.push_back(1.0);
172-
uv.push_back(std::max(0, y - line_height) * inv_h);
172+
uv.push_back(std::max(0.0, y - line_height) * inv_h);
173173
glm::vec4 v, r;
174174
glm::mat4 m(1.0);
175175
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
231231
wf::gles::bind_render_buffer(data.target);
232232
for (auto box : data.damage)
233233
{
234-
wf::gles::render_target_logic_scissor(data.target, wlr_box_from_pixman_box(box));
234+
wf::gles::render_target_logic_scissor(data.target, box);
235235
self->program.use(wf::TEXTURE_TYPE_RGBA);
236236
self->program.uniformMatrix4f("matrix", transform);
237237
self->program.attrib_pointer("position", 3, 0, vertices.data());

src/extra-animations/melt.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ class melt_transformer : public wf::scene::view_2d_transformer_t
140140

141141
void schedule_instructions(
142142
std::vector<render_instruction_t>& instructions,
143-
const wf::render_target_t& target, wf::region_t& damage) override
143+
const wf::render_target_t& target, wf::regionf_t& damage) override
144144
{
145145
instructions.push_back(render_instruction_t{
146146
.instance = this,
@@ -149,7 +149,7 @@ class melt_transformer : public wf::scene::view_2d_transformer_t
149149
});
150150
}
151151

152-
void transform_damage_region(wf::region_t& damage) override
152+
void transform_damage_region(wf::regionf_t& damage) override
153153
{
154154
damage |= self->get_padded_bounding_box();
155155
}
@@ -196,7 +196,7 @@ class melt_transformer : public wf::scene::view_2d_transformer_t
196196
wf::gles::bind_render_buffer(data.target);
197197
for (auto box : data.damage)
198198
{
199-
wf::gles::render_target_logic_scissor(data.target, wlr_box_from_pixman_box(box));
199+
wf::gles::render_target_logic_scissor(data.target, box);
200200
OpenGL::render_transformed_texture(final_tex, pbb,
201201
wf::gles::render_target_orthographic_projection(data.target),
202202
glm::vec4(1.0, 1.0, 1.0, 1.0 / (1.0 + pow(2.718, -(progress * 15.0 - 3.0)))), 0);

0 commit comments

Comments
 (0)