@@ -126,11 +126,11 @@ class squeezimize_animation_t : public duration_t
126
126
class squeezimize_transformer : public wf ::scene::view_2d_transformer_t
127
127
{
128
128
public:
129
- wf::output_t *output;
130
129
OpenGL::program_t program;
131
130
wf::geometry_t minimize_target;
132
131
wf::geometry_t animation_geometry;
133
132
squeezimize_animation_t progression;
133
+ bool upward = false ;
134
134
135
135
class simple_node_render_instance_t : public wf ::scene::transformer_render_instance_t <squeezimize_transformer>
136
136
{
@@ -178,9 +178,6 @@ class squeezimize_transformer : public wf::scene::view_2d_transformer_t
178
178
auto src_tex = wf::scene::transformer_render_instance_t <squeezimize_transformer>::get_texture (
179
179
1.0 );
180
180
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 )));
184
181
static const float vertex_data_uv[] = {
185
182
0 .0f , 0 .0f ,
186
183
1 .0f , 0 .0f ,
@@ -234,7 +231,7 @@ class squeezimize_transformer : public wf::scene::view_2d_transformer_t
234
231
self->program .uniformMatrix4f (" matrix" , target.get_orthographic_projection ());
235
232
self->program .attrib_pointer (" position" , 2 , 0 , vertex_data_pos);
236
233
self->program .attrib_pointer (" uv_in" , 2 , 0 , vertex_data_uv);
237
- self->program .uniform1i (" upward" , upward);
234
+ self->program .uniform1i (" upward" , self-> upward );
238
235
self->program .uniform1f (" progress" , progress);
239
236
self->program .uniform4f (" src_box" , src_box_pos);
240
237
self->program .uniform4f (" target_box" , target_box_pos);
@@ -282,6 +279,11 @@ class squeezimize_transformer : public wf::scene::view_2d_transformer_t
282
279
OpenGL::render_begin ();
283
280
program.compile (squeeze_vert_source, squeeze_frag_source);
284
281
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 )));
285
287
}
286
288
287
289
wf::geometry_t get_bounding_box () override
0 commit comments