Add Texture::F_r11_g11_b10
This commit is contained in:
parent
d569e2ab6f
commit
9868d87196
|
|
@ -7763,6 +7763,7 @@ get_external_image_format(Texture *tex) const {
|
|||
case Texture::F_depth_component24:
|
||||
case Texture::F_depth_component32:
|
||||
case Texture::F_depth_stencil:
|
||||
case Texture::F_r11_g11_b10:
|
||||
// This shouldn't be possible.
|
||||
nassertr(false, GL_RGB);
|
||||
break;
|
||||
|
|
@ -7946,6 +7947,7 @@ get_external_image_format(Texture *tex) const {
|
|||
case Texture::F_rgb16:
|
||||
case Texture::F_rgb32:
|
||||
case Texture::F_srgb:
|
||||
case Texture::F_r11_g11_b10:
|
||||
#ifdef OPENGLES
|
||||
return GL_RGB;
|
||||
#else
|
||||
|
|
@ -8044,6 +8046,7 @@ get_internal_image_format(Texture *tex, bool force_sized) const {
|
|||
case Texture::F_rgb8i:
|
||||
case Texture::F_rgba8i:
|
||||
case Texture::F_r32i:
|
||||
case Texture::F_r11_g11_b10:
|
||||
// Unsupported; fall through to below.
|
||||
break;
|
||||
|
||||
|
|
@ -8536,6 +8539,11 @@ get_internal_image_format(Texture *tex, bool force_sized) const {
|
|||
return GL_R32I;
|
||||
#endif
|
||||
|
||||
#ifndef OPENGLES
|
||||
case Texture::F_r11_g11_b10:
|
||||
return GL_R11F_G11F_B10F;
|
||||
#endif
|
||||
|
||||
default:
|
||||
GLCAT.error()
|
||||
<< "Invalid image format in get_internal_image_format(): "
|
||||
|
|
@ -12105,6 +12113,13 @@ do_extract_texture_data(CLP(TextureContext) *gtc) {
|
|||
break;
|
||||
#endif
|
||||
|
||||
#ifndef OPENGLES
|
||||
case GL_R11F_G11F_B10F:
|
||||
type = Texture::T_float;
|
||||
format = Texture::F_r11_g11_b10;
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef OPENGLES_2
|
||||
case GL_RED_EXT:
|
||||
case GL_R8_EXT:
|
||||
|
|
|
|||
|
|
@ -577,6 +577,10 @@ estimate_texture_memory() const {
|
|||
bpp = 12;
|
||||
break;
|
||||
|
||||
case Texture::F_r11_g11_b10:
|
||||
bpp = 4;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
@ -1701,6 +1705,9 @@ write(ostream &out, int indent_level) const {
|
|||
case F_rgba8i:
|
||||
out << "rgba8i";
|
||||
break;
|
||||
case F_r11_g11_b10:
|
||||
out << "r11_g11_b10";
|
||||
break;
|
||||
}
|
||||
|
||||
if (cdata->_compression != CM_default) {
|
||||
|
|
@ -2115,6 +2122,8 @@ format_format(Format format) {
|
|||
return "rgb8i";
|
||||
case F_rgba8i:
|
||||
return "rgba8i";
|
||||
case F_r11_g11_b10:
|
||||
return "r11g11b10";
|
||||
}
|
||||
return "**invalid**";
|
||||
}
|
||||
|
|
@ -2201,6 +2210,8 @@ string_format(const string &str) {
|
|||
return F_rg32;
|
||||
} else if (cmp_nocase(str, "rgb32") == 0 || cmp_nocase(str, "r32g32b32") == 0) {
|
||||
return F_rgb32;
|
||||
} else if (cmp_nocase(str, "r11g11b10") == 0) {
|
||||
return F_r11_g11_b10;
|
||||
}
|
||||
|
||||
gobj_cat->error()
|
||||
|
|
@ -5181,6 +5192,7 @@ do_set_format(CData *cdata, Texture::Format format) {
|
|||
case F_srgb:
|
||||
case F_rgb32:
|
||||
case F_rgb8i:
|
||||
case F_r11_g11_b10:
|
||||
cdata->_num_components = 3;
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -156,6 +156,9 @@ PUBLISHED:
|
|||
F_rg8i, // 8 integer bits per R,G channel
|
||||
F_rgb8i, // 8 integer bits per R,G,B channel
|
||||
F_rgba8i, // 8 integer bits per R,G,B,A channel
|
||||
|
||||
F_r11_g11_b10, // unsigned floating-point, 11 Red, 11 Green, 10 Blue Bits
|
||||
|
||||
};
|
||||
|
||||
// Deprecated. See SamplerState.FilterType.
|
||||
|
|
|
|||
Loading…
Reference in New Issue