[OpenJDK 2D-Dev] How are transformations done and some other questions
Jim Graham
Jim.A.Graham at Sun.COM
Mon May 19 19:09:50 UTC 2008
And note that we aren't necessarily dealing with transforms in the
fastest way in all cases. Until recently we were focused mainly on
Swing performance and they mostly dealt with integer translations and
integer rendering requests. Nowadays as we focus the platform more on
rich clients and scene graphs we are starting to run into the
inefficiencies in the transformed shape rendering code.
We recently made some major enhancements to the OGL and D3D pipelines in
6u10 to dispatch transformed wide single lines, and filled and drawn
rectangles directly to a primitive in the RenderQueue and got a huge
performance boost. We'll have to port those changes (along with the D3D
pipeline) to JDK7 sometime soon (after we're done fixing bugs in 6u10)
and then we'd like to continue doing performance work to make
transformations of some other common shapes avoid a lot of the overhead
you are seeing here...
...jim
Clemens Eisserer wrote:
> Sorry, seems I've mixed some things up.
>
> After stepping through with a debugger things are much clearer now :)
>
> Sorry for the traffic, lg Clemens
>
> 2008/5/16 Clemens Eisserer <linuxhippy at gmail.com>:
>> Hello,
>>
>> 1.) I am currently investigating how AffineTransformations are done by
>> Java2D, and for the X11 Pipeline it seems for anything but
>> translations the PixelToShapeConverter is called and the general
>> path/fill algorythmns are used.
>> In the case of a simply Line, it is rotated and then sent to the
>> X11Renderer which continues processing as nothing would have
>> happended.
>>
>> Does the OpenGL pipeline work the same way?
>> I saw that it registers some TransformBlits, so is the tranformation
>> of everything exctept images handled by Java2D?
>> I wonder because this would mean that for images I would have to
>> adjust the context to rotate, but for everything else I would have to
>> reset it.
>> Seems I mess things somehow up :-/
>>
>> 2.) The X11-Pipeline does clipping itself (took me some time to
>> understand why the validation code always passed without re-seting the
>> current clip^^) for drawImage. Why was this done?
>>
>> Thanks, lg Clemens
>>
More information about the 2d-dev
mailing list