diff options
Diffstat (limited to 'fb.c')
-rw-r--r-- | fb.c | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -0,0 +1,30 @@ +#include <GL/glew.h> +#include <GLFW/glfw3.h> + +#include "fb.h" +#include "die.h" +#include "consts.h" + +GLuint init_fb() { + GLuint fbo; + glGenFramebuffers(1, &fbo); + + // configure newly created framebuffer + glBindFramebuffer(GL_FRAMEBUFFER, fbo); + + GLuint buffer; + glGenTextures(1, &buffer); + glBindTexture(GL_TEXTURE_2D, buffer); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, RES_H, RES_V, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, buffer, 0); + if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) + die("can't initialize framebuffer??\n"); + + // use default framebuffer again + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + return fbo; +} + |