mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-15 22:58:05 +02:00
st/mesa: handle float formats in st_format_datatype
NOTE: This is a candidate for the 7.11 branch.
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 7de28e80dc)
This commit is contained in:
parent
efd0ffd1b0
commit
b0a4f34ea8
1 changed files with 14 additions and 2 deletions
|
|
@ -85,6 +85,10 @@ st_format_datatype(enum pipe_format format)
|
|||
format == PIPE_FORMAT_B5G6R5_UNORM) {
|
||||
return GL_UNSIGNED_SHORT;
|
||||
}
|
||||
else if (format == PIPE_FORMAT_R11G11B10_FLOAT ||
|
||||
format == PIPE_FORMAT_R9G9B9E5_FLOAT) {
|
||||
return GL_FLOAT;
|
||||
}
|
||||
else if (format == PIPE_FORMAT_Z24_UNORM_S8_USCALED ||
|
||||
format == PIPE_FORMAT_S8_USCALED_Z24_UNORM ||
|
||||
format == PIPE_FORMAT_Z24X8_UNORM ||
|
||||
|
|
@ -105,18 +109,26 @@ st_format_datatype(enum pipe_format format)
|
|||
return GL_BYTE;
|
||||
}
|
||||
else if (size == 16) {
|
||||
if (desc->channel[i].type == UTIL_FORMAT_TYPE_FLOAT)
|
||||
return GL_HALF_FLOAT;
|
||||
if (desc->channel[i].type == UTIL_FORMAT_TYPE_UNSIGNED)
|
||||
return GL_UNSIGNED_SHORT;
|
||||
else
|
||||
return GL_SHORT;
|
||||
}
|
||||
else {
|
||||
assert( size <= 32 );
|
||||
else if (size <= 32) {
|
||||
if (desc->channel[i].type == UTIL_FORMAT_TYPE_FLOAT)
|
||||
return GL_FLOAT;
|
||||
if (desc->channel[i].type == UTIL_FORMAT_TYPE_UNSIGNED)
|
||||
return GL_UNSIGNED_INT;
|
||||
else
|
||||
return GL_INT;
|
||||
}
|
||||
else {
|
||||
assert(size == 64);
|
||||
assert(desc->channel[i].type == UTIL_FORMAT_TYPE_FLOAT);
|
||||
return GL_DOUBLE;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (format == PIPE_FORMAT_UYVY) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue