Guest User

Untitled

a guest
Apr 25th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. bool FBO::createFBO(const FBO::Config &c, FBO::Data &data) const {
  2. FBO::Config config(c);
  3.  
  4. bool multisample = config._depthSamples > 0;
  5. bool csaa = config._coverageSamples > config._depthSamples;
  6. bool ret = true;
  7. int query;
  8.  
  9. glGenFramebuffersEXT(1, &data.fb);
  10. ret &= checkFrameBufferStatus(true);
  11. glGenTextures(1, &data.tex);
  12.  
  13. // init texture
  14. glBindTexture(GL_TEXTURE_2D, data.tex);
  15. glTexImage2D(GL_TEXTURE_2D, 0,
  16. config._colorFormat, _texWidth, _texHeight, 0,
  17. GL_RGB, GL_FLOAT, NULL);
  18.  
  19. // glGenerateMipmapEXT( GL_TEXTURE_2D);
  20.  
  21. glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  22. glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
  23. glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
  24. glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
  25.  
  26.  
  27. // glGenTextures( 1, &data.depthTex);
  28. // data.depthRB = 0;
  29. data.colorRB = 0;
  30. data.resolveFB = 0;
  31.  
  32. //non-multisample, so bind things directly to the FBO
  33. glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, data.fb);
  34.  
  35. glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, data.tex, 0);
  36.  
  37. /* glBindTexture( GL_TEXTURE_2D, data.depthTex);
  38. glTexImage2D( GL_TEXTURE_2D, 0, config._depthFormat, _texWidth, _texHeight, 0,
  39. GL_DEPTH_COMPONENT, GL_FLOAT, NULL);
  40.  
  41. glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  42. glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  43. glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
  44. glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
  45. glTexParameterf( GL_TEXTURE_2D, GL_DEPTH_TEXTURE_MODE, GL_LUMINANCE);
  46.  
  47. glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, data.depthTex, 0);
  48. */
  49. ret &= checkFrameBufferStatus(true);
  50.  
  51. glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, data.fb);
  52. /*glGetIntegerv( GL_RED_BITS, &query);
  53. if ( query != config.redbits) {
  54. ret = false;
  55. }*/
  56.  
  57. /*glGetIntegerv( GL_DEPTH_BITS, &query);
  58. if ( query != config.depthBits) {
  59. ret = false;
  60. }*/
  61.  
  62.  
  63. glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
  64.  
  65. return ret;
  66. }
Add Comment
Please, Sign In to add comment