@@ -241,6 +241,7 @@ rounded_rect_to_floats (GskGLRenderer *self,
241
241
float * corner_widths ,
242
242
float * corner_heights )
243
243
{
244
+ const float scale = ops_get_scale (builder );
244
245
int i ;
245
246
graphene_rect_t transformed_bounds ;
246
247
@@ -253,8 +254,8 @@ rounded_rect_to_floats (GskGLRenderer *self,
253
254
254
255
for (i = 0 ; i < 4 ; i ++ )
255
256
{
256
- corner_widths [i ] = rect -> corner [i ].width * self -> scale_factor ;
257
- corner_heights [i ] = rect -> corner [i ].height * self -> scale_factor ;
257
+ corner_widths [i ] = rect -> corner [i ].width * scale ;
258
+ corner_heights [i ] = rect -> corner [i ].height * scale ;
258
259
}
259
260
}
260
261
@@ -317,6 +318,7 @@ render_text_node (GskGLRenderer *self,
317
318
{
318
319
const PangoFont * font = gsk_text_node_peek_font (node );
319
320
const PangoGlyphInfo * glyphs = gsk_text_node_peek_glyphs (node );
321
+ const float text_scale = ops_get_scale (builder );
320
322
guint num_glyphs = gsk_text_node_get_num_glyphs (node );
321
323
int i ;
322
324
int x_position = 0 ;
@@ -352,7 +354,7 @@ render_text_node (GskGLRenderer *self,
352
354
TRUE,
353
355
(PangoFont * )font ,
354
356
gi -> glyph ,
355
- self -> scale_factor );
357
+ text_scale );
356
358
357
359
/* e.g. whitespace */
358
360
if (glyph -> draw_width <= 0 || glyph -> draw_height <= 0 )
@@ -362,7 +364,7 @@ render_text_node (GskGLRenderer *self,
362
364
cy = (double )(gi -> geometry .y_offset ) / PANGO_SCALE ;
363
365
364
366
ops_set_texture (builder , gsk_gl_glyph_cache_get_glyph_image (& self -> glyph_cache ,
365
- glyph )-> texture_id );
367
+ glyph )-> texture_id );
366
368
367
369
tx = glyph -> tx ;
368
370
ty = glyph -> ty ;
@@ -394,6 +396,7 @@ render_border_node (GskGLRenderer *self,
394
396
GskRenderNode * node ,
395
397
RenderOpBuilder * builder )
396
398
{
399
+ const float scale = ops_get_scale (builder );
397
400
const float min_x = node -> bounds .origin .x ;
398
401
const float min_y = node -> bounds .origin .y ;
399
402
const float max_x = min_x + node -> bounds .size .width ;
@@ -459,7 +462,7 @@ render_border_node (GskGLRenderer *self,
459
462
sizes [3 ].h = 0 ;
460
463
461
464
for (i = 0 ; i < 4 ; i ++ )
462
- widths [i ] *= self -> scale_factor ;
465
+ widths [i ] *= scale ;
463
466
464
467
{
465
468
const GskQuadVertex side_data [4 ][6 ] = {
@@ -516,8 +519,8 @@ render_border_node (GskGLRenderer *self,
516
519
& outline .bounds , & outline .bounds );
517
520
for (i = 0 ; i < 4 ; i ++ )
518
521
{
519
- outline .corner [i ].width *= self -> scale_factor ;
520
- outline .corner [i ].height *= self -> scale_factor ;
522
+ outline .corner [i ].width *= scale ;
523
+ outline .corner [i ].height *= scale ;
521
524
}
522
525
523
526
ops_set_program (builder , & self -> border_program );
@@ -737,6 +740,7 @@ render_rounded_clip_node (GskGLRenderer *self,
737
740
GskRenderNode * node ,
738
741
RenderOpBuilder * builder )
739
742
{
743
+ const float scale = ops_get_scale (builder );
740
744
const float min_x = node -> bounds .origin .x ;
741
745
const float min_y = node -> bounds .origin .y ;
742
746
const float max_x = min_x + node -> bounds .size .width ;
@@ -756,14 +760,14 @@ render_rounded_clip_node (GskGLRenderer *self,
756
760
* We do, however, apply the scale factor to the child clip of course.
757
761
*/
758
762
759
- graphene_matrix_init_scale (& scale_matrix , self -> scale_factor , self -> scale_factor , 1.0f );
763
+ graphene_matrix_init_scale (& scale_matrix , scale , scale , 1.0f );
760
764
graphene_matrix_transform_bounds (& scale_matrix , & child_clip .bounds , & child_clip .bounds );
761
765
762
766
/* Increase corner radius size by scale factor */
763
767
for (i = 0 ; i < 4 ; i ++ )
764
768
{
765
- child_clip .corner [i ].width *= self -> scale_factor ;
766
- child_clip .corner [i ].height *= self -> scale_factor ;
769
+ child_clip .corner [i ].width *= scale ;
770
+ child_clip .corner [i ].height *= scale ;
767
771
}
768
772
769
773
prev_clip = ops_set_clip (builder , & child_clip );
@@ -881,6 +885,7 @@ render_inset_shadow_node (GskGLRenderer *self,
881
885
RenderOpBuilder * builder ,
882
886
const GskQuadVertex * vertex_data )
883
887
{
888
+ const float scale = ops_get_scale (builder );
884
889
RenderOp op ;
885
890
886
891
/* TODO: Implement blurred inset shadows as well */
@@ -897,10 +902,10 @@ render_inset_shadow_node (GskGLRenderer *self,
897
902
op .inset_shadow .outline ,
898
903
op .inset_shadow .corner_widths ,
899
904
op .inset_shadow .corner_heights );
900
- op .inset_shadow .radius = gsk_inset_shadow_node_get_blur_radius (node ) * self -> scale_factor ;
901
- op .inset_shadow .spread = gsk_inset_shadow_node_get_spread (node ) * self -> scale_factor ;
902
- op .inset_shadow .offset [0 ] = gsk_inset_shadow_node_get_dx (node ) * self -> scale_factor ;
903
- op .inset_shadow .offset [1 ] = - gsk_inset_shadow_node_get_dy (node ) * self -> scale_factor ;
905
+ op .inset_shadow .radius = gsk_inset_shadow_node_get_blur_radius (node ) * scale ;
906
+ op .inset_shadow .spread = gsk_inset_shadow_node_get_spread (node ) * scale ;
907
+ op .inset_shadow .offset [0 ] = gsk_inset_shadow_node_get_dx (node ) * scale ;
908
+ op .inset_shadow .offset [1 ] = - gsk_inset_shadow_node_get_dy (node ) * scale ;
904
909
905
910
ops_set_program (builder , & self -> inset_shadow_program );
906
911
ops_add (builder , & op );
@@ -913,6 +918,7 @@ render_unblurred_outset_shadow_node (GskGLRenderer *self,
913
918
RenderOpBuilder * builder ,
914
919
const GskQuadVertex * vertex_data )
915
920
{
921
+ const float scale = ops_get_scale (builder );
916
922
const float spread = gsk_outset_shadow_node_get_spread (node );
917
923
GskRoundedRect r = * gsk_outset_shadow_node_peek_outline (node );
918
924
RenderOp op ;
@@ -928,9 +934,9 @@ render_unblurred_outset_shadow_node (GskGLRenderer *self,
928
934
op .unblurred_outset_shadow .corner_widths ,
929
935
op .unblurred_outset_shadow .corner_heights );
930
936
931
- op .unblurred_outset_shadow .spread = gsk_outset_shadow_node_get_spread (node ) * self -> scale_factor ;
932
- op .unblurred_outset_shadow .offset [0 ] = gsk_outset_shadow_node_get_dx (node ) * self -> scale_factor ;
933
- op .unblurred_outset_shadow .offset [1 ] = - gsk_outset_shadow_node_get_dy (node ) * self -> scale_factor ;
937
+ op .unblurred_outset_shadow .spread = gsk_outset_shadow_node_get_spread (node ) * scale ;
938
+ op .unblurred_outset_shadow .offset [0 ] = gsk_outset_shadow_node_get_dx (node ) * scale ;
939
+ op .unblurred_outset_shadow .offset [1 ] = - gsk_outset_shadow_node_get_dy (node ) * scale ;
934
940
935
941
ops_set_program (builder , & self -> unblurred_outset_shadow_program );
936
942
ops_add (builder , & op );
@@ -2145,8 +2151,9 @@ add_offscreen_ops (GskGLRenderer *self,
2145
2151
gboolean force_offscreen ,
2146
2152
gboolean reset_clip )
2147
2153
{
2148
- const float width = (max_x - min_x ) * self -> scale_factor ;
2149
- const float height = (max_y - min_y ) * self -> scale_factor ;
2154
+ const float scale = ops_get_scale (builder );
2155
+ const float width = (max_x - min_x ) * scale ;
2156
+ const float height = (max_y - min_y ) * scale ;
2150
2157
int render_target ;
2151
2158
int prev_render_target ;
2152
2159
RenderOp op ;
@@ -2180,26 +2187,26 @@ add_offscreen_ops (GskGLRenderer *self,
2180
2187
render_target = gsk_gl_driver_create_render_target (self -> gl_driver , * texture_id , TRUE, TRUE);
2181
2188
2182
2189
graphene_matrix_init_ortho (& item_proj ,
2183
- min_x * self -> scale_factor , max_x * self -> scale_factor ,
2184
- min_y * self -> scale_factor , max_y * self -> scale_factor ,
2190
+ min_x * scale , max_x * scale ,
2191
+ min_y * scale , max_y * scale ,
2185
2192
ORTHO_NEAR_PLANE , ORTHO_FAR_PLANE );
2186
2193
graphene_matrix_scale (& item_proj , 1 , -1 , 1 );
2187
2194
graphene_matrix_init_identity (& identity );
2188
- graphene_matrix_scale (& identity , self -> scale_factor , self -> scale_factor , 1 );
2195
+ graphene_matrix_scale (& identity , scale , scale , 1 );
2189
2196
2190
2197
prev_render_target = ops_set_render_target (builder , render_target );
2191
2198
/* Clear since we use this rendertarget for the first time */
2192
2199
op .op = OP_CLEAR ;
2193
2200
ops_add (builder , & op );
2194
2201
prev_projection = ops_set_projection (builder , & item_proj );
2195
2202
prev_modelview = ops_set_modelview (builder , & identity );
2196
- prev_viewport = ops_set_viewport (builder , & GRAPHENE_RECT_INIT (min_x * self -> scale_factor ,
2197
- min_y * self -> scale_factor ,
2203
+ prev_viewport = ops_set_viewport (builder , & GRAPHENE_RECT_INIT (min_x * scale ,
2204
+ min_y * scale ,
2198
2205
width , height ));
2199
2206
if (reset_clip )
2200
2207
prev_clip = ops_set_clip (builder ,
2201
- & GSK_ROUNDED_RECT_INIT (min_x * self -> scale_factor ,
2202
- min_y * self -> scale_factor ,
2208
+ & GSK_ROUNDED_RECT_INIT (min_x * scale ,
2209
+ min_y * scale ,
2203
2210
width , height ));
2204
2211
2205
2212
gsk_gl_renderer_add_render_ops (self , child_node , builder );
0 commit comments