GullFOSS
OpenOffice.org Engineering at Sun
 
Subscribe

Today's Page Hits: 394

 
Archives
 
« July 2008
SunMonTueWedThuFriSat
  
1
5
6
7
9
10
12
16
19
20
21
22
23
24
25
26
27
28
29
30
31
  
       
Today
Links
Flickr Photos
More Flickr photos tagged with openoffice
Locations of visitors to this page
all tags: accessibility apache api aqua architecture automated_tests automation base beta build calc chart code community compiler cws database development directx download draw eis events export extensions features filter framework graphics gsl gsoc gullfoss i18n import impress installation irc iso26300 java l10n localization mac macros netbeans odf odff ooo ooocon ooxml opendocument openoffice.org patch pdf performance plugin podcast porting qa quality quaste release report sdk snapshot software specification spreadsheet staroffice statistics statuspage sun svg testing toolkit tools usability user-experience vba web wiki writer writerfilter xml
« OOo Mac Port: IRC'in... | Main | StarOffice/OpenOffic... »
Thursday, 19 Oct 2006
Multimonitor support for the slideshow
Philipp Lohmann

Finally it's available: multiscreen support for the presentation module. From SRC680m187 on you can select which monitor your fullscreen presentation will appear on; of course you still can have the old behaviour to spread the presentation over all monitors (on X11 systems this requires the Xinerama extension to be active). Just open “Slideshow->Slideshow settings” and select your preferred multimonitor setting.


A little bit background: the decision to implement this enhancement took a while (the initial issue 12719 was filed over three years ago) because of the necessary investment of development resources. The effort was not negligible mainly because of the X11 platform where multimonitor support has to be implemented twofold: once for Xinerama where one big screen is spread over multiple monitors and once for multiple screens where each monitor is a separate screen. Especially the latter case required a large rework of the X11 layer of vcl (the Visual Class Library, OpenOffice.org's toolkit) since almost all resources cannot be shared between different screens. E.g. consider bitmaps: for a presentation containing images the impress application has loaded and drawn already in the normal document window. Now the user starts the fullscreen presentation and the same object needs to be drawn on another screen. On X11 this will not work out of the box, since bitmaps are held as a Pixmap on the X11 server. Drawing said Pixmap on another screen will simply result in an error since resources cannot be shared between screens. So code needed to be implemented that would consider this and create a new Pixmap on the second screen. And of course one has to account for the fact, that different screens may have different pixel formats (e.g. one screen can have 24 bit color depth, the next 8 bit), so conversion on the fly is required.


This is of course just one example, the same is true for other resources (windows, GCs, whatever). And since most of these resources get cached within vcl to minimize round-trips to the Xserver, the caches also had to be multiscreen aware.


So what about the Windows platform ? Things are much easier here; resources are shared between screens (e.g. you can normally simply drag a window from one screen to another), so here only some coordinate adjustments were necessary to ensure that the fullscreen presentation shows in the right place. This is very similar to the Xinerama case on X11.


So all you presenters out there, have fun with our new multimonitor support !


tags:

Posted by Philipp Lohmann on 19 Oct 2006  |  PermaLink |  Bookmark to del.icio.us Bookmark to del.icio.us |  Digg this Digg this  |  Comments[4]

Comments:

Awesome. I've been wanting this for a while. Question, though. How hard would it be to support additional X11 servers, e.g. host1:0.0, host2:1.2 or whatever?

Posted by Joseph on October 19, 2006 at 05:42 PM CEST #

Basically the same amount of work again as making it multiscreen capable, because the same side effects apply: resources cannot be shared between displays of course, only more so than between screens. There are indeed some things that can be shared between multiple screens (like e.g. Pictures for the RENDER extension which is screen agnostic) but cannot be shared between displays.

Posted by 192.18.240.11 on October 19, 2006 at 06:06 PM CEST #

How do I enable multimonitor support? I've got m188, but the multimonitor stuff in slideshow settings is greyed out. I'm using xorg 7.0, nvidia drivers, twinview, two 1920x1200 screens. xdpyinfo | grep XINERAMA displays XINERAMA.

Posted by Martin on October 20, 2006 at 04:06 PM CEST #

In the XINERAMA case the multimonitor support depends on the xinerama extension reporting where the actual screens are on the big virtual screen. If the multimonitor stuff is grayed out, then most likely the twinview driver does not report this. Alternatively look into /etc/X11/xorg.conf; there should be two "screen" sections in there while in the "ServerFlags" section there should be an entry like

Option "Xinerama" "true"

Posted by Philipp Lohmann on October 20, 2006 at 04:26 PM CEST #

Post a Comment:
Comments are closed for this entry.
« OOo Mac Port: IRC'in... | Main | StarOffice/OpenOffic... » GullFOSS