mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-01 01:07:51 -04:00
glgsg: add ability to get red/rg-only floating-point renderbuffers
This commit is contained in:
parent
b7d638e53d
commit
11526852ed
@ -921,21 +921,38 @@ bind_slot(int layer, bool rb_resize, Texture **attach, RenderTexturePlane slot,
|
|||||||
if (_fb_properties.get_alpha_bits() == 0) {
|
if (_fb_properties.get_alpha_bits() == 0) {
|
||||||
if (_fb_properties.get_srgb_color()) {
|
if (_fb_properties.get_srgb_color()) {
|
||||||
gl_format = GL_SRGB8;
|
gl_format = GL_SRGB8;
|
||||||
} else if (_fb_properties.get_float_color()) {
|
} else if (_fb_properties.get_color_bits() > 16 * 3 ||
|
||||||
if (_fb_properties.get_color_bits() > 16 * 3) {
|
_fb_properties.get_red_bits() > 16 ||
|
||||||
gl_format = GL_RGB32F_ARB;
|
_fb_properties.get_green_bits() > 16 ||
|
||||||
|
_fb_properties.get_blue_bits() > 16) {
|
||||||
|
// 32-bit, which is always floating-point.
|
||||||
|
if (_fb_properties.get_blue_bits() > 0 ||
|
||||||
|
_fb_properties.get_color_bits() == 1 ||
|
||||||
|
_fb_properties.get_color_bits() > 32 * 2) {
|
||||||
|
gl_format = GL_RGB32F;
|
||||||
|
} else if (_fb_properties.get_green_bits() > 0 ||
|
||||||
|
_fb_properties.get_color_bits() > 32) {
|
||||||
|
gl_format = GL_RG32F;
|
||||||
} else {
|
} else {
|
||||||
gl_format = GL_RGB16F_ARB;
|
gl_format = GL_R32F;
|
||||||
}
|
}
|
||||||
|
} else if (_fb_properties.get_float_color()) {
|
||||||
|
// 16-bit floating-point.
|
||||||
|
if (_fb_properties.get_blue_bits() > 0 ||
|
||||||
|
_fb_properties.get_color_bits() == 1 ||
|
||||||
|
_fb_properties.get_color_bits() > 16 * 2) {
|
||||||
|
gl_format = GL_RGB16F;
|
||||||
|
} else if (_fb_properties.get_green_bits() > 0 ||
|
||||||
|
_fb_properties.get_color_bits() > 16) {
|
||||||
|
gl_format = GL_RG16F;
|
||||||
} else {
|
} else {
|
||||||
if (_fb_properties.get_color_bits() > 16 * 3) {
|
gl_format = GL_R16F;
|
||||||
gl_format = GL_RGB32F_ARB;
|
}
|
||||||
} else if (_fb_properties.get_color_bits() > 8 * 3) {
|
} else if (_fb_properties.get_color_bits() > 8 * 3) {
|
||||||
gl_format = GL_RGB16_EXT;
|
gl_format = GL_RGB16_EXT;
|
||||||
} else {
|
} else {
|
||||||
gl_format = GL_RGB;
|
gl_format = GL_RGB;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (_fb_properties.get_srgb_color()) {
|
if (_fb_properties.get_srgb_color()) {
|
||||||
gl_format = GL_SRGB8_ALPHA8;
|
gl_format = GL_SRGB8_ALPHA8;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user