From ebe1642d7a65acd5e41632b3b23655f67de85cfc Mon Sep 17 00:00:00 2001 From: Brian Date: Mon, 29 Oct 2007 10:36:10 -0600 Subject: check for signed vs. unsigned in st_get_format_info() - fixes accum buffer failure --- src/mesa/state_tracker/st_format.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/mesa/state_tracker/st_format.c') diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c index c0e1a79bad..bffc39be87 100644 --- a/src/mesa/state_tracker/st_format.c +++ b/src/mesa/state_tracker/st_format.c @@ -204,19 +204,25 @@ st_get_format_info( else { GLuint size; - assert( info.type == PIPE_FORMAT_TYPE_UNORM ); - size = format_max_bits( info ); if (size == 8) { - pinfo->datatype = GL_UNSIGNED_BYTE; + if (info.type == PIPE_FORMAT_TYPE_UNORM) + pinfo->datatype = GL_UNSIGNED_BYTE; + else + pinfo->datatype = GL_BYTE; } else if (size == 16) { - pinfo->datatype = GL_UNSIGNED_SHORT; + if (info.type == PIPE_FORMAT_TYPE_UNORM) + pinfo->datatype = GL_UNSIGNED_SHORT; + else + pinfo->datatype = GL_SHORT; } else { assert( size <= 32 ); - - pinfo->datatype = GL_UNSIGNED_INT; + if (info.type == PIPE_FORMAT_TYPE_UNORM) + pinfo->datatype = GL_UNSIGNED_INT; + else + pinfo->datatype = GL_INT; } } -- cgit v1.2.3