I’m trying to create a one_component floating point texture buffer (aka GL_R32F), but the FBO created is not at all what I expected.
When I print the FBProperties I used to create the texture buffer (using buffer.get_fb_properties()) I got what I configured :
float_color color_bits=32 red_bits=32 2d_texture generatorBuffer
However once the buffer is actually used, the actual FBProperties (and the actual texture format) is completely wrong, I get a three-components buffer and with half-float values :
float_color color_bits=48 red_bits=16 green_bits=16 blue_bits=16 force_hardware force_software 2d_texture
Looking at the code, my interpretation is that the GraphicStateGuardian looks only at the total number of bits to configure the FBO and not the number of color channels, and so when one request a total number of 32 bits the code allocate a 48 bits FBO with three components as it fits the bill. But I could also be doing something completely wrong