Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool FBO::createFBO(const FBO::Config &c, FBO::Data &data) const {
- FBO::Config config(c);
- bool multisample = config._depthSamples > 0;
- bool csaa = config._coverageSamples > config._depthSamples;
- bool ret = true;
- int query;
- glGenFramebuffersEXT(1, &data.fb);
- ret &= checkFrameBufferStatus(true);
- glGenTextures(1, &data.tex);
- // init texture
- glBindTexture(GL_TEXTURE_2D, data.tex);
- glTexImage2D(GL_TEXTURE_2D, 0,
- config._colorFormat, _texWidth, _texHeight, 0,
- GL_RGB, GL_FLOAT, NULL);
- // glGenerateMipmapEXT( GL_TEXTURE_2D);
- glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
- // glGenTextures( 1, &data.depthTex);
- // data.depthRB = 0;
- data.colorRB = 0;
- data.resolveFB = 0;
- //non-multisample, so bind things directly to the FBO
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, data.fb);
- glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, data.tex, 0);
- /* glBindTexture( GL_TEXTURE_2D, data.depthTex);
- glTexImage2D( GL_TEXTURE_2D, 0, config._depthFormat, _texWidth, _texHeight, 0,
- GL_DEPTH_COMPONENT, GL_FLOAT, NULL);
- glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
- glTexParameterf( GL_TEXTURE_2D, GL_DEPTH_TEXTURE_MODE, GL_LUMINANCE);
- glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, data.depthTex, 0);
- */
- ret &= checkFrameBufferStatus(true);
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, data.fb);
- /*glGetIntegerv( GL_RED_BITS, &query);
- if ( query != config.redbits) {
- ret = false;
- }*/
- /*glGetIntegerv( GL_DEPTH_BITS, &query);
- if ( query != config.depthBits) {
- ret = false;
- }*/
- glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
- return ret;
- }
Add Comment
Please, Sign In to add comment