JDK-4841762 : OGL: enable bilinear sw->surface transforms
  • Type: Enhancement
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 5.0
  • Priority: P3
  • Status: Open
  • Resolution: Unresolved
  • OS: generic
  • CPU: generic
  • Submitted: 2003-04-02
  • Updated: 2021-07-13
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Relates :  
Relates :  
Relates :  
Description
When using the OpenGL-based Java 2D pipeline, transformed image copies (from
system memory surfaces to OpenGL surfaces) are currently performed using the
software medialib routines if the BILINEAR hint is specified.  There are two
approaches for sw->surface transforms:
  - if the GL_EXT_pixel_transform extension is present, we simply specify the
    GL_LINEAR flag and set up the appropriate GL_PIXEL_TRANSFORM_2D matrix
  - if that extension is not present, we perform the transform by copying the
    source image one tile at a time into an intermediate texture, and then
    map that texture onto a transformed quad, using the GL_LINEAR interpolation
    flag

Most of this code is already present in the source tree.  The only thing lacking
is the ability to handle tiled bilinear texture transforms in the
OGLBlitToSurfaceViaTexture() method in OGLBlitLoops.c.  Once this is enabled,
we can remove the NEAREST_NEIGHBOR-only restriction from
OGLDrawImage.transformImage().

Comments
EVALUATION Fix as specified in the description field. Adding tiled bilinear support is not entirely trivial, as care must be taken to include 1-pixel texture borders to account for blending at the edges. Fortunately, OpenGL provides a mechanism to specify a texture border. ###@###.### 2003-04-02 This is better categorized as an RFE, since bilinear sw->surface transforms currently work fine with the OGL pipeline, albeit slower than if we handled bilinear transforms using OGL textures (as described above). I'm changing this to an RFE and decommitting from Tiger. ###@###.### 2003-07-31
31-07-2003