#include "main/glheader.h"
#include "main/context.h"
#include "main/colormac.h"
#include "main/convolve.h"
#include "main/histogram.h"
#include "main/image.h"
#include "main/macros.h"
#include "main/imports.h"
#include "main/pixel.h"
#include "s_context.h"
#include "s_depth.h"
#include "s_span.h"
#include "s_stencil.h"
#include "s_zoom.h"
Functions | |
static GLboolean | regions_overlap (GLint srcx, GLint srcy, GLint dstx, GLint dsty, GLint width, GLint height, GLfloat zoomX, GLfloat zoomY) |
Determine if there's overlap in an image copy. | |
static void | copy_conv_rgba_pixels (GLcontext *ctx, GLint srcx, GLint srcy, GLint width, GLint height, GLint destx, GLint desty) |
RGBA copypixels with convolution. | |
static void | copy_rgba_pixels (GLcontext *ctx, GLint srcx, GLint srcy, GLint width, GLint height, GLint destx, GLint desty) |
RGBA copypixels. | |
static void | copy_ci_pixels (GLcontext *ctx, GLint srcx, GLint srcy, GLint width, GLint height, GLint destx, GLint desty) |
static void | scale_and_bias_z (GLcontext *ctx, GLuint width, const GLfloat depth[], GLuint z[]) |
Convert floating point Z values to integer Z values with pixel transfer's Z scale and bias. | |
static void | copy_depth_pixels (GLcontext *ctx, GLint srcx, GLint srcy, GLint width, GLint height, GLint destx, GLint desty) |
static void | copy_stencil_pixels (GLcontext *ctx, GLint srcx, GLint srcy, GLint width, GLint height, GLint destx, GLint desty) |
static void | copy_depth_stencil_pixels (GLcontext *ctx, const GLint srcX, const GLint srcY, const GLint width, const GLint height, const GLint destX, const GLint destY) |
This isn't terribly efficient. | |
static GLboolean | fast_copy_pixels (GLcontext *ctx, GLint srcX, GLint srcY, GLsizei width, GLsizei height, GLint dstX, GLint dstY, GLenum type) |
Try to do a fast copy pixels. | |
void | _swrast_CopyPixels (GLcontext *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint destx, GLint desty, GLenum type) |
Do software-based glCopyPixels. |
void _swrast_CopyPixels | ( | GLcontext * | ctx, | |
GLint | srcx, | |||
GLint | srcy, | |||
GLsizei | width, | |||
GLsizei | height, | |||
GLint | destx, | |||
GLint | desty, | |||
GLenum | type | |||
) |
Do software-based glCopyPixels.
By time we get here, all parameters will have been error-checked.
static void copy_ci_pixels | ( | GLcontext * | ctx, | |
GLint | srcx, | |||
GLint | srcy, | |||
GLint | width, | |||
GLint | height, | |||
GLint | destx, | |||
GLint | desty | |||
) | [static] |
static void copy_conv_rgba_pixels | ( | GLcontext * | ctx, | |
GLint | srcx, | |||
GLint | srcy, | |||
GLint | width, | |||
GLint | height, | |||
GLint | destx, | |||
GLint | desty | |||
) | [static] |
RGBA copypixels with convolution.
static void copy_depth_pixels | ( | GLcontext * | ctx, | |
GLint | srcx, | |||
GLint | srcy, | |||
GLint | width, | |||
GLint | height, | |||
GLint | destx, | |||
GLint | desty | |||
) | [static] |
static void copy_depth_stencil_pixels | ( | GLcontext * | ctx, | |
const GLint | srcX, | |||
const GLint | srcY, | |||
const GLint | width, | |||
const GLint | height, | |||
const GLint | destX, | |||
const GLint | destY | |||
) | [static] |
This isn't terribly efficient.
If a driver really has combined depth/stencil buffers the driver should implement an optimized CopyPixels function.
static void copy_rgba_pixels | ( | GLcontext * | ctx, | |
GLint | srcx, | |||
GLint | srcy, | |||
GLint | width, | |||
GLint | height, | |||
GLint | destx, | |||
GLint | desty | |||
) | [static] |
RGBA copypixels.
static void copy_stencil_pixels | ( | GLcontext * | ctx, | |
GLint | srcx, | |||
GLint | srcy, | |||
GLint | width, | |||
GLint | height, | |||
GLint | destx, | |||
GLint | desty | |||
) | [static] |
static GLboolean fast_copy_pixels | ( | GLcontext * | ctx, | |
GLint | srcX, | |||
GLint | srcY, | |||
GLsizei | width, | |||
GLsizei | height, | |||
GLint | dstX, | |||
GLint | dstY, | |||
GLenum | type | |||
) | [static] |
Try to do a fast copy pixels.
static GLboolean regions_overlap | ( | GLint | srcx, | |
GLint | srcy, | |||
GLint | dstx, | |||
GLint | dsty, | |||
GLint | width, | |||
GLint | height, | |||
GLfloat | zoomX, | |||
GLfloat | zoomY | |||
) | [static] |
Determine if there's overlap in an image copy.
This test also compensates for the fact that copies are done from bottom to top and overlaps can sometimes be handled correctly without making a temporary image copy.
static void scale_and_bias_z | ( | GLcontext * | ctx, | |
GLuint | width, | |||
const GLfloat | depth[], | |||
GLuint | z[] | |||
) | [static] |
Convert floating point Z values to integer Z values with pixel transfer's Z scale and bias.