aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/main/texobj.h
diff options
context:
space:
mode:
Diffstat (limited to 'mesalib/src/mesa/main/texobj.h')
-rw-r--r--mesalib/src/mesa/main/texobj.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/mesalib/src/mesa/main/texobj.h b/mesalib/src/mesa/main/texobj.h
index 03dfbe304..c020b9013 100644
--- a/mesalib/src/mesa/main/texobj.h
+++ b/mesalib/src/mesa/main/texobj.h
@@ -35,6 +35,7 @@
#include "compiler.h"
#include "glheader.h"
#include "mtypes.h"
+#include "samplerobj.h"
/**
@@ -77,6 +78,26 @@ _mesa_reference_texobj(struct gl_texture_object **ptr,
}
+/** Is the texture "complete" with respect to the given sampler state? */
+static inline GLboolean
+_mesa_is_texture_complete(const struct gl_texture_object *texObj,
+ const struct gl_sampler_object *sampler)
+{
+ if (texObj->_IsIntegerFormat &&
+ (sampler->MagFilter != GL_NEAREST ||
+ (sampler->MinFilter != GL_NEAREST &&
+ sampler->MinFilter != GL_NEAREST_MIPMAP_NEAREST))) {
+ /* If the format is integer, only nearest filtering is allowed */
+ return GL_FALSE;
+ }
+
+ if (_mesa_is_mipmap_filter(sampler))
+ return texObj->_MipmapComplete;
+ else
+ return texObj->_BaseComplete;
+}
+
+
extern void
_mesa_test_texobj_completeness( const struct gl_context *ctx,
struct gl_texture_object *obj );