From 3ca5da270449d1f5baa8325a401d3cd100de987a Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 23 May 2017 23:45:48 +0200 Subject: mesa: add bind_image_texture() helper Signed-off-by: Samuel Pitoiset Reviewed-by: Timothy Arceri --- src/mesa/main/shaderimage.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'src/mesa/main') diff --git a/src/mesa/main/shaderimage.c b/src/mesa/main/shaderimage.c index ad9fdb0e9bc..19011d80b9e 100644 --- a/src/mesa/main/shaderimage.c +++ b/src/mesa/main/shaderimage.c @@ -586,13 +586,27 @@ set_image_binding(struct gl_image_unit *u, struct gl_texture_object *texObj, _mesa_reference_texobj(&u->TexObj, texObj); } +static void +bind_image_texture(struct gl_context *ctx, struct gl_texture_object *texObj, + GLuint unit, GLint level, GLboolean layered, GLint layer, + GLenum access, GLenum format) +{ + struct gl_image_unit *u; + + u = &ctx->ImageUnits[unit]; + + FLUSH_VERTICES(ctx, 0); + ctx->NewDriverState |= ctx->DriverFlags.NewImageUnits; + + set_image_binding(u, texObj, level, layered, layer, access, format); +} + void GLAPIENTRY _mesa_BindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format) { struct gl_texture_object *texObj = NULL; - struct gl_image_unit *u; GET_CURRENT_CONTEXT(ctx); @@ -600,11 +614,6 @@ _mesa_BindImageTexture(GLuint unit, GLuint texture, GLint level, format)) return; - u = &ctx->ImageUnits[unit]; - - FLUSH_VERTICES(ctx, 0); - ctx->NewDriverState |= ctx->DriverFlags.NewImageUnits; - if (texture) { texObj = _mesa_lookup_texture(ctx, texture); @@ -631,7 +640,7 @@ _mesa_BindImageTexture(GLuint unit, GLuint texture, GLint level, } } - set_image_binding(u, texObj, level, layered, layer, access, format); + bind_image_texture(ctx, texObj, unit, level, layered, layer, access, format); } void GLAPIENTRY -- cgit v1.2.3