Issue 112193

Summary: Aqua: avoid vertically-flipped graphics contexts
Product: gsl Reporter: hdu <hdu>
Component: codeAssignee: AOO issues mailing list <issues>
Status: CONFIRMED --- QA Contact:
Severity: trivial    
Priority: P3 CC: floeff+ooo, hdu, issues, thb
Version: OOo 3.2Keywords: aqua
Target Milestone: OOo 3.x   
Hardware: Mac   
OS: Mac OSX   
Issue Type: ENHANCEMENT Latest Confirmation on: ---
Developer Difficulty: ---

Description hdu@apache.org 2010-06-07 15:27:08 UTC
The VCL coordinate system is vertically flipped compared to the Quartz coordinate system. There are 
two possible approaches to handle this:
1. use a y-flipped height-shifted CTM for the graphics context to allow using VCL coordinates directly
2. flip y-coordinates manually before operating on a unity-CTM graphics context

OOo's  aqua-port choose method 1 and both approaches should work the same. Unfortunately it shows 
that OSX implements some improvements only for unity-CTM graphics contexts. Moving the baseline 
of text to pixel boundaries is probably the most important thing that is missing in y-flipped contexts, 
which cannot be emulated by moving the text coordinates. This results in grayish text baselines for y-
flipped contexts whereas a unity-CTM graphics context gets higher contrast baselines.

Unless Quartz/ATSUI/CoreText provide the chance to get the same look also for flipped-CTM graphics 
contexts we should consider to re-implement the VCL->Quartz glue code with approach 2 mentioned 
above.
Comment 1 floeff+ooo 2010-06-08 09:42:30 UTC
If there's something I can help you with, albeit I'm not a developer, let me know.
Comment 2 philipp.lohmann 2010-06-08 10:23:35 UTC
thanks for the offer
Comment 3 hdu@apache.org 2010-10-29 11:24:31 UTC
There is a good chance that the text improvements mentioned in my issue summary will also be 
implemented for some non-unity CTMs: Quartz docs advise to use a y-flip transformation for for drawing 
text onto a view on iOS, since it uses the same coordinate convention as VCL of the upper left corner being 
the origin of the coordinate system extending downwards. As of OSX 10.6.4 this doesn't seem to be the 
case yet.
Comment 4 Rob Weir 2013-07-30 02:14:19 UTC
Reset assignee on issues not touched by assignee in more than 2000 days.