Added BindFramebuffer() driver hook.

Rename base_internal_format() to _mesa_base_fbo_format() and make public.
This commit is contained in:
Brian Paul 2006-03-14 22:43:01 +00:00
parent e176b11b74
commit 448a3456a9
3 changed files with 15 additions and 3 deletions

View file

@ -801,6 +801,8 @@ struct dd_function_table {
/*@{*/
struct gl_framebuffer * (*NewFramebuffer)(GLcontext *ctx, GLuint name);
struct gl_renderbuffer * (*NewRenderbuffer)(GLcontext *ctx, GLuint name);
void (*BindFramebuffer)(GLcontext *ctx, GLenum target,
struct gl_framebuffer *fb);
void (*FramebufferRenderbuffer)(GLcontext *ctx,
struct gl_framebuffer *fb,
GLenum attachment,

View file

@ -659,11 +659,14 @@ _mesa_GenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers)
/**
* Given an internal format token for a render buffer, return the
* corresponding base format.
* This is very similar to _mesa_base_tex_format() but the set of valid
* internal formats is somewhat different.
*
* \return one of GL_RGB, GL_RGBA, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT
* GL_DEPTH_STENCIL_EXT or zero if error.
*/
static GLenum
base_internal_format(GLcontext *ctx, GLenum internalFormat)
GLenum
_mesa_base_fbo_format(GLcontext *ctx, GLenum internalFormat)
{
switch (internalFormat) {
case GL_RGB:
@ -723,7 +726,7 @@ _mesa_RenderbufferStorageEXT(GLenum target, GLenum internalFormat,
return;
}
baseFormat = base_internal_format(ctx, internalFormat);
baseFormat = _mesa_base_fbo_format(ctx, internalFormat);
if (baseFormat == 0) {
_mesa_error(ctx, GL_INVALID_ENUM,
"glRenderbufferStorageEXT(internalFormat)");
@ -979,6 +982,10 @@ _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer)
}
ctx->DrawBuffer = newFb;
}
if (ctx->Driver.BindFramebuffer) {
ctx->Driver.BindFramebuffer(ctx, target, newFb);
}
}

View file

@ -54,6 +54,9 @@ _mesa_framebuffer_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb,
extern void
_mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb);
extern GLenum
_mesa_base_fbo_format(GLcontext *ctx, GLenum internalFormat);
extern GLboolean GLAPIENTRY
_mesa_IsRenderbufferEXT(GLuint renderbuffer);