Welcome to NeoOffice developer notes and announcements
NeoOffice
Developer notes and announcements
 
 

This website is an archive and is no longer active
NeoOffice announcements have moved to the NeoOffice News website


Support
· Forums
· NeoOffice Support
· NeoWiki


Announcements
· Twitter @NeoOffice


Downloads
· Download NeoOffice


  
NeoOffice :: View topic - Retina display?
Retina display?
 
   NeoOffice Forum Index -> NeoOffice Testing
View previous topic :: View next topic  
Author Message
ovvldc
Captain Naiobi


Joined: Sep 13, 2004
Posts: 2352
Location: Zürich, CH

PostPosted: Sat Jun 23, 2012 3:58 am    Post subject: Retina display?

Has anyone tested the new de-javafied test code with the new MacBook Pro 15" with Retina display?

I was reading the MSOffice cannot deal with that screen very well in its current form, and Apache OpenOffice/LibreOffice probably cannot either.

I don't know to what extent the new code uses native structures, and now hard it would be to work at retina display resolution for text and drawing primitives (not icons) , but that would surely be a selling point for NeoOffice at the high end.

Best wishes,
Oscar

_________________
"What do you think of Western Civilization?"
"I think it would be a good idea!"
- Mohandas Karamchand Gandhi
Back to top
pluby
The Architect
The Architect


Joined: Jun 16, 2003
Posts: 11949

PostPosted: Sat Jun 23, 2012 5:33 am    Post subject: Re: Retina display?

ovvldc wrote:
Has anyone tested the new de-javafied test code with the new MacBook Pro 15" with Retina display?


I would be very interested to hear if anyone has tested using a new Retina display MacBook Pro as well. Our Mac hardware budget is limited to machines that can run Mac OS X 10.5 and/or 10.6 so we won't likely buy a machine with Retina display this year so if anyone buys one in the near future, please install our upcoming NeoOffice 3.3 Beta release and let us know if you see if jagged edges in text and/or shapes.

ovvldc wrote:
I don't know to what extent the new code uses native structures, and now hard it would be to work at retina display resolution for text and drawing primitives (not icons) , but that would surely be a selling point for NeoOffice at the high end.


In theory, the de-Javafied code in NeoOffice 3.3 Beta should support Retina displays for text and shapes since we do not draw to bitmaps and, instead, draw to CGLayer objects. CGLayer objects are great for virtual offscreen drawing because they support drawing at the resolution of the screen whereas doing drawing to an offscreen bitmap forces drawing to a 96 DPI resolution.

So, as a result of using CGLayer objects, our native text and shape drawing should be as crisp as the screen resolution supports. The only exceptions to this that I know of are the following cases:

1. When drawing some curved shapes, there are still a few cases where OpenOffice.org code tells our code to turn off antialiasing so the shape is drawn have jagged edged lines. This is not very common but the good news is that with Retina display, the jaggedness of unantialiased lines should be less noticeable.

2. Although our code measures glyph kerning positions in thousandths of a pixel, there are still a few cases where the OpenOffice.org code tells NeoOffice to reposition glyphs to the nearest 1/96th of an inch on the screen.

Both of these cases should be uncommon so let us know if you see anything different.

Patrick
Back to top
sardisson
Town Crier
Town Crier


Joined: Feb 01, 2004
Posts: 4588

PostPosted: Sat Jun 23, 2012 12:20 pm    Post subject:

My initial thought is that the biggest place there will be problems that people will notice is with icons in the app. They'll probably be fuzzy scaled-up since these are a small size and AFAIK OOo doesn't include double-size versions.

From my initial read-through of the resolution docs, most of the normal APIs do the right thing automatically, and the two places you had to do something were if you used OpenGL and making sure any images had 2x versions. Patrick's comment seems to confirm that he doesn't think Neo is using any "bad" APIs.

I'm curious about how drawing of the toolbar (and other places that have icons as part of the UI, like the "From Template" window) work; does the OOo code give a complete "window" representation to Neo's drawing code, or does it hand Neo's drawing code all the "parts", or even a list of "parts" it should use, and then have Neo's drawing code put it all together?

(If it's the former, then OOo is definitely in the same situation as other cross-platform apps, and I'm not sure how they're going to go about fixing that; I guess writing code to detect when the window is *currently* displayed on a HiDPI screen and use a 2x version of an icon/image instead of the 1x version, and then listen for screen-change notifications and switch icon/image versions and redraw when the window moves screens or the screen changes. Not sure how you'd solve the problem of a window half on a HiDPI screen and half on a normal screen, though….)

Edit: I should add, if you're on 10.7 and have the developer tools installed, you can enabled HiDPI modes and get a simulation of what you'll see with a Retina display: http://osxdaily.com/2012/01/12/enable-hidpi-mode-in-mac-os-x-lion/ From what I've heard so far, there are places where the simulation and/or screenshots of the simulation can be inaccurate, but you get the general picture.

Smokey

_________________
"[...] whether the duck drinks hot chocolate or coffee is irrelevant." -- ovvldc and sardisson in the NeoWiki
Back to top
pluby
The Architect
The Architect


Joined: Jun 16, 2003
Posts: 11949

PostPosted: Sat Jun 23, 2012 12:36 pm    Post subject:

sardisson wrote:
I'm curious about how drawing of the toolbar (and other places that have icons as part of the UI, like the "From Template" window) work; does the OOo code give a complete "window" representation to Neo's drawing code, or does it hand Neo's drawing code all the "parts", or even a list of "parts" it should use, and then have Neo's drawing code put it all together?


OOo gives stores icons as raw bitmap and gives those raw bitmaps to the NeoOffice code. There are no scalable vector graphics within the OOo or NeoOffice code.

When OOo wants those bitmaps drawn, the OOo code tells the NeoOffice the rectangle to draw the bitmap to in 96 DPI coordinates. The NeoOffice code then draws the bitmap to a CGLayer object. That CGLayer object, in turn, silently scales the image to match the actual monitor display.

So, the problem with the current icons is that they are 96 DPI bitmaps and no amount of scaling will make them any crisper than 96 DPI.

That said, we can improve the display resolution of images in users' documents where such images are scaled down. For example, if the user has a 960 x 960 pixel image (10 x 10 inches at 96 DPI) and sets it to display at 10% of its width and height in a document (1 x 1 inch in NeoOffice) we can have NeoOffice skip scaling the image down to a 96 x 96 pixel imageand, instead, tell the CGLayer object to draw all 960 x 960 pixels in a 1 x 1 inch space on screen.

In theory, once I implement the above user image handling, the icon designers could replace NeoOffice's 96 DPI icon images with higher resolution images. But that would need to be tested to see if it would work.

I will likely have a test patch out for this user image handling very soon after NeoOffice 3.3 Beta is released. More discussion of this is in this forum topic.

Patrick
Back to top
sardisson
Town Crier
Town Crier


Joined: Feb 01, 2004
Posts: 4588

PostPosted: Sat Jun 23, 2012 4:55 pm    Post subject:

pluby wrote:
OOo gives stores icons as raw bitmap and gives those raw bitmaps to the NeoOffice code. There are no scalable vector graphics within the OOo or NeoOffice code.

When OOo wants those bitmaps drawn, the OOo code tells the NeoOffice the rectangle to draw the bitmap to in 96 DPI coordinates. The NeoOffice code then draws the bitmap to a CGLayer object. That CGLayer object, in turn, silently scales the image to match the actual monitor display.

Wow, I hadn't expected OOo to do the icon drawing like that; that is indeed "good" news in terms of the prospects of being able to make those icons/images Retina-compatible, as you've outlined Smile (Also, CGLayer sounds like really neat and very capable API.) Thanks, Patrick!

Smokey

_________________
"[...] whether the duck drinks hot chocolate or coffee is irrelevant." -- ovvldc and sardisson in the NeoWiki
Back to top
djpimley
The Anomaly
(earlier version)


Joined: Jun 11, 2006
Posts: 481
Location: Great Britain

PostPosted: Sun Jun 24, 2012 2:37 am    Post subject:

sardisson wrote:
that is indeed "good" news in terms of the prospects of being able to make those icons/images Retina-compatible

There's a couple more obstacles to Retina support: 1) Neo needs to know when it is running on a retina Mac and use retina assets accordingly. Simply replacing all the icon assets with 64px versions will result in them being scaled to 32px on non-retina Macs, which would make them soft. 2) Someone has to draw several hundred retina icons... Wink
Back to top
ovvldc
Captain Naiobi


Joined: Sep 13, 2004
Posts: 2352
Location: Zürich, CH

PostPosted: Sun Jun 24, 2012 5:32 am    Post subject:

djpimley wrote:
There's a couple more obstacles to Retina support: 1) Neo needs to know when it is running on a retina Mac and use retina assets accordingly. Simply replacing all the icon assets with 64px versions will result in them being scaled to 32px on non-retina Macs, which would make them soft. 2) Someone has to draw several hundred retina icons... Wink


Well, the icons will not be as pretty as they can be, but if the text and lines and shapes are good, then the main functions are at least covered and people can see what they have made at the right resolution..

_________________
"What do you think of Western Civilization?"
"I think it would be a good idea!"
- Mohandas Karamchand Gandhi
Back to top
pluby
The Architect
The Architect


Joined: Jun 16, 2003
Posts: 11949

PostPosted: Sun Jun 24, 2012 8:18 am    Post subject:

djpimley wrote:
There's a couple more obstacles to Retina support: 1) Neo needs to know when it is running on a retina Mac and use retina assets accordingly. Simply replacing all the icon assets with 64px versions will result in them being scaled to 32px on non-retina Macs, which would make them soft. 2) Someone has to draw several hundred retina icons... Wink


Also, even if someone like yourself had the time to redraw hundreds of icons, I would highly recommend quickly changing one icon to 64 px to see if NeoOffice's underlying OpenOffice.org code will display 64 px icons as 32 px high on the screen. I suspect that the OpenOffice.org code will blindly display them as huge 64 pixel icons.

Personally, my opinion is that the existing icons are more than adequate. If you or anyone else want to recreate all of the icons with 64 px versions, I will figure out how to display them properly. However, I know that recreating all those icons is a massive amount of work and our existing icons will look just as good on a Retina display as they do on slightly less high resolution monitors so I would put this project in the "cool but entirely optional" category.

I know that there is a lot of media buzz about the Retina displays but conceptually this is just another increase in monitor resolution. Such increases in monitor resolution have already happened several times in the last 5 years. Like past increases, existing images should not look look any worse because the screen resolution increases.

Patrick
Back to top
djpimley
The Anomaly
(earlier version)


Joined: Jun 11, 2006
Posts: 481
Location: Great Britain

PostPosted: Sun Jun 24, 2012 9:14 am    Post subject:

pluby wrote:
I know that there is a lot of media buzz about the Retina displays but conceptually this is just another increase in monitor resolution.

Indeed, and of questionable necessity from where I'm sitting (in front of a 30" 2560x1600 Dell monitor which is pretty darn close to the resolving power of my eye at this distance.) Taking into account the cost factor of Retina and the average Mac's operational lifetime, the vast majority of Mac users will be using non-Retina displays for several years to come.
Back to top
pluby
The Architect
The Architect


Joined: Jun 16, 2003
Posts: 11949

PostPosted: Tue Jul 17, 2012 7:39 am    Post subject:

FYI. A user with confirmed in this forum post that our latest NeoOffice 3.3 Beta test patch properly displays text, lines, shapes, and native controls in high resolution on their Retina display.

Patrick
Back to top
pluby
The Architect
The Architect


Joined: Jun 16, 2003
Posts: 11949

PostPosted: Mon Jul 23, 2012 3:57 pm    Post subject:

FYI. I have included the fix for blurry text on Retina displays in NeoOffice 3.3 Beta 2 which can be downloaded from the NeoOffice download page.

Patrick
Back to top
Display posts from previous:   
   NeoOffice Forum Index -> NeoOffice Testing All times are GMT - 7 Hours
Page 1 of 1

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum

Powered by phpBB © 2001, 2005 phpBB Group

All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © Planamesa Inc.
NeoOffice is a registered trademark of Planamesa Inc. and may not be used without permission.
PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.