<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 16, 2014 at 7:45 AM, Brian Paul <span dir="ltr"><<a href="mailto:brianp@vmware.com" target="_blank">brianp@vmware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 12/15/2014 06:22 PM, Laura Ekstrand wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
---<br>
  src/mapi/glapi/gen/ARB_direct_<u></u>state_access.xml |  6 +++<br>
  src/mesa/main/texparam.c                       | 52 +++++++++++++++++++++-----<br>
  src/mesa/main/texparam.h                       | 20 ++++++++++<br>
  3 files changed, 68 insertions(+), 10 deletions(-)<br>
<br>
diff --git a/src/mapi/glapi/gen/ARB_<u></u>direct_state_access.xml b/src/mapi/glapi/gen/ARB_<u></u>direct_state_access.xml<br>
index f54c3f8..0757b98 100644<br>
--- a/src/mapi/glapi/gen/ARB_<u></u>direct_state_access.xml<br>
+++ b/src/mapi/glapi/gen/ARB_<u></u>direct_state_access.xml<br>
@@ -75,6 +75,12 @@<br>
        <param name="pixels" type="const GLvoid *" /><br>
     </function><br>
<br>
+   <function name="TextureParameterf" offset="assign"><br>
+      <param name="texture" type="GLuint" /><br>
+      <param name="pname" type="GLenum" /><br>
+      <param name="param" type="GLfloat" /><br>
+   </function><br>
+<br>
     <function name="BindTextureUnit" offset="assign"><br>
        <param name="unit" type="GLuint" /><br>
        <param name="texture" type="GLuint" /><br>
diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c<br>
index 6121346..cd1a094 100644<br>
--- a/src/mesa/main/texparam.c<br>
+++ b/src/mesa/main/texparam.c<br>
@@ -758,16 +758,12 @@ invalid_enum:<br>
  }<br>
<br>
<br>
-void GLAPIENTRY<br>
-_mesa_TexParameterf(GLenum target, GLenum pname, GLfloat param)<br>
+void<br>
+_mesa_texture_parameterf(<u></u>struct gl_context *ctx,<br>
+                         struct gl_texture_object *texObj,<br>
+                         GLenum pname, GLfloat param, bool dsa)<br>
  {<br>
     GLboolean need_update;<br>
-   struct gl_texture_object *texObj;<br>
-   GET_CURRENT_CONTEXT(ctx);<br>
-<br>
-   texObj = get_texobj(ctx, target, GL_FALSE);<br>
-   if (!texObj)<br>
-      return;<br>
<br>
     switch (pname) {<br>
     case GL_TEXTURE_MIN_FILTER:<br>
@@ -795,16 +791,24 @@ _mesa_TexParameterf(GLenum target, GLenum pname, GLfloat param)<br>
                  ((param < INT_MIN) ? INT_MIN : (GLint) (param - 0.5));<br>
<br>
           p[1] = p[2] = p[3] = 0;<br>
-         need_update = set_tex_parameteri(ctx, texObj, pname, p, false);<br>
+         need_update = set_tex_parameteri(ctx, texObj, pname, p, dsa);<br>
        }<br>
        break;<br>
+   case GL_TEXTURE_BORDER_COLOR:<br>
+   case GL_TEXTURE_SWIZZLE_RGBA:<br>
+      {<br>
+         _mesa_error(ctx, GL_INVALID_ENUM,<br>
+                     "glTex%sParameterf(non-scalar pname)",<br>
+                     dsa ? "ture" : "");<br>
+         return;<br>
+      }<br>
</blockquote>
<br></div></div>
No need for braces there.<span class=""><br></span></blockquote><div>Braces have been removed. <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
     default:<br>
        {<br>
           /* this will generate an error if pname is illegal */<br>
           GLfloat p[4];<br>
           p[0] = param;<br>
           p[1] = p[2] = p[3] = 0.0F;<br>
-         need_update = set_tex_parameterf(ctx, texObj, pname, p, false);<br>
+         need_update = set_tex_parameterf(ctx, texObj, pname, p, dsa);<br>
        }<br>
     }<br>
<br>
@@ -985,6 +989,19 @@ _mesa_TexParameteriv(GLenum target, GLenum pname, const GLint *params)<br>
  }<br>
<br>
<br>
+void GLAPIENTRY<br>
+_mesa_TexParameterf(GLenum target, GLenum pname, GLfloat param)<br>
+{<br>
+   struct gl_texture_object *texObj;<br>
+   GET_CURRENT_CONTEXT(ctx);<br>
+<br>
+   texObj = get_texobj(ctx, target, GL_FALSE);<br>
</blockquote>
<br></span>
Maybe get_texobj() should now be get_texobj_by_target().</blockquote><div>This was done as a fixup to Patch 17.<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+   if (!texObj)<br>
+      return;<br>
+<br>
+   _mesa_texture_parameterf(ctx, texObj, pname, param, false);<br>
+}<br>
+<br>
  /**<br>
   * Set tex parameter to integer value(s).  Primarily intended to set<br>
   * integer-valued texture border color (for integer-valued textures).<br>
@@ -1042,6 +1059,21 @@ _mesa_TexParameterIuiv(GLenum target, GLenum pname, const GLuint *params)<br>
     /* XXX no driver hook for TexParameterIuiv() yet */<br>
  }<br>
<br>
+void GLAPIENTRY<br>
+_mesa_TextureParameterf( GLuint texture, GLenum pname, GLfloat param )<br>
+{<br>
+   struct gl_texture_object *texObj;<br>
+   GET_CURRENT_CONTEXT(ctx);<br>
+<br>
+   texObj = get_texobj_by_name(ctx, texture, GL_FALSE);<br>
+   if (!texObj) {<br>
+      /* User passed a non-generated name. */<br>
+      _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureParameterf(texture)"<u></u>);<br>
+      return;<br>
+   }<br>
+<br>
+   _mesa_texture_parameterf(ctx, texObj, pname, param, true);<br>
+}<br>
<br>
  static GLboolean<br>
  legal_get_tex_level_parameter_<u></u>target(struct gl_context *ctx, GLenum target)<br>
diff --git a/src/mesa/main/texparam.h b/src/mesa/main/texparam.h<br>
index 557a7bc..a138b56 100644<br>
--- a/src/mesa/main/texparam.h<br>
+++ b/src/mesa/main/texparam.h<br>
@@ -29,6 +29,23 @@<br>
<br>
  #include "main/glheader.h"<br>
<br>
+/**<br>
+ * \name Internal functions<br>
+ */<br>
+/*@{*/<br>
+<br>
+extern void<br>
+_mesa_texture_parameterf( struct gl_context *ctx,<br>
+                          struct gl_texture_object *texObj,<br>
+                          GLenum pname, GLfloat param, bool dsa );<br>
+<br>
+/*@}*/<br>
+<br>
+/**<br>
+ * \name API functions<br>
+ */<br>
+/*@{*/<br>
+<br>
<br>
  extern void GLAPIENTRY<br>
  _mesa_GetTexLevelParameterfv( GLenum target, GLint level,<br>
@@ -72,4 +89,7 @@ extern void GLAPIENTRY<br>
  _mesa_TexParameterIuiv(GLenum target, GLenum pname, const GLuint *params);<br>
<br>
<br>
+extern void GLAPIENTRY<br>
+_mesa_TextureParameterf( GLuint texture, GLenum pname, GLfloat param );<br>
+<br>
  #endif /* TEXPARAM_H */<br>
<br>
</blockquote>
<br>
</div></div></blockquote></div><br></div></div>