Issue 85442 - Printing transparencies renders on Xserver
Summary: Printing transparencies renders on Xserver
Alias: None
Product: General
Classification: Code
Component: ui (show other issues)
Version: OOo 2.3.1
Hardware: All Linux, all
: P3 Trivial (vote)
Target Milestone: ---
Assignee: AOO issues mailing list
QA Contact:
Depends on:
Reported: 2008-01-21 15:11 UTC by crxssi
Modified: 2013-08-07 15:31 UTC (History)
1 user (show)

See Also:
Latest Confirmation in: ---
Developer Difficulty: ---


Note You need to log in before you can comment on or make changes to this issue.
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.