summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/drivers/common')
-rw-r--r--src/mesa/drivers/common/meta.c21
-rw-r--r--src/mesa/drivers/common/meta_blit.c18
2 files changed, 10 insertions, 29 deletions
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 55d803fd5bd..f4830ec28a6 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -98,7 +98,8 @@ meta_clear(struct gl_context *ctx, GLbitfield buffers, bool glsl);
static struct blit_shader *
choose_blit_shader(GLenum target, struct blit_shader_table *table);
-static void cleanup_temp_texture(struct temp_texture *tex);
+static void cleanup_temp_texture(struct gl_context *ctx,
+ struct temp_texture *tex);
static void meta_glsl_clear_cleanup(struct gl_context *ctx,
struct clear_state *clear);
static void meta_decompress_cleanup(struct gl_context *ctx,
@@ -418,7 +419,7 @@ _mesa_meta_free(struct gl_context *ctx)
_mesa_meta_glsl_blit_cleanup(ctx, &ctx->Meta->Blit);
meta_glsl_clear_cleanup(ctx, &ctx->Meta->Clear);
_mesa_meta_glsl_generate_mipmap_cleanup(ctx, &ctx->Meta->Mipmap);
- cleanup_temp_texture(&ctx->Meta->TempTex);
+ cleanup_temp_texture(ctx, &ctx->Meta->TempTex);
meta_decompress_cleanup(ctx, &ctx->Meta->Decompress);
meta_drawpix_cleanup(ctx, &ctx->Meta->DrawPix);
if (old_context)
@@ -1228,8 +1229,6 @@ invert_z(GLfloat normZ)
static void
init_temp_texture(struct gl_context *ctx, struct temp_texture *tex)
{
- GLuint texObj;
-
/* prefer texture rectangle */
if (_mesa_is_desktop_gl(ctx) && ctx->Extensions.NV_texture_rectangle) {
tex->Target = GL_TEXTURE_RECTANGLE;
@@ -1245,21 +1244,13 @@ init_temp_texture(struct gl_context *ctx, struct temp_texture *tex)
tex->MinSize = 16; /* 16 x 16 at least */
assert(tex->MaxSize > 0);
- _mesa_CreateTextures(tex->Target, 1, &texObj);
- tex->tex_obj = NULL;
-
- if (texObj == 0)
- return;
-
- tex->tex_obj = _mesa_lookup_texture(ctx, texObj);
+ tex->tex_obj = ctx->Driver.NewTextureObject(ctx, 0xDEADBEEF, tex->Target);
}
static void
-cleanup_temp_texture(struct temp_texture *tex)
+cleanup_temp_texture(struct gl_context *ctx, struct temp_texture *tex)
{
- if (tex->tex_obj == NULL)
- return;
- _mesa_DeleteTextures(1, &tex->tex_obj->Name);
+ _mesa_delete_nameless_texture(ctx, tex->tex_obj);
tex->tex_obj = NULL;
}
diff --git a/src/mesa/drivers/common/meta_blit.c b/src/mesa/drivers/common/meta_blit.c
index 95dfa64c051..496ef285d02 100644
--- a/src/mesa/drivers/common/meta_blit.c
+++ b/src/mesa/drivers/common/meta_blit.c
@@ -879,9 +879,7 @@ _mesa_meta_fb_tex_blit_end(struct gl_context *ctx, GLenum target,
_mesa_bind_sampler(ctx, ctx->Texture.CurrentUnit, blit->samp_obj_save);
_mesa_reference_sampler_object(ctx, &blit->samp_obj_save, NULL);
_mesa_reference_sampler_object(ctx, &blit->samp_obj, NULL);
-
- if (blit->temp_tex_obj)
- _mesa_DeleteTextures(1, &blit->temp_tex_obj->Name);
+ _mesa_delete_nameless_texture(ctx, blit->temp_tex_obj);
}
struct gl_texture_object *
@@ -890,20 +888,14 @@ _mesa_meta_texture_object_from_renderbuffer(struct gl_context *ctx,
{
struct gl_texture_image *texImage;
struct gl_texture_object *texObj;
- GLuint tempTex;
const GLenum target = rb->NumSamples > 1
? GL_TEXTURE_2D_MULTISAMPLE : GL_TEXTURE_2D;
- tempTex = 0;
- _mesa_CreateTextures(target, 1, &tempTex);
- if (tempTex == 0)
- return NULL;
-
- texObj = _mesa_lookup_texture(ctx, tempTex);
+ texObj = ctx->Driver.NewTextureObject(ctx, 0xDEADBEEF, target);
texImage = _mesa_get_tex_image(ctx, texObj, target, 0);
if (!ctx->Driver.BindRenderbufferTexImage(ctx, rb, texImage)) {
- _mesa_DeleteTextures(1, &tempTex);
+ _mesa_delete_nameless_texture(ctx, texObj);
return NULL;
}
@@ -912,8 +904,6 @@ _mesa_meta_texture_object_from_renderbuffer(struct gl_context *ctx,
ctx->Driver.FinishRenderTexture(ctx, rb);
}
- assert(target == texObj->Target);
- assert(tempTex == texObj->Name);
return texObj;
}
@@ -1057,7 +1047,7 @@ _mesa_meta_glsl_blit_cleanup(struct gl_context *ctx, struct blit_state *blit)
_mesa_meta_blit_shader_table_cleanup(ctx, &blit->shaders_without_depth);
if (blit->depthTex.tex_obj != NULL) {
- _mesa_DeleteTextures(1, &blit->depthTex.tex_obj->Name);
+ _mesa_delete_nameless_texture(ctx, blit->depthTex.tex_obj);
blit->depthTex.tex_obj = NULL;
}
}