From: Brian Paul Date: Thu, 30 Mar 2006 16:32:16 +0000 (+0000) Subject: Init the Red/Green/Blue/Alpha/Depth/StencilBits fields in driNewRenderbuffer() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=94d6bf883b3c2bfa52e178aa8abf5929ff524949;p=mesa.git Init the Red/Green/Blue/Alpha/Depth/StencilBits fields in driNewRenderbuffer() --- diff --git a/src/mesa/drivers/dri/common/drirenderbuffer.c b/src/mesa/drivers/dri/common/drirenderbuffer.c index 990f71450db..2e477815ba8 100644 --- a/src/mesa/drivers/dri/common/drirenderbuffer.c +++ b/src/mesa/drivers/dri/common/drirenderbuffer.c @@ -40,6 +40,10 @@ driDeleteRenderbuffer(struct gl_renderbuffer *rb) * Allocate a new driRenderbuffer object. * Individual drivers are free to implement different versions of * this function. + * + * At this time, this function can only be used for window-system + * renderbuffers, not user-created RBOs. + * * \param format Either GL_RGBA, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, * GL_DEPTH_COMPONENT32, or GL_STENCIL_INDEX8_EXT (for now). * \param addr address in main memory of the buffer. Probably a memory @@ -81,30 +85,45 @@ driNewRenderbuffer(GLenum format, GLvoid *addr, /* Color */ drb->Base._BaseFormat = GL_RGBA; drb->Base.DataType = GL_UNSIGNED_BYTE; + if (format == GL_RGB5) { + drb->Base.RedBits = 5; + drb->Base.GreenBits = 6; + drb->Base.BlueBits = 5; + } + else { + drb->Base.RedBits = + drb->Base.GreenBits = + drb->Base.BlueBits = + drb->Base.AlphaBits = 8; + } } else if (format == GL_DEPTH_COMPONENT16) { /* Depth */ drb->Base._BaseFormat = GL_DEPTH_COMPONENT; /* we always Get/Put 32-bit Z values */ drb->Base.DataType = GL_UNSIGNED_INT; + drb->Base.DepthBits = 16; } else if (format == GL_DEPTH_COMPONENT24) { /* Depth */ drb->Base._BaseFormat = GL_DEPTH_COMPONENT; /* we always Get/Put 32-bit Z values */ drb->Base.DataType = GL_UNSIGNED_INT; + drb->Base.DepthBits = 24; } else if (format == GL_DEPTH_COMPONENT32) { /* Depth */ drb->Base._BaseFormat = GL_DEPTH_COMPONENT; /* we always Get/Put 32-bit Z values */ drb->Base.DataType = GL_UNSIGNED_INT; + drb->Base.DepthBits = 32; } else { /* Stencil */ ASSERT(format == GL_STENCIL_INDEX8_EXT); drb->Base._BaseFormat = GL_STENCIL_INDEX; drb->Base.DataType = GL_UNSIGNED_BYTE; + drb->Base.StencilBits = 8; } /* XXX if we were allocating a user-created renderbuffer, we'd have