aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2016-10-07 14:28:21 -0600
committerBrian Paul <[email protected]>2016-10-13 17:38:49 -0600
commita710c21ac200fc1c80a6209862e837f0a75f4cc5 (patch)
tree7b00bb81989736169eea549dc1e4b09fae7471f3
parent99d790538de2e7d7d489a8638b13c5aa069c27c3 (diff)
mesa: remove 'params' parameter from ctx->Driver.TexParameter()
None of the drivers which implement this hook do anything with the texture parameter value. Drivers just look at the pname and set a dirty flag if needed. We were doing some ugly casting and type conversion to setup the argument so that all goes away. Reviewed-by: Marek Olšák <[email protected]>
-rw-r--r--src/mesa/drivers/dri/nouveau/nouveau_state.c3
-rw-r--r--src/mesa/drivers/dri/r200/r200_tex.c6
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_tex.c2
-rw-r--r--src/mesa/main/dd.h5
-rw-r--r--src/mesa/main/teximage.c6
-rw-r--r--src/mesa/main/texobj.c15
-rw-r--r--src/mesa/main/texparam.c17
-rw-r--r--src/mesa/state_tracker/st_cb_texture.c3
8 files changed, 20 insertions, 37 deletions
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_state.c b/src/mesa/drivers/dri/nouveau/nouveau_state.c
index 6189997397f..de36fa41b59 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_state.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_state.c
@@ -395,8 +395,7 @@ nouveau_tex_env(struct gl_context *ctx, GLenum target, GLenum pname,
static void
nouveau_tex_parameter(struct gl_context *ctx,
- struct gl_texture_object *t, GLenum pname,
- const GLfloat *params)
+ struct gl_texture_object *t, GLenum pname)
{
switch (pname) {
case GL_TEXTURE_MAG_FILTER:
diff --git a/src/mesa/drivers/dri/r200/r200_tex.c b/src/mesa/drivers/dri/r200/r200_tex.c
index ca921100c12..2a95f2d3cb1 100644
--- a/src/mesa/drivers/dri/r200/r200_tex.c
+++ b/src/mesa/drivers/dri/r200/r200_tex.c
@@ -374,9 +374,9 @@ void r200TexUpdateParameters(struct gl_context *ctx, GLuint unit)
* Changes variables and flags for a state update, which will happen at the
* next UpdateTextureState
*/
-static void r200TexParameter( struct gl_context *ctx,
- struct gl_texture_object *texObj,
- GLenum pname, const GLfloat *params )
+static void r200TexParameter(struct gl_context *ctx,
+ struct gl_texture_object *texObj,
+ GLenum pname)
{
radeonTexObj* t = radeon_tex_obj(texObj);
diff --git a/src/mesa/drivers/dri/radeon/radeon_tex.c b/src/mesa/drivers/dri/radeon/radeon_tex.c
index d1aa1a18737..083a5e175ff 100644
--- a/src/mesa/drivers/dri/radeon/radeon_tex.c
+++ b/src/mesa/drivers/dri/radeon/radeon_tex.c
@@ -329,7 +329,7 @@ void radeonTexUpdateParameters(struct gl_context *ctx, GLuint unit)
static void radeonTexParameter( struct gl_context *ctx,
struct gl_texture_object *texObj,
- GLenum pname, const GLfloat *params )
+ GLenum pname )
{
radeonTexObj* t = radeon_tex_obj(texObj);
diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h
index 7f5327186ff..1d75b9fc29b 100644
--- a/src/mesa/main/dd.h
+++ b/src/mesa/main/dd.h
@@ -610,10 +610,9 @@ struct dd_function_table {
/** Set texture environment parameters */
void (*TexEnv)(struct gl_context *ctx, GLenum target, GLenum pname,
const GLfloat *param);
- /** Set texture parameters */
+ /** Set texture parameter (callee gets param value from the texObj) */
void (*TexParameter)(struct gl_context *ctx,
- struct gl_texture_object *texObj,
- GLenum pname, const GLfloat *params);
+ struct gl_texture_object *texObj, GLenum pname);
/** Set the viewport */
void (*Viewport)(struct gl_context *ctx);
/*@}*/
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index 411ec49efd1..bc3b76a926d 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -5082,12 +5082,10 @@ texture_buffer_range(struct gl_context *ctx,
if (ctx->Driver.TexParameter) {
if (offset != oldOffset) {
- ctx->Driver.TexParameter(ctx, texObj, GL_TEXTURE_BUFFER_OFFSET,
- (const GLfloat *) &offset);
+ ctx->Driver.TexParameter(ctx, texObj, GL_TEXTURE_BUFFER_OFFSET);
}
if (size != oldSize) {
- ctx->Driver.TexParameter(ctx, texObj, GL_TEXTURE_BUFFER_SIZE,
- (const GLfloat *) &size);
+ ctx->Driver.TexParameter(ctx, texObj, GL_TEXTURE_BUFFER_SIZE);
}
}
diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
index 9a051bc8e2b..fbd498dd935 100644
--- a/src/mesa/main/texobj.c
+++ b/src/mesa/main/texobj.c
@@ -365,15 +365,12 @@ finish_texture_init(struct gl_context *ctx, GLenum target,
obj->Sampler.MinFilter = filter;
obj->Sampler.MagFilter = filter;
if (ctx->Driver.TexParameter) {
- static const GLfloat fparam_wrap[1] = {(GLfloat) GL_CLAMP_TO_EDGE};
- const GLfloat fparam_filter[1] = {(GLfloat) filter};
- ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_WRAP_S, fparam_wrap);
- ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_WRAP_T, fparam_wrap);
- ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_WRAP_R, fparam_wrap);
- ctx->Driver.TexParameter(ctx, obj,
- GL_TEXTURE_MIN_FILTER, fparam_filter);
- ctx->Driver.TexParameter(ctx, obj,
- GL_TEXTURE_MAG_FILTER, fparam_filter);
+ /* XXX we probably don't need to make all these calls */
+ ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_WRAP_S);
+ ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_WRAP_T);
+ ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_WRAP_R);
+ ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_MIN_FILTER);
+ ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_MAG_FILTER);
}
break;
diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
index a8147786fa8..29eed078650 100644
--- a/src/mesa/main/texparam.c
+++ b/src/mesa/main/texparam.c
@@ -807,7 +807,7 @@ _mesa_texture_parameterf(struct gl_context *ctx,
}
if (ctx->Driver.TexParameter && need_update) {
- ctx->Driver.TexParameter(ctx, texObj, pname, &param);
+ ctx->Driver.TexParameter(ctx, texObj, pname);
}
}
@@ -874,7 +874,7 @@ _mesa_texture_parameterfv(struct gl_context *ctx,
}
if (ctx->Driver.TexParameter && need_update) {
- ctx->Driver.TexParameter(ctx, texObj, pname, params);
+ ctx->Driver.TexParameter(ctx, texObj, pname);
}
}
@@ -919,8 +919,7 @@ _mesa_texture_parameteri(struct gl_context *ctx,
}
if (ctx->Driver.TexParameter && need_update) {
- GLfloat fparam = (GLfloat) param;
- ctx->Driver.TexParameter(ctx, texObj, pname, &fparam);
+ ctx->Driver.TexParameter(ctx, texObj, pname);
}
}
@@ -964,15 +963,7 @@ _mesa_texture_parameteriv(struct gl_context *ctx,
}
if (ctx->Driver.TexParameter && need_update) {
- GLfloat fparams[4];
- fparams[0] = INT_TO_FLOAT(params[0]);
- if (pname == GL_TEXTURE_BORDER_COLOR ||
- pname == GL_TEXTURE_CROP_RECT_OES) {
- fparams[1] = INT_TO_FLOAT(params[1]);
- fparams[2] = INT_TO_FLOAT(params[2]);
- fparams[3] = INT_TO_FLOAT(params[3]);
- }
- ctx->Driver.TexParameter(ctx, texObj, pname, fparams);
+ ctx->Driver.TexParameter(ctx, texObj, pname);
}
}
diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
index b448e56738f..fa52a4e18a8 100644
--- a/src/mesa/state_tracker/st_cb_texture.c
+++ b/src/mesa/state_tracker/st_cb_texture.c
@@ -2860,8 +2860,7 @@ st_ClearTexSubImage(struct gl_context *ctx,
*/
static void
st_TexParameter(struct gl_context *ctx,
- struct gl_texture_object *texObj,
- GLenum pname, const GLfloat *params)
+ struct gl_texture_object *texObj, GLenum pname)
{
struct st_context *st = st_context(ctx);
struct st_texture_object *stObj = st_texture_object(texObj);