[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cairo
Subject:    Re: Implementing HiDpi scaling
From:       Federico Angelilli <list () fedang ! net>
Date:       2024-03-17 10:46:22
Message-ID: E0C751AF-183A-4ECB-A487-5E4E3C241E76 () fedang ! net
[Download RAW message or body]

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@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.
> 


[Attachment #3 (text/html)]

<html><head></head><body><div dir="auto">Hi<br><br>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?<br><br>Regards</div><br><br><div \
class="gmail_quote"><div dir="auto">On March 16, 2024 6:27:56 PM GMT+01:00, Uli \
Schlachter &lt;psychon@znc.in&gt; wrote:</div><blockquote class="gmail_quote" \
style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); \
padding-left: 1ex;"> <pre class="k9mail"><div dir="auto">Hi<br><br>Am 14.03.24 um \
16:34 schrieb fedang:<br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt \
1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"><div dir="auto">Hello \
all,<br><br>I am writing a small X11 app using cairo as the drawing backend. I was \
wondering if and how to implement<br>fractional scaling to accommodate high dpi \
screens. After searching online I found almost nothing, so here I am.<br><br>Can \
someone give me some pointers on what to do? I can get a scale factor for the screens \
(depending on the size)<br>but I have no idea how to actually use it in the draw \
code.<br></div></blockquote><div dir="auto"><br>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.<br><br>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.<br><br>Cheers,<br>Uli<br></div></pre></blockquote></div></body></html>




[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic