case GL_SRGB8_ALPHA8:
format = GL_RGBA;
break;
+ case GL_RGB32F_ARB:
+ case GL_RGB16F_ARB:
+ case GL_RGB8:
+ case GL_SRGB8:
+ format = GL_RGB;
+ break;
case GL_RG32F:
case GL_RG16F:
format = GL_RG;
map<GLuint, FBO>::const_iterator format_it = fbo_formats.find(fbo_num);
assert(format_it != fbo_formats.end());
if (format_it->second.texture_num == free_texture_num) {
+ fbo_formats.erase(fbo_num);
glDeleteFramebuffers(1, &fbo_num);
fbo_freelist.erase(fbo_freelist_it++);
} else {
case GL_SRGB8_ALPHA8:
bytes_per_pixel = 4;
break;
+ case GL_RGB32F_ARB:
+ bytes_per_pixel = 12;
+ break;
+ case GL_RGB16F_ARB:
+ bytes_per_pixel = 6;
+ break;
+ case GL_RGB8:
+ case GL_SRGB8:
+ bytes_per_pixel = 3;
+ break;
case GL_RG32F:
bytes_per_pixel = 8;
break;