mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 05:08:08 +02:00
Init the Red/Green/Blue/Alpha/Depth/StencilBits fields in driNewRenderbuffer()
This commit is contained in:
parent
84c5d0a789
commit
94d6bf883b
1 changed files with 19 additions and 0 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue