Skip to content

Commit 303491e

Browse files
committed
squeezimize: compute upward once in the beginning
1 parent 416d54e commit 303491e

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

plugins/animate/squeezimize.hpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,11 @@ class squeezimize_animation_t : public duration_t
126126
class squeezimize_transformer : public wf::scene::view_2d_transformer_t
127127
{
128128
public:
129-
wf::output_t *output;
130129
OpenGL::program_t program;
131130
wf::geometry_t minimize_target;
132131
wf::geometry_t animation_geometry;
133132
squeezimize_animation_t progression;
133+
bool upward = false;
134134

135135
class simple_node_render_instance_t : public wf::scene::transformer_render_instance_t<squeezimize_transformer>
136136
{
@@ -178,9 +178,6 @@ class squeezimize_transformer : public wf::scene::view_2d_transformer_t
178178
auto src_tex = wf::scene::transformer_render_instance_t<squeezimize_transformer>::get_texture(
179179
1.0);
180180
auto progress = self->progression.progress();
181-
int upward = ((src_box.y > self->minimize_target.y) ||
182-
((src_box.y < 0) &&
183-
(self->minimize_target.y < self->output->get_relative_geometry().height / 2)));
184181
static const float vertex_data_uv[] = {
185182
0.0f, 0.0f,
186183
1.0f, 0.0f,
@@ -234,7 +231,7 @@ class squeezimize_transformer : public wf::scene::view_2d_transformer_t
234231
self->program.uniformMatrix4f("matrix", target.get_orthographic_projection());
235232
self->program.attrib_pointer("position", 2, 0, vertex_data_pos);
236233
self->program.attrib_pointer("uv_in", 2, 0, vertex_data_uv);
237-
self->program.uniform1i("upward", upward);
234+
self->program.uniform1i("upward", self->upward);
238235
self->program.uniform1f("progress", progress);
239236
self->program.uniform4f("src_box", src_box_pos);
240237
self->program.uniform4f("target_box", target_box_pos);
@@ -282,6 +279,11 @@ class squeezimize_transformer : public wf::scene::view_2d_transformer_t
282279
OpenGL::render_begin();
283280
program.compile(squeeze_vert_source, squeeze_frag_source);
284281
OpenGL::render_end();
282+
283+
auto src_box = view->get_bounding_box();
284+
auto output = view->get_output();
285+
this->upward = ((src_box.y > minimize_target.y) ||
286+
((src_box.y < 0) && (minimize_target.y < output->get_relative_geometry().height / 2)));
285287
}
286288

287289
wf::geometry_t get_bounding_box() override

0 commit comments

Comments
 (0)