sync with texmem branch

This commit is contained in:
Brian Paul 2006-03-15 17:48:00 +00:00
parent eccb6a0698
commit 59e0faaa5c
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

@ -653,11 +653,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:
@ -717,7 +720,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)");
@ -973,6 +976,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);