Am 06.10.2014 um 22:05 schrieb Marcelo Galvão Póvoa <marspeoples...@gmail.com>:

> On Sun, Oct 5, 2014 at 4:29 PM, Stephan Witt <st.w...@gmx.net> wrote:
>> Am 02.10.2014 um 13:14 schrieb Stephan Witt <st.w...@gmx.net>:
>> 
>>> Am 18.07.2014 um 10:39 schrieb Stephan Witt <st.w...@gmx.net>:
>>> 
>>>> 
>>>> Am 18.07.2014 um 10:26 schrieb Jean-Marc Lasgouttes <lasgout...@lyx.org>:
>>>> 
>>>>> Le 17/07/2014 23:24, Marcelo Galvão Póvoa a écrit :
>>>>>> I'm not sure how to easily get a pointer to the window containing the
>>>>>> current workarea in every part of the code I need to use pixel_ratio.
>>>>>> I could use the globally available qApp->activeWindow() macro, but
>>>>>> what if the active window is a dialog window instead of the workarea?
>>>>> 
>>>>> This is why there is a method to set it on a QImage/QPixmap. One only 
>>>>> needs to have the information when crating it.
>>>>> 
>>>>>> Besides, I currently need the device_ratio in some parts outside the
>>>>>> Qt frontend (for example, in src/insets/RenderGraphic.cpp), so I
>>>>>> couldn't access the window from there.
>>>>> 
>>>>> You could add a method to WorkArea that provides this information 
>>>>> (GuiWorkArea knows that). Would RenderImage be able to use it?
>>>>> 
>>>>>> Having multiple pixel ratios can indeed be an issue. For example, if a
>>>>>> GuiImage is created in a HiDPI screen, it would be assigned a 2x ratio
>>>>>> during initialization. But if the window is moved to a LowDPI screen
>>>>>> afterwards, the image ratio would need to be updated.
>>>>> 
>>>>> Or a given LyX instance could have one window on one screen and another 
>>>>> window on another screen.
>>>> 
>>>> Or you drag the LyX window from one screen with hi-res to another one with 
>>>> low-res.
>>>> 
>>>> E.g. from my laptop screen to the second screen on the TV.
>>>> 
>>>> Stephan
>>>> 
>>>>> 
>>>>> 
>>>>> I suspect that "interesting" things will happen when a window with 
>>>>> previews moves from on screen to another. Except if we already check the 
>>>>> size of previews.
>>>>> 
>>>>> JMarc
>>> 
>>> I gave it a try to make some progress regarding the HiDPI stuff.
>>> 
>>> First I've decided to split the task.  I'd postpone the image scaling 
>>> issues.
>>> Not only because of the dynamic nature of the preview rendering.  It's a 
>>> slightly
>>> more complex thing in general - we need to provide multiple image/icon sets 
>>> for
>>> different pixel ratios, IMHO.
>>> 
>>> My work is based on the first patch from Marcelo.  I dropped the use of the 
>>> global
>>> LyXRC member variable and made an alternate solution without it.
>>> 
>>> See the attached patch.  In principle it works.  There is an issue with 
>>> scrolling.
>>> The vertical scroll bar on a Mac is not visible all the time.  Only while 
>>> scrolling
>>> it is drawn and the content of the region under at the left side of the 
>>> main text
>>> area is a duplicate of the middle of the text area on the stop of the 
>>> scroll operation.
>>> See the attached screen shot.
>>> 
>>> Stephan
>>> 
>>> <0003-Add-basic-qt5-HiDPI-rendering-support.patch>
>>> <Bildschirmfoto 2014-10-02 um 13.04.08.png>
>> 
>> Now I have an improved patch without the scrolling issue. I'd like to commit 
>> it.
>> Are there any thoughts about it?
>> 
>> Stephan
>> 
> 
> I tested your patch a little and I found some of the quirks I've been
> having when I worked with this:
> 
> - Redrawing the cursor sometimes causes some drawing errors around
> characters. If I hold left/right arrow key to move the cursor across
> text, I get something like the attached screenshot. As I mentioned, my
> patch avoids partial viewport updates to workaround this, but it is
> not a decent solution.
> 
> - Instant Preview of math formulas is not rendered in HiDPI. My patch
> does this but has an ugly dependency on LyxRC.

Yes, I know.  I said I'll split the task into pieces.  I'm working on
an improved patch to get HiDPI preview already.

Do you have a proposal how to get HiDPI icons?

> - Dynamically changing window DPI (i.e, moving it between different
> screens) makes the text blurry. I haven't tested this much, but maybe
> it is related to some unflushed drawing cache?

I've tested this too and didn't see it.  But after that I changed the code.
I'll investigate again.  Thanks.

Stephan

Reply via email to