Browse Source

mesa: added swapBytes parameter to _mesa_format_matches_format_and_type()

Not actually used yet though.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
tags/i965-primitive-restart-v2
Brian Paul 13 years ago
parent
commit
06aa607ba7
4 changed files with 12 additions and 7 deletions
  1. 6
    4
      src/mesa/main/formats.c
  2. 2
    1
      src/mesa/main/formats.h
  3. 2
    1
      src/mesa/main/readpix.c
  4. 2
    1
      src/mesa/swrast/s_drawpix.c

+ 6
- 4
src/mesa/main/formats.c View File

@@ -2516,14 +2516,16 @@ _mesa_format_to_type_and_comps(gl_format format,
/**
* Check if a gl_format exactly matches a GL formaat/type combination
* such that we can use memcpy() from one to the other.
*
* Note: this matching assumes that GL_PACK/UNPACK_SWAP_BYTES is unset.
*
* \param gl_format a MESA_FORMAT_x value
* \param format the user-specified image format
* \param type the user-specified image datatype
* \param swapBytes typically the current pixel pack/unpack byteswap state
* \return GL_TRUE if the formats match, GL_FALSE otherwise.
*/
GLboolean
_mesa_format_matches_format_and_type(gl_format gl_format,
GLenum format, GLenum type)
GLenum format, GLenum type,
GLboolean swapBytes)
{
const GLboolean littleEndian = _mesa_little_endian();


+ 2
- 1
src/mesa/main/formats.h View File

@@ -343,7 +343,8 @@ _mesa_format_num_components(gl_format format);

GLboolean
_mesa_format_matches_format_and_type(gl_format gl_format,
GLenum format, GLenum type);
GLenum format, GLenum type,
GLboolean swapBytes);


#ifdef __cplusplus

+ 2
- 1
src/mesa/main/readpix.c View File

@@ -209,7 +209,8 @@ fast_read_rgba_pixels_memcpy( struct gl_context *ctx,
GLubyte *dst, *map;
int dstStride, stride, j, texelBytes;

if (!_mesa_format_matches_format_and_type(rb->Format, format, type))
if (!_mesa_format_matches_format_and_type(rb->Format, format, type,
ctx->Pack.SwapBytes))
return GL_FALSE;

/* check for things we can't handle here */

+ 2
- 1
src/mesa/swrast/s_drawpix.c View File

@@ -239,7 +239,8 @@ fast_draw_rgba_pixels(struct gl_context *ctx, GLint x, GLint y,
return GL_TRUE;
}

if (_mesa_format_matches_format_and_type(rb->Format, format, type)) {
if (_mesa_format_matches_format_and_type(rb->Format, format, type,
ctx->Unpack.SwapBytes)) {
fast_draw_generic_pixels(ctx, rb, x, y, width, height,
format, type, &unpack, pixels);
return GL_TRUE;

Loading…
Cancel
Save