new features






New Features in Java 2D(TM) Technology






Documentation Contents












New Java 2DTM Features
in J2SE 5.0
















Caching All BufferedImages



Methods for Controlling Hardware Acceleration of Images


Support for Hardware-Accelerated Rendering Using OpenGL



Solaris and Linux Support for CUPS Printers



Bicubic Interpolation



Creating Fonts from Files and Streams



Improved Text Rendering Performance and Reliability



Multilingual Text Rendering








Caching All BufferedImages


As of J2SE 5.0, all images created with a
BufferedImage constructor
are now managed images and can be cached in video memory or,
in the case of a remote X server, on the X server side.
Previously, the Sun implementation managed only compatible images —
those created with the Component
createImage(int, int) method
or with the GraphicsConfiguration
createCompatibleImage methods.
Managed images generally perform better than unmanaged images.


Methods for Controlling Hardware Acceleration of Images


The bug report that corresponds to this change is:

4881082


The Image class
has three new methods related to hardware acceleration.
The
getCapabilities
method,
formerly defined only in
VolatileImage,
allows you to determine whether the image is currently accelerated.
Two other methods
let you set or get a hint about how important
acceleration is for the image:
setAccelerationPriority
and
getAccelerationPriority.



The GraphicsConfiguration class
has two new methods,
createCompatibleVolatileImage(int, int, int)
and
createCompatibleVolatileImage(int, int, ImageCapabilities, int),
that allow you to create
transparent VolatileImages.




Note:
In J2SE 5.0, these methods are not fully operational.
The value set by setAccelerationPriority is ignored,
and images created with the
createCompatibleVolatileImage methods
are not always hardware accelerated.
On Linux and Solaris systems, only OPAQUE VolatileImages
are hardware accelerated.
On Microsoft Windows systems,
images created with createCompatibleVolatileImage in J2SE 5.0
are hardware accelerated
only if the hardware supports acceleration
and one of the following is true:


The transparency value is OPAQUE.
The transparency value is TRANSLUCENT and
translucency acceleration has been specifically enabled at runtime
(sun.java2d.translaccel=true).


We expect to fully implement these methods on all platforms
in future releases.




Support for Hardware-Accelerated Rendering Using OpenGL

The bug reports that correspond to this change are:

4607536 and

5008045.
J2SE 5.0 includes a new OpenGL-based pipeline for Java 2D. This pipeline
provides hardware acceleration for simple rendering operations (text, images,
lines, and filled primitives) as well as those that involve complex transforms,
paints, composites, and clips. This pipeline is available on all platforms
(Solaris, Linux, and Microsoft Windows) and is currently disabled by default.
To silently enable the OpenGL-based pipeline, specify the following system
property on the command line:

-Dsun.java2d.opengl=true

To receive verbose console output about whether the OpenGL-based pipeline
is initialized successfully for a particular screen, specify "True"
(note the uppercase T):

-Dsun.java2d.opengl=True


Minimum requirements for Solaris/Linux:

Hardware accelerated OpenGL/GLX libraries installed and configured properly
OpenGL version 1.2 or higher
GLX version 1.3 or higher
At least one TrueColor visual with an available stencil buffer



Minimum requirements for Microsoft Windows:


Hardware accelerated drivers supporting the WGL_ARB_pbuffer, WGL_ARB_render_texture,
and WGL_ARB_pixel_format extensions
OpenGL version 1.2 or higher
At least one pixel format with an available stencil buffer




Solaris OpenGL Notes


Accelerated OpenGL libraries for the Solaris SPARC platform are available
directly from Sun:



http://wwws.sun.com/software/graphics/opengl/index.html


The following Sun framebuffers are known to work with the OpenGL-based Java 2D
pipeline:

Expert3D
Expert3D Lite
XVR-500
XVR-600
XVR-1000
XVR-1200



Accelerated OpenGL libraries for the Solaris x86 platform are not available
from Sun. However, third-parties such as Xi Graphics
are known to support OpenGL libraries for Solaris x86.


Linux OpenGL Notes


Most Linux distributions include the
Mesa 3D graphics library,
which is a software implementation of the OpenGL
specification. Since Mesa does not take advantage of hardware acceleration,
it is likely that the OpenGL-based Java 2D pipeline
will run much more slowly than
the default (X11-based) pipeline. Therefore, to achieve optimal performance
with the OpenGL-based pipeline, it is recommended that you install
accelerated OpenGL drivers provided by your graphics hardware manufacturer.



The following web sites may have accelerated OpenGL drivers
you can download.



Nvidia (GeForce 2 and above):
http://www.nvidia.com


ATI (Radeon 8500 and above, FireGL, etc.):
http://www.atitech.com


Others:

http://dri.sourceforge.net
http://www.xig.com



Microsoft Windows OpenGL Notes
To achieve optimal performance with the OpenGL-based pipeline, install accelerated
OpenGL drivers provided by your graphics hardware manufacturer. The following
websites have accelerated OpenGL drivers available for download that are known
to be compatible with the OpenGL-based Java 2D pipeline:



Nvidia (GeForce 2 and above): http://www.nvidia.com
ATI (Radeon series, FireGL, and so on): http://www.atitech.com



Note:
The latest drivers from both Nvidia and ATI have known issues
on Microsoft Windows that might cause rendering artifacts in your application.
We are actively investigating these driver bugs
and are working with the manufacturers to have them
resolved in future driver updates.



Solaris and Linux Support for CUPS Printers


The bug reports that correspond to this change are:

4641868 and

4683270


Solaris and Linux systems can now use printers configured
as CUPS (Common UNIX Printing System) printers. This expands the
printers the Java platform can use to all those supported
by CUPS — including most PostScript and raster printers —
making it much easier to use low-cost printers with Linux.
CUPS is based on IPP (Internet Printing Protocol).


See http://www.cups.org
for more information.




Bicubic Interpolation


The bug report that corresponds to this change is:

4200154


The 2D implementation now supports bicubic interpolation
and uses it whenever requested.
Previously, the
VALUE_INTERPOLATION_BICUBIC
hint defined by
the RenderingHints class wasn't honored,
and bilinear interpolation was used instead.
Now the bicubic rendering hint is honored, and
a new constant
TYPE_BICUBIC
has been added to
AffineTransformOp.



Creating Fonts from Files and Streams


The bug reports that correspond to this change are:

4390880 and

4468862


It is now possible to create Font objects from Type 1 fonts
and to create Font objects
directly from files
containing either Type 1 or TrueType font data.



To support the new functionality,
the Font class has a new
createFont
method that creates Font objects from files.
The pre-existing
createFont
method creates Font objects from streams.
A new constant,
Font.TYPE1_FONT,
specifies Type 1 fonts to either createFont method.



Improved Text Rendering Performance and Reliability


The bug report that corresponds to this change is:

4641861


A number of internal changes to text rendering code
greatly improve its robustness, performance, and scalability.



Multilingual Text Rendering


The bug report that corresponds to this change is:
4097028


2D text rendering using logical fonts now takes advantage of
installed host OS fonts for all supported writing systems to render
multilingual text. For example, if you run in a Thai locale
environment but have Korean fonts installed, both Thai and Korean
are rendered.










Copyright © 1995-2010 Sun Microsystems, Inc. All Rights Reserved. Please send comments using this Feedback page.

Java Technology










Wyszukiwarka