Module: Mesa
Branch: master
Commit: ecba76d3c0f644c5f3ca84a7b40ea799a9eaf165
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ecba76d3c0f644c5f3ca84a7b40ea799a9eaf165

Author: Ian Romanick <[email protected]>
Date:   Mon Nov  9 11:59:19 2015 -0800

mesa: Add _mesa_set_sampler_filters method

v2: Add filter enum assertions.  Suggested by Jason.

Signed-off-by: Ian Romanick <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>

---

 src/mesa/main/samplerobj.c |   21 +++++++++++++++++++++
 src/mesa/main/samplerobj.h |    5 +++++
 2 files changed, 26 insertions(+)

diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c
index 17b3400..d74435e 100644
--- a/src/mesa/main/samplerobj.c
+++ b/src/mesa/main/samplerobj.c
@@ -509,6 +509,27 @@ set_sampler_wrap_r(struct gl_context *ctx, struct 
gl_sampler_object *samp,
    return INVALID_PARAM;
 }
 
+void
+_mesa_set_sampler_filters(struct gl_context *ctx,
+                          struct gl_sampler_object *samp,
+                          GLenum min_filter, GLenum mag_filter)
+{
+   assert(min_filter == GL_NEAREST ||
+          min_filter == GL_LINEAR ||
+          min_filter == GL_NEAREST_MIPMAP_NEAREST ||
+          min_filter == GL_LINEAR_MIPMAP_NEAREST ||
+          min_filter == GL_NEAREST_MIPMAP_LINEAR ||
+          min_filter == GL_LINEAR_MIPMAP_LINEAR);
+   assert(mag_filter == GL_NEAREST ||
+          mag_filter == GL_LINEAR);
+
+   if (samp->MinFilter == min_filter && samp->MagFilter == mag_filter)
+      return;
+
+   flush(ctx);
+   samp->MinFilter = min_filter;
+   samp->MagFilter = mag_filter;
+}
 
 static GLuint
 set_sampler_min_filter(struct gl_context *ctx, struct gl_sampler_object *samp,
diff --git a/src/mesa/main/samplerobj.h b/src/mesa/main/samplerobj.h
index 1817c1a..c35052e 100644
--- a/src/mesa/main/samplerobj.h
+++ b/src/mesa/main/samplerobj.h
@@ -84,6 +84,11 @@ extern void
 _mesa_set_sampler_wrap(struct gl_context *ctx, struct gl_sampler_object *samp,
                        GLenum s, GLenum t, GLenum r);
 
+extern void
+_mesa_set_sampler_filters(struct gl_context *ctx,
+                          struct gl_sampler_object *samp,
+                          GLenum min_filter, GLenum mag_filter);
+
 void GLAPIENTRY
 _mesa_GenSamplers(GLsizei count, GLuint *samplers);
 void GLAPIENTRY

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to