struct gl_sampler_object *sampObj)
{
_mesa_delete_sampler_handles(ctx, sampObj);
- mtx_destroy(&sampObj->Mutex);
+ simple_mtx_destroy(&sampObj->Mutex);
free(sampObj->Label);
free(sampObj);
}
GLboolean deleteFlag = GL_FALSE;
struct gl_sampler_object *oldSamp = *ptr;
- mtx_lock(&oldSamp->Mutex);
+ simple_mtx_lock(&oldSamp->Mutex);
assert(oldSamp->RefCount > 0);
oldSamp->RefCount--;
deleteFlag = (oldSamp->RefCount == 0);
- mtx_unlock(&oldSamp->Mutex);
+ simple_mtx_unlock(&oldSamp->Mutex);
if (deleteFlag)
delete_sampler_object(ctx, oldSamp);
if (samp) {
/* reference new sampler */
- mtx_lock(&samp->Mutex);
+ simple_mtx_lock(&samp->Mutex);
assert(samp->RefCount > 0);
samp->RefCount++;
*ptr = samp;
- mtx_unlock(&samp->Mutex);
+ simple_mtx_unlock(&samp->Mutex);
}
}
static void
_mesa_init_sampler_object(struct gl_sampler_object *sampObj, GLuint name)
{
- mtx_init(&sampObj->Mutex, mtx_plain);
+ simple_mtx_init(&sampObj->Mutex, mtx_plain);
sampObj->Name = name;
sampObj->RefCount = 1;
sampObj->WrapS = GL_REPEAT;
}
-void GLAPIENTRY
-_mesa_DeleteSamplers(GLsizei count, const GLuint *samplers)
+static void
+delete_samplers(struct gl_context *ctx, GLsizei count, const GLuint *samplers)
{
- GET_CURRENT_CONTEXT(ctx);
- GLsizei i;
-
FLUSH_VERTICES(ctx, 0);
- if (count < 0) {
- _mesa_error(ctx, GL_INVALID_VALUE, "glDeleteSamplers(count)");
- return;
- }
-
_mesa_HashLockMutex(ctx->Shared->SamplerObjects);
- for (i = 0; i < count; i++) {
+ for (GLsizei i = 0; i < count; i++) {
if (samplers[i]) {
GLuint j;
struct gl_sampler_object *sampObj =
}
+void GLAPIENTRY
+_mesa_DeleteSamplers_no_error(GLsizei count, const GLuint *samplers)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ delete_samplers(ctx, count, samplers);
+}
+
+
+void GLAPIENTRY
+_mesa_DeleteSamplers(GLsizei count, const GLuint *samplers)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (count < 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glDeleteSamplers(count)");
+ return;
+ }
+
+ delete_samplers(ctx, count, samplers);
+}
+
+
GLboolean GLAPIENTRY
_mesa_IsSampler(GLuint sampler)
{
_mesa_bind_sampler(ctx, unit, sampObj);
}
+void GLAPIENTRY
+_mesa_BindSampler_no_error(GLuint unit, GLuint sampler)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ bind_sampler(ctx, unit, sampler, true);
+}
+
void GLAPIENTRY
_mesa_BindSampler(GLuint unit, GLuint sampler)
{