mesa: Add ARB_direct_state_access checks in texture functions
[mesa.git] / src / mesa / main / texparam.c
index d74134f41b189551c85d8bdda7b17df439c6b20c..1fa5830026a82b4a7583dd7e7d75a52138a290ee 100644 (file)
@@ -1108,6 +1108,13 @@ _mesa_TextureParameterfv(GLuint texture, GLenum pname, const GLfloat *params)
    struct gl_texture_object *texObj;
    GET_CURRENT_CONTEXT(ctx);
 
+   if (!ctx->Extensions.ARB_direct_state_access) {
+      _mesa_error(ctx, GL_INVALID_OPERATION,
+                  "glTextureParameterfv(GL_ARB_direct_state_access "
+                  "is not supported)");
+      return;
+   }
+
    texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
    if (!texObj) {
       /* User passed a non-generated name. */
@@ -1124,6 +1131,13 @@ _mesa_TextureParameterf(GLuint texture, GLenum pname, GLfloat param)
    struct gl_texture_object *texObj;
    GET_CURRENT_CONTEXT(ctx);
 
+   if (!ctx->Extensions.ARB_direct_state_access) {
+      _mesa_error(ctx, GL_INVALID_OPERATION,
+                  "glTextureParameterf(GL_ARB_direct_state_access "
+                  "is not supported)");
+      return;
+   }
+
    texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
    if (!texObj) {
       /* User passed a non-generated name. */
@@ -1140,6 +1154,13 @@ _mesa_TextureParameteri(GLuint texture, GLenum pname, GLint param)
    struct gl_texture_object *texObj;
    GET_CURRENT_CONTEXT(ctx);
 
+   if (!ctx->Extensions.ARB_direct_state_access) {
+      _mesa_error(ctx, GL_INVALID_OPERATION,
+                  "glTextureParameteri(GL_ARB_direct_state_access "
+                  "is not supported)");
+      return;
+   }
+
    texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
    if (!texObj) {
       /* User passed a non-generated name. */
@@ -1157,6 +1178,13 @@ _mesa_TextureParameteriv(GLuint texture, GLenum pname,
    struct gl_texture_object *texObj;
    GET_CURRENT_CONTEXT(ctx);
 
+   if (!ctx->Extensions.ARB_direct_state_access) {
+      _mesa_error(ctx, GL_INVALID_OPERATION,
+                  "glTextureParameteriv(GL_ARB_direct_state_access "
+                  "is not supported)");
+      return;
+   }
+
    texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
    if (!texObj) {
       /* User passed a non-generated name. */
@@ -1174,6 +1202,13 @@ _mesa_TextureParameterIiv(GLuint texture, GLenum pname, const GLint *params)
    struct gl_texture_object *texObj;
    GET_CURRENT_CONTEXT(ctx);
 
+   if (!ctx->Extensions.ARB_direct_state_access) {
+      _mesa_error(ctx, GL_INVALID_OPERATION,
+                  "glTextureParameterIiv(GL_ARB_direct_state_access "
+                  "is not supported)");
+      return;
+   }
+
    texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
    if (!texObj) {
       /* User passed a non-generated name. */
@@ -1191,6 +1226,13 @@ _mesa_TextureParameterIuiv(GLuint texture, GLenum pname, const GLuint *params)
    struct gl_texture_object *texObj;
    GET_CURRENT_CONTEXT(ctx);
 
+   if (!ctx->Extensions.ARB_direct_state_access) {
+      _mesa_error(ctx, GL_INVALID_OPERATION,
+                  "glTextureParameterIuiv(GL_ARB_direct_state_access "
+                  "is not supported)");
+      return;
+   }
+
    texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
    if (!texObj) {
       /* User passed a non-generated name. */
@@ -1650,6 +1692,13 @@ _mesa_GetTextureLevelParameterfv(GLuint texture, GLint level,
    GLint iparam;
    GET_CURRENT_CONTEXT(ctx);
 
+   if (!ctx->Extensions.ARB_direct_state_access) {
+      _mesa_error(ctx, GL_INVALID_OPERATION,
+                  "glGetTextureLevelParameterfv(GL_ARB_direct_state_access "
+                  "is not supported)");
+      return;
+   }
+
    texObj = _mesa_lookup_texture_err(ctx, texture,
                                      "glGetTextureLevelParameterfv");
    if (!texObj)
@@ -1668,6 +1717,13 @@ _mesa_GetTextureLevelParameteriv(GLuint texture, GLint level,
    struct gl_texture_object *texObj;
    GET_CURRENT_CONTEXT(ctx);
 
+   if (!ctx->Extensions.ARB_direct_state_access) {
+      _mesa_error(ctx, GL_INVALID_OPERATION,
+                  "glGetTextureLevelParameteriv(GL_ARB_direct_state_access "
+                  "is not supported)");
+      return;
+   }
+
    texObj = _mesa_lookup_texture_err(ctx, texture,
                                      "glGetTextureLevelParameteriv");
    if (!texObj)
@@ -2227,6 +2283,13 @@ _mesa_GetTextureParameterfv(GLuint texture, GLenum pname, GLfloat *params)
    struct gl_texture_object *obj;
    GET_CURRENT_CONTEXT(ctx);
 
+   if (!ctx->Extensions.ARB_direct_state_access) {
+      _mesa_error(ctx, GL_INVALID_OPERATION,
+                  "glGetTextureParameterfv(GL_ARB_direct_state_access "
+                  "is not supported)");
+      return;
+   }
+
    obj = get_texobj_by_name(ctx, texture, GL_TRUE);
    if (!obj) {
       /* User passed a non-generated name. */
@@ -2244,6 +2307,13 @@ _mesa_GetTextureParameteriv(GLuint texture, GLenum pname, GLint *params)
    struct gl_texture_object *obj;
    GET_CURRENT_CONTEXT(ctx);
 
+   if (!ctx->Extensions.ARB_direct_state_access) {
+      _mesa_error(ctx, GL_INVALID_OPERATION,
+                  "glGetTextureParameteriv(GL_ARB_direct_state_access "
+                  "is not supported)");
+      return;
+   }
+
    obj = get_texobj_by_name(ctx, texture, GL_TRUE);
    if (!obj) {
       /* User passed a non-generated name. */
@@ -2261,6 +2331,13 @@ _mesa_GetTextureParameterIiv(GLuint texture, GLenum pname, GLint *params)
    struct gl_texture_object *texObj;
    GET_CURRENT_CONTEXT(ctx);
 
+   if (!ctx->Extensions.ARB_direct_state_access) {
+      _mesa_error(ctx, GL_INVALID_OPERATION,
+                  "glGetTextureParameterIiv(GL_ARB_direct_state_access "
+                  "is not supported)");
+      return;
+   }
+
    texObj = get_texobj_by_name(ctx, texture, GL_TRUE);
    if (!texObj) {
       /* User passed a non-generated name. */
@@ -2279,6 +2356,13 @@ _mesa_GetTextureParameterIuiv(GLuint texture, GLenum pname, GLuint *params)
    struct gl_texture_object *texObj;
    GET_CURRENT_CONTEXT(ctx);
 
+   if (!ctx->Extensions.ARB_direct_state_access) {
+      _mesa_error(ctx, GL_INVALID_OPERATION,
+                  "glGetTextureParameterIuiv(GL_ARB_direct_state_access "
+                  "is not supported)");
+      return;
+   }
+
    texObj = get_texobj_by_name(ctx, texture, GL_TRUE);
    if (!texObj) {
       /* User passed a non-generated name. */