OpenGL.GL.EXT.framebuffer_multisample_blit_scaled
OpenGL extension EXT.framebuffer_multisample_blit_scaled
This module customises the behaviour of the
OpenGL.raw.GL.EXT.framebuffer_multisample_blit_scaled to provide a more
Python-friendly API
Overview (from the spec)
This extension relaxes some of the restrictions associated with
multisample resolve operations, specifically to allow a combined
resolve and scale operation through a single call to BlitFramebuffer.
It also adds two new filter types to control the quality of the
combined scaled resolve operation.
In traditional multisampled framebuffer rendering, color samples
must be explicitly resolved via BlitFramebuffer before any other
operation on the resulting pixel values can be performed. This
multisample resolve operation must be done using a BlitFramebuffer
call where the dimensions of the source and destination rectangles
are identical. If the resulting pixel values need to be copied to a
texture with different dimensions, these resolved values can then be
scaled with a second call to BlitFramebuffer.
By requiring two separate calls to BlitFramebuffer, the quality
of final image can be maintained to a certain degree. The samples
are first resolved, and then these resolved values can be filtered
to produce the final image. This image quality comes at the price
of increased memory usage and lower performance. However, the
scaling blit can still introduce artifacts, particularly if it is
done with a simple bilinear filter.
The new filter types introduced by this extension allow the scaled
resolve to be done with a single call to BlitFramebuffer. Not all
samples from the read framebuffer are required to be be used when
producing the final pixel values, and there may be a loss in quality
when compared to an image produced by a separate resolve and scale.
However, the single-pass scaled resolve blit should be faster than
the traditional two-pass resolve then scale blits.
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/EXT/framebuffer_multisample_blit_scaled.txt
Functions
Constants
GL_SCALED_RESOLVE_FASTEST_EXT (37050)
GL_SCALED_RESOLVE_NICEST_EXT (37051)