61 glGenFramebuffersEXT(1, &
m_fbo);
80 glDeleteFramebuffersEXT(1, &
m_fbo);
93 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
94 glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8_EXT,
96 GL_UNSIGNED_INT_24_8_EXT, NULL);
100 glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,
101 GL_DEPTH_ATTACHMENT_EXT,
140 if (i == -1)
AttachTexture(p_width, p_height, p_param, p_glid, p_attach_point);
141 else p_attach_point = (
MOuint)i;
148 if (i == -1)
AttachTexture(p_width, p_height, p_param, p_glid, p_attach_point);
149 else p_attach_point = (
MOuint)i;
201 glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,
207 if (status == GL_FRAMEBUFFER_COMPLETE_EXT)
211 m_num_color_attach_points++;
245 glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,
251 if (status == GL_FRAMEBUFFER_COMPLETE_EXT)
266 glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,
277 status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
280 case GL_FRAMEBUFFER_COMPLETE_EXT:
283 case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT:
284 if (
MODebug2 != NULL)
MODebug2->
Error(
"moFBO::CheckStatus > GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT");
286 case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT:
287 if (
MODebug2 != NULL)
MODebug2->
Error(
"moFBO::CheckStatus > GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT");
292 case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT:
293 if (
MODebug2 != NULL)
MODebug2->
Error(
"moFBO::CheckStatus > GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT");
296 case GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT:
299 case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT:
300 if (
MODebug2 != NULL)
MODebug2->
Error(
"moFBO::CheckStatus > GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT");
302 case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT:
303 if (
MODebug2 != NULL)
MODebug2->
Error(
"moFBO::CheckStatus > GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT");
306 case GL_FRAMEBUFFER_UNSUPPORTED_EXT:
Parámetros internos de una textura.
void Error(moText p_text)
Anuncia y registra un error.
MOuint CheckStatus() const
MOint GetColorAttachPointIndex(MOuint p_glid)
MOuint m_num_color_attach_points
MOuint AttachTexture(MOuint p_width, MOuint p_height, const moTexParam &p_param, MOuint p_glid, MOuint p_attach_point)
void InitAttachPointsArray()
MOboolean m_has_depth_buffer
virtual MOboolean Init()
Inicializa el objeto.
void SetDrawTexture(MOuint p_attach_point)
void Log(moText p_text)
Escribe un mensaje en el archivo de registro (log)
void SetCurrentDrawBuffer(MOint p_buffer)
void SetCurrentReadBuffer(MOint p_buffer)
MOuint AddTexture(MOuint p_width, MOuint p_height, const moTexParam &p_param, MOuint p_glid, MOuint &p_attach_point)
MOuint m_tex_glid_array[MO_MAX_COLOR_ATTACHMENTS_EXT]
#define MO_MAX_COLOR_ATTACHMENTS_EXT
void SetCurrentFBO(MOuint m_fbo)
#define MO_FRAMEBUFFER_INVALID_TEX
MOboolean AddDepthStencilBuffer()
MOboolean IsValidTexture(MOuint p_width, MOuint p_height, const moTexParam &p_param) const
virtual MOboolean Finish()
MOint GetTextureGLId(MOuint p_attach_point)
MOint GetColorAttachPoint(MOuint p_attach_point)
manejador de operaciones comunes de Open GL
static moDebug * MODebug2
Clase de impresión de errores para depuración.
MOuint m_attach_points_array[MO_MAX_COLOR_ATTACHMENTS_EXT]
#define MO_FRAMEBUFFER_FULL
MOboolean m_has_stencil_buffer
void SetReadTexture(MOuint p_attach_point)
moDefineDynamicArray(moFBOArray) moFBO