#include "main/glheader.h"
#include "main/bufferobj.h"
#include "main/colormac.h"
#include "main/convolve.h"
#include "main/context.h"
#include "main/feedback.h"
#include "main/image.h"
#include "main/macros.h"
#include "main/imports.h"
#include "main/pixel.h"
#include "main/state.h"
#include "s_context.h"
#include "s_depth.h"
#include "s_span.h"
#include "s_stencil.h"
Functions | |
| static void | read_index_pixels (GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type, GLvoid *pixels, const struct gl_pixelstore_attrib *packing) |
| static void | read_depth_pixels (GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type, GLvoid *pixels, const struct gl_pixelstore_attrib *packing) |
| Read pixels for format=GL_DEPTH_COMPONENT. | |
| static void | read_stencil_pixels (GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type, GLvoid *pixels, const struct gl_pixelstore_attrib *packing) |
| Read pixels for format=GL_STENCIL_INDEX. | |
| static GLboolean | fast_read_rgba_pixels (GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels, const struct gl_pixelstore_attrib *packing, GLbitfield transferOps) |
| Optimized glReadPixels for particular pixel formats when pixel scaling, biasing, mapping, etc. | |
| static void | adjust_colors (GLcontext *ctx, GLuint n, GLfloat rgba[][4]) |
| When we're using a low-precision color buffer (like 16-bit 5/6/5) we have to adjust our color values a bit to pass conformance. | |
| static void | read_rgba_pixels (GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels, const struct gl_pixelstore_attrib *packing) |
| static void | read_depth_stencil_pixels (GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type, GLvoid *pixels, const struct gl_pixelstore_attrib *packing) |
| Read combined depth/stencil values. | |
| void | _swrast_ReadPixels (GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *packing, GLvoid *pixels) |
| Software fallback routine for ctx->Driver.ReadPixels(). | |
| void _swrast_ReadPixels | ( | GLcontext * | ctx, | |
| GLint | x, | |||
| GLint | y, | |||
| GLsizei | width, | |||
| GLsizei | height, | |||
| GLenum | format, | |||
| GLenum | type, | |||
| const struct gl_pixelstore_attrib * | packing, | |||
| GLvoid * | pixels | |||
| ) |
Software fallback routine for ctx->Driver.ReadPixels().
By time we get here, all error checking will have been done.
| static void adjust_colors | ( | GLcontext * | ctx, | |
| GLuint | n, | |||
| GLfloat | rgba[][4] | |||
| ) | [static] |
When we're using a low-precision color buffer (like 16-bit 5/6/5) we have to adjust our color values a bit to pass conformance.
The problem is when a 5 or 6-bit color value is convert to an 8-bit value and then a floating point value, the floating point values don't increment uniformly as the 5 or 6-bit value is incremented.
This function adjusts floating point values to compensate.
| static GLboolean fast_read_rgba_pixels | ( | GLcontext * | ctx, | |
| GLint | x, | |||
| GLint | y, | |||
| GLsizei | width, | |||
| GLsizei | height, | |||
| GLenum | format, | |||
| GLenum | type, | |||
| GLvoid * | pixels, | |||
| const struct gl_pixelstore_attrib * | packing, | |||
| GLbitfield | transferOps | |||
| ) | [static] |
Optimized glReadPixels for particular pixel formats when pixel scaling, biasing, mapping, etc.
are disabled.
| static void read_depth_pixels | ( | GLcontext * | ctx, | |
| GLint | x, | |||
| GLint | y, | |||
| GLsizei | width, | |||
| GLsizei | height, | |||
| GLenum | type, | |||
| GLvoid * | pixels, | |||
| const struct gl_pixelstore_attrib * | packing | |||
| ) | [static] |
Read pixels for format=GL_DEPTH_COMPONENT.
| static void read_depth_stencil_pixels | ( | GLcontext * | ctx, | |
| GLint | x, | |||
| GLint | y, | |||
| GLsizei | width, | |||
| GLsizei | height, | |||
| GLenum | type, | |||
| GLvoid * | pixels, | |||
| const struct gl_pixelstore_attrib * | packing | |||
| ) | [static] |
Read combined depth/stencil values.
We'll have already done error checking to be sure the expected depth and stencil buffers really exist.
| static void read_index_pixels | ( | GLcontext * | ctx, | |
| GLint | x, | |||
| GLint | y, | |||
| GLsizei | width, | |||
| GLsizei | height, | |||
| GLenum | type, | |||
| GLvoid * | pixels, | |||
| const struct gl_pixelstore_attrib * | packing | |||
| ) | [static] |
| static void read_rgba_pixels | ( | GLcontext * | ctx, | |
| GLint | x, | |||
| GLint | y, | |||
| GLsizei | width, | |||
| GLsizei | height, | |||
| GLenum | format, | |||
| GLenum | type, | |||
| GLvoid * | pixels, | |||
| const struct gl_pixelstore_attrib * | packing | |||
| ) | [static] |
| static void read_stencil_pixels | ( | GLcontext * | ctx, | |
| GLint | x, | |||
| GLint | y, | |||
| GLsizei | width, | |||
| GLsizei | height, | |||
| GLenum | type, | |||
| GLvoid * | pixels, | |||
| const struct gl_pixelstore_attrib * | packing | |||
| ) | [static] |
Read pixels for format=GL_STENCIL_INDEX.
1.5.4