i965/nir/vec4: Implement atomic counter intrinsics (read, inc and dec)
[mesa.git] / src / mesa / vbo / vbo_context.c
index 2b31b6222040dce5f05e1e4b4fc5f55af5694379..e3eb286e482ef4be323ddc33a93aad8a0894c22c 100644 (file)
@@ -1,6 +1,5 @@
 /*
  * Mesa 3-D graphics library
- * Version:  6.3
  *
  * Copyright (C) 1999-2005  Brian Paul   All Rights Reserved.
  *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
  *
  * Authors:
- *    Keith Whitwell <keith@tungstengraphics.com>
+ *    Keith Whitwell <keithw@vmware.com>
  */
 
 #include "main/imports.h"
@@ -37,9 +37,9 @@
 
 static GLuint check_size( const GLfloat *attr )
 {
-   if (attr[3] != 1.0) return 4;
-   if (attr[2] != 0.0) return 3;
-   if (attr[1] != 0.0) return 2;
+   if (attr[3] != 1.0F) return 4;
+   if (attr[2] != 0.0F) return 3;
+   if (attr[1] != 0.0F) return 2;
    return 1;           
 }
 
@@ -77,7 +77,7 @@ static void init_legacy_currval(struct gl_context *ctx)
 static void init_generic_currval(struct gl_context *ctx)
 {
    struct vbo_context *vbo = vbo_context(ctx);
-   struct gl_client_array *arrays = vbo->generic_currval;
+   struct gl_client_array *arrays = &vbo->currval[VBO_ATTRIB_GENERIC0];
    GLuint i;
 
    memset(arrays, 0, sizeof(*arrays) * VERT_ATTRIB_GENERIC_MAX);
@@ -104,10 +104,11 @@ static void init_generic_currval(struct gl_context *ctx)
 static void init_mat_currval(struct gl_context *ctx)
 {
    struct vbo_context *vbo = vbo_context(ctx);
-   struct gl_client_array *arrays = vbo->mat_currval;
+   struct gl_client_array *arrays =
+      &vbo->currval[VBO_ATTRIB_MAT_FRONT_AMBIENT];
    GLuint i;
 
-   ASSERT(NR_MAT_ATTRIBS == MAT_ATTRIB_MAX);
+   assert(NR_MAT_ATTRIBS == MAT_ATTRIB_MAX);
 
    memset(arrays, 0, sizeof(*arrays) * NR_MAT_ATTRIBS);
 
@@ -151,7 +152,7 @@ GLboolean _vbo_CreateContext( struct gl_context *ctx )
 {
    struct vbo_context *vbo = CALLOC_STRUCT(vbo_context);
 
-   ctx->swtnl_im = (void *)vbo;
+   ctx->vbo_context = vbo;
 
    /* Initialize the arrayelt helper
     */
@@ -160,11 +161,6 @@ GLboolean _vbo_CreateContext( struct gl_context *ctx )
       return GL_FALSE;
    }
 
-   /* TODO: remove these pointers.
-    */
-   vbo->generic_currval = &vbo->currval[VBO_ATTRIB_GENERIC0];
-   vbo->mat_currval = &vbo->currval[VBO_ATTRIB_MAT_FRONT_AMBIENT];
-
    init_legacy_currval( ctx );
    init_generic_currval( ctx );
    init_mat_currval( ctx );
@@ -176,14 +172,14 @@ GLboolean _vbo_CreateContext( struct gl_context *ctx )
       GLuint i;
 
       /* identity mapping */
-      for (i = 0; i < Elements(vbo->map_vp_none); i++) 
+      for (i = 0; i < ARRAY_SIZE(vbo->map_vp_none); i++) 
         vbo->map_vp_none[i] = i;
       /* map material attribs to generic slots */
       for (i = 0; i < NR_MAT_ATTRIBS; i++) 
         vbo->map_vp_none[VERT_ATTRIB_GENERIC(i)]
             = VBO_ATTRIB_MAT_FRONT_AMBIENT + i;
 
-      for (i = 0; i < Elements(vbo->map_vp_arb); i++)
+      for (i = 0; i < ARRAY_SIZE(vbo->map_vp_arb); i++)
         vbo->map_vp_arb[i] = i;
    }
 
@@ -193,7 +189,7 @@ GLboolean _vbo_CreateContext( struct gl_context *ctx )
     * vtxfmt mechanism can be removed now.
     */
    vbo_exec_init( ctx );
-   if (ctx->API == API_OPENGL)
+   if (ctx->API == API_OPENGL_COMPAT)
       vbo_save_init( ctx );
 
    _math_init_eval();
@@ -225,10 +221,10 @@ void _vbo_DestroyContext( struct gl_context *ctx )
       }
 
       vbo_exec_destroy(ctx);
-      if (ctx->API == API_OPENGL)
+      if (ctx->API == API_OPENGL_COMPAT)
          vbo_save_destroy(ctx);
-      FREE(vbo);
-      ctx->swtnl_im = NULL;
+      free(vbo);
+      ctx->vbo_context = NULL;
    }
 }