Not actually used yet though. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>tags/i965-primitive-restart-v2
@@ -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(); | |||
@@ -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 |
@@ -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 */ |
@@ -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; |