1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
--- a/src/overview.cpp
+++ b/src/overview.cpp
@@ -297,8 +297,8 @@
void update_transformer() {
if (!transformer || !view || !view->is_mapped() || orig_geo.width <= 0 || orig_geo.height <= 0) return;
auto cur = anim.current();
- float sx = std::clamp((float)cur.width / orig_geo.width, 0.1f, 10.0f);
- float sy = std::clamp((float)cur.height / orig_geo.height, 0.1f, 10.0f);
+ float sx = std::clamp(float(cur.width / orig_geo.width), 0.1f, 10.0f);
+ float sy = std::clamp(float(cur.height / orig_geo.height), 0.1f, 10.0f);
transformer->translation_x = (cur.x + cur.width/2.0f) - (orig_geo.x + orig_geo.width/2.0f);
transformer->translation_y = (cur.y + cur.height/2.0f) - (orig_geo.y + orig_geo.height/2.0f);
transformer->scale_x = sx; transformer->scale_y = sy;
@@ -962,10 +962,10 @@
public:
instance_t(panel_node_t *s, wf::scene::damage_callback pd) : self(s), push_damage(pd) {}
void schedule_instructions(std::vector<wf::scene::render_instruction_t> &instr,
- const wf::render_target_t &target, wf::region_t &damage) override {
+ const wf::render_target_t &target, wf::regionf_t &damage) override {
if (self->overview_active && *self->overview_active) return;
auto bbox = self->get_bounding_box();
- wf::region_t our_damage = damage & bbox;
+ wf::regionf_t our_damage = damage & bbox;
if (!our_damage.empty()) instr.push_back({.instance = this, .target = target, .damage = our_damage});
}
void render(const wf::scene::render_instruction_t &data) override {
@@ -974,7 +974,7 @@
render_tex(self->progs->tex, self->output, self->panel->tex_id, self->panel->get_render_geometry(), 1.0f, true);
});
}
- void compute_visibility(wf::output_t*, wf::region_t&) override {}
+ void compute_visibility(wf::output_t*, wf::regionf_t&) override {}
};
panel_node_t(wf::output_t *out, top_panel_t *p, gl_programs_t *pr, bool *active)
@@ -999,7 +999,7 @@
struct ws_capture_t {
std::shared_ptr<wf::workspace_stream_node_t> stream;
std::vector<wf::scene::render_instance_uptr> instances;
- wf::region_t damage; wf::auxilliary_buffer_t fb; wf::point_t ws;
+ wf::regionf_t damage; wf::auxilliary_buffer_t fb; wf::point_t ws;
};
class render_instance_t : public wf::scene::render_instance_t {
@@ -1015,7 +1015,7 @@
ws_capture_t c; c.ws = {x, y};
c.stream = std::make_shared<wf::workspace_stream_node_t>(s->output, c.ws);
auto idx = captures.size();
- c.stream->gen_render_instances(c.instances, [this, idx](const wf::region_t &d) {
+ c.stream->gen_render_instances(c.instances, [this, idx](const wf::regionf_t &d) {
if (idx < captures.size()) captures[idx].damage |= d;
push_damage(self->get_bounding_box());
}, s->output);
@@ -1043,10 +1043,10 @@
s.transformer->translation_x = s.transformer->translation_y = 0;
std::vector<wf::scene::render_instance_uptr> vi;
- s.view->get_transformed_node()->gen_render_instances(vi, [](const wf::region_t&){}, self->output);
+ s.view->get_transformed_node()->gen_render_instances(vi, [](const wf::regionf_t&){}, self->output);
wf::render_target_t st{drg.snapshot_fb}; st.geometry = geo; st.scale = scale;
wf::render_pass_params_t sp;
- sp.instances = &vi; sp.damage = wf::region_t{geo};
+ sp.instances = &vi; sp.damage = wf::regionf_t{geo};
sp.reference_output = self->output; sp.target = st;
sp.flags = wf::RPASS_CLEAR_BACKGROUND;
wf::render_pass_t::run(sp);
@@ -1057,7 +1057,7 @@
}
void schedule_instructions(std::vector<wf::scene::render_instruction_t> &instr,
- const wf::render_target_t &target, wf::region_t &damage) override {
+ const wf::render_target_t &target, wf::regionf_t &damage) override {
auto bbox = self->get_bounding_box();
float scale = self->output->handle->scale;
if (self->activities->drag.needs_capture) capture_drag_snapshot(scale);
@@ -1069,7 +1069,7 @@
c.fb.allocate(wf::dimensions(wb), scale);
wf::render_target_t t{c.fb}; t.geometry = wb; t.scale = scale;
wf::render_pass_params_t p;
- p.instances = &c.instances; p.damage = force ? wf::region_t{wb} : c.damage;
+ p.instances = &c.instances; p.damage = force ? wf::regionf_t{wb} : c.damage;
p.reference_output = self->output; p.target = t;
p.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
wf::render_pass_t::run(p); c.damage.clear();
@@ -1079,8 +1079,8 @@
}
void render(const wf::scene::render_instruction_t &data) override { self->do_render(data, captures); }
- void compute_visibility(wf::output_t *out, wf::region_t &) override {
- for (auto &c : captures) for (auto &i : c.instances) { wf::region_t r = c.stream->get_bounding_box(); i->compute_visibility(out, r); }
+ void compute_visibility(wf::output_t *out, wf::regionf_t &) override {
+ for (auto &c : captures) for (auto &i : c.instances) { wf::regionf_t r = c.stream->get_bounding_box(); i->compute_visibility(out, r); }
}
};
@@ -1492,12 +1492,12 @@
}
void handle_motion() {
auto c = wf::get_core().get_cursor_position();
- auto o = wf::get_core().output_layout->get_output_at(c.x, c.y);
+ auto o = wf::get_core().output_layout->find_closest_output(c);
if (o && outputs.count(o)) outputs[o]->handle_motion(c);
}
void handle_button(wlr_pointer_button_event *ev) {
auto c = wf::get_core().get_cursor_position();
- auto o = wf::get_core().output_layout->get_output_at(c.x, c.y);
+ auto o = wf::get_core().output_layout->find_closest_output(c);
if (o && outputs.count(o)) outputs[o]->handle_button(ev->button, ev->state, c);
}
};
|