40 glGenFramebuffers(1, &this->
id);
43 ERROR(
"Error creating framebuffer!");
46 glBindFramebuffer(GL_FRAMEBUFFER, this->
id);
52 ERROR(
"Error creating texture!");
55 glBindTexture(GL_TEXTURE_2D, this->
texture_id);
58 glTexImage2D(GL_TEXTURE_2D, 0, this->format, width, height, 0, GL_RGB,
59 GL_UNSIGNED_BYTE, NULL);
60 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
61 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
62 glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
67 glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH24_STENCIL8, width, height);
68 glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT,
72 if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
74 ERROR(
"Framebuffer is not complete!");
78 glBindFramebuffer(GL_FRAMEBUFFER, 0);
79 glBindTexture(GL_TEXTURE_2D, 0);
80 glBindRenderbuffer(GL_RENDERBUFFER, 0);
109 glBindFramebuffer(GL_FRAMEBUFFER, this->
id);
110 if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
112 ERROR(
"Framebuffer is not complete!");
116 glBindTexture(GL_TEXTURE_2D, this->
texture_id);
119 glTexImage2D(GL_TEXTURE_2D, 0, this->
format, width, height, 0, GL_RGBA,
120 GL_UNSIGNED_BYTE, NULL);
121 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
122 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
123 glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
125 glBindTexture(GL_TEXTURE_2D, 0);
129 glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH24_STENCIL8, width, height);
130 glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT,