mesa: split _mesa_primitive_restart_index into a function without gl_context
authorMarek Olšák <marek.olsak@amd.com>
Sat, 21 Mar 2020 03:58:33 +0000 (23:58 -0400)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 6 Apr 2020 14:29:38 +0000 (10:29 -0400)
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4466>

src/mesa/main/varray.h

index 6a549d2a5f0c4462e5d342d6df4c18b18e1e6135..c596c277cf6afe599663f05f44aadd4d8c0065bd 100644 (file)
@@ -321,10 +321,10 @@ extern void GLAPIENTRY
 _mesa_VertexArrayVertexAttribDivisorEXT(GLuint vaobj, GLuint index, GLuint divisor);
 
 static inline unsigned
-_mesa_primitive_restart_index(const struct gl_context *ctx,
-                              unsigned index_size)
+_mesa_get_prim_restart_index(bool fixed_index, unsigned restart_index,
+                             unsigned index_size)
 {
-   /* The index_size parameter is menat to be in bytes. */
+   /* The index_size parameter is meant to be in bytes. */
    assert(index_size == 1 || index_size == 2 || index_size == 4);
 
    /* From the OpenGL 4.3 core specification, page 302:
@@ -332,12 +332,20 @@ _mesa_primitive_restart_index(const struct gl_context *ctx,
     *  enabled, the index value determined by PRIMITIVE_RESTART_FIXED_INDEX
     *  is used."
     */
-   if (ctx->Array.PrimitiveRestartFixedIndex) {
+   if (fixed_index) {
       /* 1 -> 0xff, 2 -> 0xffff, 4 -> 0xffffffff */
       return 0xffffffffu >> 8 * (4 - index_size);
    }
 
-   return ctx->Array.RestartIndex;
+   return restart_index;
+}
+
+static inline unsigned
+_mesa_primitive_restart_index(const struct gl_context *ctx,
+                              unsigned index_size)
+{
+   return _mesa_get_prim_restart_index(ctx->Array.PrimitiveRestartFixedIndex,
+                                       ctx->Array.RestartIndex, index_size);
 }
 
 extern void GLAPIENTRY