aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/vbo/vbo_exec.c
diff options
context:
space:
mode:
authorMathias Fröhlich <[email protected]>2018-01-27 16:07:22 +0100
committerMathias Fröhlich <[email protected]>2018-02-01 22:39:07 +0100
commit3d4fb879ddbce1c5da7199ae74bc2e7ae98d1b70 (patch)
tree886e65a3a68bfd422e067e92caff2b4351d20134 /src/mesa/vbo/vbo_exec.c
parentb4fd63015ac7fd73e0147ff078caec47be729e87 (diff)
vbo: Use static const VERT_ATTRIB->VBO_ATTRIB maps.
Instead of each context having its own map instance for this purpose, use a global static const map. v2: s,unsigned char,GLubyte,g s,_VP_MODE_MAX,VP_MODE_MAX,g Change comment style. Signed-off-by: Mathias Fröhlich <[email protected]> Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/mesa/vbo/vbo_exec.c')
-rw-r--r--src/mesa/vbo/vbo_exec.c74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/mesa/vbo/vbo_exec.c b/src/mesa/vbo/vbo_exec.c
index 82f204e3dc9..fc06979dcb1 100644
--- a/src/mesa/vbo/vbo_exec.c
+++ b/src/mesa/vbo/vbo_exec.c
@@ -32,6 +32,80 @@
#include "main/vtxfmt.h"
#include "vbo_private.h"
+const GLubyte
+_vbo_attribute_alias_map[VP_MODE_MAX][VERT_ATTRIB_MAX] = {
+ /* VP_FF: */
+ {
+ VBO_ATTRIB_POS, /* VERT_ATTRIB_POS */
+ VBO_ATTRIB_NORMAL, /* VERT_ATTRIB_NORMAL */
+ VBO_ATTRIB_COLOR0, /* VERT_ATTRIB_COLOR0 */
+ VBO_ATTRIB_COLOR1, /* VERT_ATTRIB_COLOR1 */
+ VBO_ATTRIB_FOG, /* VERT_ATTRIB_FOG */
+ VBO_ATTRIB_COLOR_INDEX, /* VERT_ATTRIB_COLOR_INDEX */
+ VBO_ATTRIB_EDGEFLAG, /* VERT_ATTRIB_EDGEFLAG */
+ VBO_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
+ VBO_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
+ VBO_ATTRIB_TEX2, /* VERT_ATTRIB_TEX2 */
+ VBO_ATTRIB_TEX3, /* VERT_ATTRIB_TEX3 */
+ VBO_ATTRIB_TEX4, /* VERT_ATTRIB_TEX4 */
+ VBO_ATTRIB_TEX5, /* VERT_ATTRIB_TEX5 */
+ VBO_ATTRIB_TEX6, /* VERT_ATTRIB_TEX6 */
+ VBO_ATTRIB_TEX7, /* VERT_ATTRIB_TEX7 */
+ VBO_ATTRIB_POINT_SIZE, /* VERT_ATTRIB_POINT_SIZE */
+ VBO_ATTRIB_GENERIC0, /* VERT_ATTRIB_GENERIC0 */
+ VBO_ATTRIB_GENERIC1, /* VERT_ATTRIB_GENERIC1 */
+ VBO_ATTRIB_GENERIC2, /* VERT_ATTRIB_GENERIC2 */
+ VBO_ATTRIB_GENERIC3, /* VERT_ATTRIB_GENERIC3 */
+ VBO_ATTRIB_MAT_FRONT_AMBIENT, /* VERT_ATTRIB_GENERIC4 */
+ VBO_ATTRIB_MAT_BACK_AMBIENT, /* VERT_ATTRIB_GENERIC5 */
+ VBO_ATTRIB_MAT_FRONT_DIFFUSE, /* VERT_ATTRIB_GENERIC6 */
+ VBO_ATTRIB_MAT_BACK_DIFFUSE, /* VERT_ATTRIB_GENERIC7 */
+ VBO_ATTRIB_MAT_FRONT_SPECULAR, /* VERT_ATTRIB_GENERIC8 */
+ VBO_ATTRIB_MAT_BACK_SPECULAR, /* VERT_ATTRIB_GENERIC9 */
+ VBO_ATTRIB_MAT_FRONT_EMISSION, /* VERT_ATTRIB_GENERIC10 */
+ VBO_ATTRIB_MAT_BACK_EMISSION, /* VERT_ATTRIB_GENERIC11 */
+ VBO_ATTRIB_MAT_FRONT_SHININESS, /* VERT_ATTRIB_GENERIC12 */
+ VBO_ATTRIB_MAT_BACK_SHININESS, /* VERT_ATTRIB_GENERIC13 */
+ VBO_ATTRIB_MAT_FRONT_INDEXES, /* VERT_ATTRIB_GENERIC14 */
+ VBO_ATTRIB_MAT_BACK_INDEXES /* VERT_ATTRIB_GENERIC15 */
+ },
+
+ /* VP_SHADER: */
+ {
+ VBO_ATTRIB_POS, /* VERT_ATTRIB_POS */
+ VBO_ATTRIB_NORMAL, /* VERT_ATTRIB_NORMAL */
+ VBO_ATTRIB_COLOR0, /* VERT_ATTRIB_COLOR0 */
+ VBO_ATTRIB_COLOR1, /* VERT_ATTRIB_COLOR1 */
+ VBO_ATTRIB_FOG, /* VERT_ATTRIB_FOG */
+ VBO_ATTRIB_COLOR_INDEX, /* VERT_ATTRIB_COLOR_INDEX */
+ VBO_ATTRIB_EDGEFLAG, /* VERT_ATTRIB_EDGEFLAG */
+ VBO_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
+ VBO_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
+ VBO_ATTRIB_TEX2, /* VERT_ATTRIB_TEX2 */
+ VBO_ATTRIB_TEX3, /* VERT_ATTRIB_TEX3 */
+ VBO_ATTRIB_TEX4, /* VERT_ATTRIB_TEX4 */
+ VBO_ATTRIB_TEX5, /* VERT_ATTRIB_TEX5 */
+ VBO_ATTRIB_TEX6, /* VERT_ATTRIB_TEX6 */
+ VBO_ATTRIB_TEX7, /* VERT_ATTRIB_TEX7 */
+ VBO_ATTRIB_POINT_SIZE, /* VERT_ATTRIB_POINT_SIZE */
+ VBO_ATTRIB_GENERIC0, /* VERT_ATTRIB_GENERIC0 */
+ VBO_ATTRIB_GENERIC1, /* VERT_ATTRIB_GENERIC1 */
+ VBO_ATTRIB_GENERIC2, /* VERT_ATTRIB_GENERIC2 */
+ VBO_ATTRIB_GENERIC3, /* VERT_ATTRIB_GENERIC3 */
+ VBO_ATTRIB_GENERIC4, /* VERT_ATTRIB_GENERIC4 */
+ VBO_ATTRIB_GENERIC5, /* VERT_ATTRIB_GENERIC5 */
+ VBO_ATTRIB_GENERIC6, /* VERT_ATTRIB_GENERIC6 */
+ VBO_ATTRIB_GENERIC7, /* VERT_ATTRIB_GENERIC7 */
+ VBO_ATTRIB_GENERIC8, /* VERT_ATTRIB_GENERIC8 */
+ VBO_ATTRIB_GENERIC9, /* VERT_ATTRIB_GENERIC9 */
+ VBO_ATTRIB_GENERIC10, /* VERT_ATTRIB_GENERIC10 */
+ VBO_ATTRIB_GENERIC11, /* VERT_ATTRIB_GENERIC11 */
+ VBO_ATTRIB_GENERIC12, /* VERT_ATTRIB_GENERIC12 */
+ VBO_ATTRIB_GENERIC13, /* VERT_ATTRIB_GENERIC13 */
+ VBO_ATTRIB_GENERIC14, /* VERT_ATTRIB_GENERIC14 */
+ VBO_ATTRIB_GENERIC15 /* VERT_ATTRIB_GENERIC15 */
+ }
+};
void