aboutsummaryrefslogtreecommitdiff
path: root/fb.c
diff options
context:
space:
mode:
Diffstat (limited to 'fb.c')
-rw-r--r--fb.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/fb.c b/fb.c
new file mode 100644
index 0000000..479808c
--- /dev/null
+++ b/fb.c
@@ -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;
+}
+