mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-26 13:41:07 +00:00
gsk: Fix hidpi scaling
We store the vertices in (unscaled) window coords (but the item size is still scaled to match the texture size). Also, the projection/model-view multiplication order is switched so that the scale is applied at the right place.
This commit is contained in:
parent
1c7c77bc94
commit
e0ab6d5a3c
@ -364,7 +364,7 @@ gsk_gl_renderer_update_frustum (GskGLRenderer *self,
|
||||
{
|
||||
GSK_NOTE (TRANSFORMS, g_print ("Updating the modelview/projection\n"));
|
||||
|
||||
graphene_matrix_multiply (projection, modelview, &self->mvp);
|
||||
graphene_matrix_multiply (modelview, projection, &self->mvp);
|
||||
|
||||
graphene_frustum_init_from_matrix (&self->frustum, &self->mvp);
|
||||
|
||||
@ -632,12 +632,12 @@ gsk_gl_renderer_add_render_item (GskGLRenderer *self,
|
||||
/* Each render item is an axis-aligned bounding box that we
|
||||
* transform using the given transformation matrix
|
||||
*/
|
||||
item.min.x = bounds.origin.x * scale_factor;
|
||||
item.min.y = bounds.origin.y * scale_factor;
|
||||
item.min.x = bounds.origin.x;
|
||||
item.min.y = bounds.origin.y;
|
||||
item.min.z = 0.f;
|
||||
|
||||
item.max.x = item.min.x + item.size.width;
|
||||
item.max.y = item.min.y + item.size.height;
|
||||
item.max.x = item.min.x + bounds.size.width;
|
||||
item.max.y = item.min.y + bounds.size.height;
|
||||
item.max.z = 0.f;
|
||||
|
||||
/* The location of the item, in normalized world coordinates */
|
||||
|
Loading…
Reference in New Issue
Block a user