Issue 85442

Summary: Printing transparencies renders on Xserver
Product: General Reporter: crxssi <crxssi>
Component: uiAssignee: AOO issues mailing list <issues>
Status: CONFIRMED --- QA Contact:
Severity: Trivial    
Priority: P3 CC: issues
Version: OOo 2.3.1   
Target Milestone: ---   
Hardware: All   
OS: Linux, all   
Issue Type: ENHANCEMENT Latest Confirmation in: ---
Developer Difficulty: ---

Description crxssi 2008-01-21 15:11:51 UTC
This is something that causes a problem in our environment.  We use thin-client
Xterminals.  A Xterminal runs only the Xserver- the applications reside on a
different Linux/Unix central host.  Only the graphics output are sent to the
Xserver, and the Xserver sends back mouse and keyboard events to the Xhost.

Start with a Writer or Draw document that contains partially transparent
objects.  They can be simple transparent objects or transparency in frames.  I
suspect it will also do this in Impress.

Next, try to print the document.  You will be warned if you want to reduce
transparency.  Answer "no", because you really want it.  Now watch the network.
 During a long wait, OpenOffice is apparently uses the Xserver to compute the
transparency rendering!  It has to pass huge blocks of data from the application
to the Xserver.  If you have a large or complex document, and a slower network,
the user can be "stuck" waiting for 5, 10, even 20 minutes!  And during that
time, the network is saturated (possibly in both directions), preventing the
user from using other applications.

There seems to be a flaw in the design of OpenOffice that assumes the Xserver
will ALWAYS be local- running on the same machine as OpenOffice, itself.  That
assumption is a violation of the [client/server] design model for the X Windows

Granted, most modern OpenOffice users will have machines that run both the
Xserver and OpenOffice on the same machine, but it *can* cause problems for
people who use a thin model.  With the current design, the speed of rendering is
tied directly to the speed of the network.  I have a feeling it was just
"easier" to use some routines in the Xserver to do the transparency, instead of
writing new ones, and that most Unix/Linux users would never know.

Is there a way to stop using the Xserver to perform rendering for printing?
Comment 1 thb 2008-01-22 12:09:35 UTC
@pl: general design problem
Comment 2 thb 2008-01-22 12:10:19 UTC
confirmed, of course
Comment 3 philipp.lohmann 2008-01-22 12:28:40 UTC
We need a virtual device (on X implemented using a Pixmap) to render the
transparent parts into a single bitmap which then can be printed. We'd need a
new implementation of virtual device using a local framebuffer to work around
that. This may even be useful in other situations, too, but I cannot promise
when anyone comes around to implementing this.
Comment 4 crxssi 2008-01-23 02:27:17 UTC
Actually, that is what I figured.  It was probably far easier (and faster) at
the time to just render on the Xserver, since that was available and working. 
Thin clients are nothing new, yet certainly not going away.  Hopefully, one day
it can be fixed.  There might already be methods for doing this in other *ix
applications... but I am not well versed in that area, so I can't know, either way.

Thanks for "listening" :)
Comment 5 Rob Weir 2013-07-30 02:19:28 UTC
Reset assignee on issues not touched by assignee in more than 2000 days.