projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ARB prog lexer: Fix lexer to eat both DOS and Unix line endings
[mesa.git]
/
src
/
mesa
/
main
/
renderbuffer.c
diff --git
a/src/mesa/main/renderbuffer.c
b/src/mesa/main/renderbuffer.c
index 49706b52516405b04e7e8648c6328a4c13446dfd..38be8266e05c5bd6df0fa3e83e3f7525bbb0af84 100644
(file)
--- a/
src/mesa/main/renderbuffer.c
+++ b/
src/mesa/main/renderbuffer.c
@@
-1199,7
+1199,8
@@
_mesa_soft_renderbuffer_storage(GLcontext *ctx, struct gl_renderbuffer *rb,
if (width > 0 && height > 0) {
/* allocate new buffer storage */
if (width > 0 && height > 0) {
/* allocate new buffer storage */
- rb->Data = _mesa_malloc(width * height * pixelSize);
+ rb->Data = malloc(width * height * pixelSize);
+
if (rb->Data == NULL) {
rb->Width = 0;
rb->Height = 0;
if (rb->Data == NULL) {
rb->Width = 0;
rb->Height = 0;
@@
-1471,6
+1472,7
@@
_mesa_init_renderbuffer(struct gl_renderbuffer *rb, GLuint name)
{
_glthread_INIT_MUTEX(rb->Mutex);
{
_glthread_INIT_MUTEX(rb->Mutex);
+ rb->Magic = RB_MAGIC;
rb->ClassID = 0;
rb->Name = name;
rb->RefCount = 0;
rb->ClassID = 0;
rb->Name = name;
rb->RefCount = 0;
@@
-1486,11
+1488,16
@@
_mesa_init_renderbuffer(struct gl_renderbuffer *rb, GLuint name)
rb->InternalFormat = GL_NONE;
rb->_ActualFormat = GL_NONE;
rb->_BaseFormat = GL_NONE;
rb->InternalFormat = GL_NONE;
rb->_ActualFormat = GL_NONE;
rb->_BaseFormat = GL_NONE;
- rb->DataType = GL_NONE;
+
+ rb->ComponentType = GL_UNSIGNED_NORMALIZED; /* ARB_fbo */
+ rb->ColorEncoding = GL_LINEAR; /* ARB_fbo */
+
rb->RedBits = rb->GreenBits = rb->BlueBits = rb->AlphaBits = 0;
rb->IndexBits = 0;
rb->DepthBits = 0;
rb->StencilBits = 0;
rb->RedBits = rb->GreenBits = rb->BlueBits = rb->AlphaBits = 0;
rb->IndexBits = 0;
rb->DepthBits = 0;
rb->StencilBits = 0;
+
+ rb->DataType = GL_NONE;
rb->Data = NULL;
/* Point back to ourself so that we don't have to check for Wrapped==NULL
rb->Data = NULL;
/* Point back to ourself so that we don't have to check for Wrapped==NULL
@@
-2149,25
+2156,30
@@
_mesa_reference_renderbuffer(struct gl_renderbuffer **ptr,
GLboolean deleteFlag = GL_FALSE;
struct gl_renderbuffer *oldRb = *ptr;
GLboolean deleteFlag = GL_FALSE;
struct gl_renderbuffer *oldRb = *ptr;
+ assert(oldRb->Magic == RB_MAGIC);
_glthread_LOCK_MUTEX(oldRb->Mutex);
_glthread_LOCK_MUTEX(oldRb->Mutex);
+ assert(oldRb->Magic == RB_MAGIC);
ASSERT(oldRb->RefCount > 0);
oldRb->RefCount--;
ASSERT(oldRb->RefCount > 0);
oldRb->RefCount--;
- /*printf("RB DECR %p
to %d\n", (void*) oldRb
, oldRb->RefCount);*/
+ /*printf("RB DECR %p
(%d) to %d\n", (void*) oldRb, oldRb->Name
, oldRb->RefCount);*/
deleteFlag = (oldRb->RefCount == 0);
_glthread_UNLOCK_MUTEX(oldRb->Mutex);
deleteFlag = (oldRb->RefCount == 0);
_glthread_UNLOCK_MUTEX(oldRb->Mutex);
- if (deleteFlag)
+ if (deleteFlag) {
+ oldRb->Magic = 0; /* now invalid memory! */
oldRb->Delete(oldRb);
oldRb->Delete(oldRb);
+ }
*ptr = NULL;
}
assert(!*ptr);
if (rb) {
*ptr = NULL;
}
assert(!*ptr);
if (rb) {
+ assert(rb->Magic == RB_MAGIC);
/* reference new renderbuffer */
_glthread_LOCK_MUTEX(rb->Mutex);
rb->RefCount++;
/* reference new renderbuffer */
_glthread_LOCK_MUTEX(rb->Mutex);
rb->RefCount++;
- /*printf("RB
REF %p to %d\n", (void*)rb
, rb->RefCount);*/
+ /*printf("RB
INCR %p (%d) to %d\n", (void*) rb, rb->Name
, rb->RefCount);*/
_glthread_UNLOCK_MUTEX(rb->Mutex);
*ptr = rb;
}
_glthread_UNLOCK_MUTEX(rb->Mutex);
*ptr = rb;
}