summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llrender/llshadermgr.cpp3
-rw-r--r--indra/llrender/llvertexbuffer.cpp7
-rw-r--r--indra/llrender/llvertexbuffer.h2
3 files changed, 9 insertions, 3 deletions
diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp
index 55f0791174..0a479feccc 100644
--- a/indra/llrender/llshadermgr.cpp
+++ b/indra/llrender/llshadermgr.cpp
@@ -986,7 +986,8 @@ void LLShaderMgr::initAttribsAndUniforms()
mReservedAttribs.push_back("weight4");
mReservedAttribs.push_back("clothing");
mReservedAttribs.push_back("texture_index");
-
+ mReservedAttribs.push_back("index");
+
//matrix state
mReservedUniforms.push_back("modelview_matrix");
mReservedUniforms.push_back("projection_matrix");
diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp
index 0fae600a90..59024b7730 100644
--- a/indra/llrender/llvertexbuffer.cpp
+++ b/indra/llrender/llvertexbuffer.cpp
@@ -339,6 +339,7 @@ S32 LLVertexBuffer::sTypeSize[LLVertexBuffer::TYPE_MAX] =
sizeof(LLVector4), // TYPE_WEIGHT4,
sizeof(LLVector4), // TYPE_CLOTHWEIGHT,
sizeof(LLVector4), // TYPE_TEXTURE_INDEX (actually exists as position.w), no extra data, but stride is 16 bytes
+ sizeof(U16), // TYPE_INDEX
};
static std::string vb_type_name[] =
@@ -356,8 +357,8 @@ static std::string vb_type_name[] =
"TYPE_WEIGHT4",
"TYPE_CLOTHWEIGHT",
"TYPE_TEXTURE_INDEX",
+ "TYPE_INDEX",
"TYPE_MAX",
- "TYPE_INDEX",
};
U32 LLVertexBuffer::sGLMode[LLRender::NUM_MODES] =
@@ -1368,6 +1369,7 @@ void LLVertexBuffer::setupVertexArray()
4, //TYPE_WEIGHT4,
4, //TYPE_CLOTHWEIGHT,
1, //TYPE_TEXTURE_INDEX
+ 1, //TYPE_INDEX
};
U32 attrib_type[] =
@@ -1385,6 +1387,7 @@ void LLVertexBuffer::setupVertexArray()
GL_FLOAT, //TYPE_WEIGHT4,
GL_FLOAT, //TYPE_CLOTHWEIGHT,
GL_UNSIGNED_INT, //TYPE_TEXTURE_INDEX
+ GL_UNSIGNED_INT, //TYPE_INDEX
};
bool attrib_integer[] =
@@ -1402,6 +1405,7 @@ void LLVertexBuffer::setupVertexArray()
false, //TYPE_WEIGHT4,
false, //TYPE_CLOTHWEIGHT,
true, //TYPE_TEXTURE_INDEX
+ true, //TYPE_INDEX
};
U32 attrib_normalized[] =
@@ -1419,6 +1423,7 @@ void LLVertexBuffer::setupVertexArray()
GL_FALSE, //TYPE_WEIGHT4,
GL_FALSE, //TYPE_CLOTHWEIGHT,
GL_FALSE, //TYPE_TEXTURE_INDEX
+ GL_FALSE, //TYPE_INDEX
};
bindGLBuffer(true);
diff --git a/indra/llrender/llvertexbuffer.h b/indra/llrender/llvertexbuffer.h
index c05fd01595..36038eee7b 100644
--- a/indra/llrender/llvertexbuffer.h
+++ b/indra/llrender/llvertexbuffer.h
@@ -179,8 +179,8 @@ public:
TYPE_WEIGHT4,
TYPE_CLOTHWEIGHT,
TYPE_TEXTURE_INDEX,
+ TYPE_INDEX,
TYPE_MAX,
- TYPE_INDEX,
};
enum {
MAP_VERTEX = (1<<TYPE_VERTEX),