Implementing HiDpi scaling

Federico Angelilli list at fedang.net
Sun Mar 17 10:46:22 UTC 2024


Hi

Will cairo_scale make a pixel perfect image for non integer scales? To my understanding the scale matrix will be multiplied to all the coordinates scaling the coordinates appropriately. Should I also scale the whole surface by that same factor?

Regards

On March 16, 2024 6:27:56 PM GMT+01:00, Uli Schlachter <psychon at znc.in> wrote:
>Hi
>
>Am 14.03.24 um 16:34 schrieb fedang:
>> Hello all,
>> 
>> I am writing a small X11 app using cairo as the drawing backend. I was wondering if and how to implement
>> fractional scaling to accommodate high dpi screens. After searching online I found almost nothing, so here I am.
>> 
>> Can someone give me some pointers on what to do? I can get a scale factor for the screens (depending on the size)
>> but I have no idea how to actually use it in the draw code.
>
>I'm not sure if I understand the question. You can use cairo_scale() to set a scale factor for all drawing. So I would say that you can just apply the scale factor with cairo_scale() before drawing.
>
>Of course, this assumes that you don't use cairo_identity_matrix() or cairo_set_matrix() in your drawing. Instead, cairo_save() and cairo_restore() should be used around temporary modifications of the transformations.
>
>Cheers,
>Uli
>-- 
>Do you remember what we used to say back then?
>One impossible thing at a time.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cairographics.org/archives/cairo/attachments/20240317/cfd71afb/attachment.htm>


More information about the cairo mailing list