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>
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user