mesa: add gl_coontext::ForceIntegerTexNearest
[mesa.git] / src / mesa / main / texturebindless.c
index c1cef4b1e4660ba87bca697b25f9385cb47d47c8..a4d700e6362e4909bbfcc45df8021973333e77b1 100644 (file)
@@ -546,7 +546,8 @@ _mesa_GetTextureHandleARB_no_error(GLuint texture)
    GET_CURRENT_CONTEXT(ctx);
 
    texObj = _mesa_lookup_texture(ctx, texture);
-   if (!_mesa_is_texture_complete(texObj, &texObj->Sampler))
+   if (!_mesa_is_texture_complete(texObj, &texObj->Sampler,
+                                  ctx->Const.ForceIntegerTexNearest))
       _mesa_test_texobj_completeness(ctx, texObj);
 
    return get_texture_handle(ctx, texObj, &texObj->Sampler);
@@ -585,9 +586,11 @@ _mesa_GetTextureHandleARB(GLuint texture)
     *  GetTextureSamplerHandleARB if the texture object specified by <texture>
     *  is not complete."
     */
-   if (!_mesa_is_texture_complete(texObj, &texObj->Sampler)) {
+   if (!_mesa_is_texture_complete(texObj, &texObj->Sampler,
+                                  ctx->Const.ForceIntegerTexNearest)) {
       _mesa_test_texobj_completeness(ctx, texObj);
-      if (!_mesa_is_texture_complete(texObj, &texObj->Sampler)) {
+      if (!_mesa_is_texture_complete(texObj, &texObj->Sampler,
+                                     ctx->Const.ForceIntegerTexNearest)) {
          _mesa_error(ctx, GL_INVALID_OPERATION,
                      "glGetTextureHandleARB(incomplete texture)");
          return 0;
@@ -614,7 +617,8 @@ _mesa_GetTextureSamplerHandleARB_no_error(GLuint texture, GLuint sampler)
    texObj = _mesa_lookup_texture(ctx, texture);
    sampObj = _mesa_lookup_samplerobj(ctx, sampler);
 
-   if (!_mesa_is_texture_complete(texObj, sampObj))
+   if (!_mesa_is_texture_complete(texObj, sampObj,
+                                  ctx->Const.ForceIntegerTexNearest))
       _mesa_test_texobj_completeness(ctx, texObj);
 
    return get_texture_handle(ctx, texObj, sampObj);
@@ -667,9 +671,11 @@ _mesa_GetTextureSamplerHandleARB(GLuint texture, GLuint sampler)
     *  GetTextureSamplerHandleARB if the texture object specified by <texture>
     *  is not complete."
     */
-   if (!_mesa_is_texture_complete(texObj, sampObj)) {
+   if (!_mesa_is_texture_complete(texObj, sampObj,
+                                  ctx->Const.ForceIntegerTexNearest)) {
       _mesa_test_texobj_completeness(ctx, texObj);
-      if (!_mesa_is_texture_complete(texObj, sampObj)) {
+      if (!_mesa_is_texture_complete(texObj, sampObj,
+                                     ctx->Const.ForceIntegerTexNearest)) {
          _mesa_error(ctx, GL_INVALID_OPERATION,
                      "glGetTextureSamplerHandleARB(incomplete texture)");
          return 0;
@@ -786,7 +792,8 @@ _mesa_GetImageHandleARB_no_error(GLuint texture, GLint level, GLboolean layered,
    GET_CURRENT_CONTEXT(ctx);
 
    texObj = _mesa_lookup_texture(ctx, texture);
-   if (!_mesa_is_texture_complete(texObj, &texObj->Sampler))
+   if (!_mesa_is_texture_complete(texObj, &texObj->Sampler,
+                                  ctx->Const.ForceIntegerTexNearest))
       _mesa_test_texobj_completeness(ctx, texObj);
 
    return get_image_handle(ctx, texObj, level, layered, layer, format);
@@ -845,9 +852,11 @@ _mesa_GetImageHandleARB(GLuint texture, GLint level, GLboolean layered,
     *  <texture> is not a three-dimensional, one-dimensional array, two
     *  dimensional array, cube map, or cube map array texture."
     */
-   if (!_mesa_is_texture_complete(texObj, &texObj->Sampler)) {
+   if (!_mesa_is_texture_complete(texObj, &texObj->Sampler,
+                                  ctx->Const.ForceIntegerTexNearest)) {
       _mesa_test_texobj_completeness(ctx, texObj);
-      if (!_mesa_is_texture_complete(texObj, &texObj->Sampler)) {
+      if (!_mesa_is_texture_complete(texObj, &texObj->Sampler,
+                                     ctx->Const.ForceIntegerTexNearest)) {
          _mesa_error(ctx, GL_INVALID_OPERATION,
                      "glGetImageHandleARB(incomplete texture)");
          return 0;