core | glapi | vbo | math | shader | swrast | swrast_setup | tnl | tnl_dd

s_copypix.c File Reference

#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.


Function Documentation

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.

Returns:
GL_TRUE if the regions overlap, GL_FALSE otherwise.

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.


Generated on Sun Sep 27 06:48:05 2009 for Mesa Software Rasterization (swrast) by  doxygen 1.5.4