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().