-/* $Id: texobj.c,v 1.14 2000/02/12 01:59:19 brianp Exp $ */
/*
* Mesa 3-D graphics library
GLuint i;
for (i=0;i<MAX_TEXTURE_LEVELS;i++) {
if (t->Image[i]) {
- gl_free_texture_image( t->Image[i] );
+ _mesa_free_texture_image( t->Image[i] );
}
}
}
t->Complete = GL_TRUE; /* be optimistic */
/* Always need level zero image */
- if (!t->Image[0] || !t->Image[0]->Data) {
+ if (!t->Image[0]) {
t->Complete = GL_FALSE;
return;
}
/* Test dimension-independent attributes */
for (i = minLevel; i <= maxLevel; i++) {
if (t->Image[i]) {
- if (!t->Image[i]->Data) {
- t->Complete = GL_FALSE;
- return;
- }
if (t->Image[i]->Format != t->Image[0]->Format) {
t->Complete = GL_FALSE;
return;
t->Complete = GL_FALSE;
return;
}
- if (!t->Image[i]->Data) {
- t->Complete = GL_FALSE;
- return;
- }
if (t->Image[i]->Width2 != width ) {
t->Complete = GL_FALSE;
return;
}
+_glthread_DECLARE_STATIC_MUTEX(GenTexturesLock);
+
/*
* Execute glGenTextures
return;
}
+
+ /*
+ * This must be atomic (generation and allocation of texture IDs)
+ */
+ _glthread_LOCK_MUTEX(GenTexturesLock);
+
first = _mesa_HashFindFreeKeyBlock(ctx->Shared->TexObjects, n);
/* Return the texture names */
GLuint dims = 0;
(void) gl_alloc_texture_object(ctx->Shared, name, dims);
}
+
+ _glthread_UNLOCK_MUTEX(GenTexturesLock);
}