Commit 23e0500d by Shannon Woods

Change mVertexAttribCurrentValues from fixed-size array to STL container.

BUG=angle:685 Change-Id: I42fc6c919f42cd6ab1c11531742f9a2c5ad0cd3d Reviewed-on: https://chromium-review.googlesource.com/219353Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarBrandon Jones <bajones@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Tested-by: 's avatarShannon Woods <shannonwoods@chromium.org>
parent 1a965480
...@@ -114,7 +114,8 @@ void State::initialize(const Caps& caps, GLuint clientVersion) ...@@ -114,7 +114,8 @@ void State::initialize(const Caps& caps, GLuint clientVersion)
mActiveSampler = 0; mActiveSampler = 0;
const GLfloat defaultFloatValues[] = { 0.0f, 0.0f, 0.0f, 1.0f }; const GLfloat defaultFloatValues[] = { 0.0f, 0.0f, 0.0f, 1.0f };
for (int attribIndex = 0; attribIndex < MAX_VERTEX_ATTRIBS; attribIndex++) mVertexAttribCurrentValues.resize(caps.maxVertexAttributes);
for (size_t attribIndex = 0; attribIndex < mVertexAttribCurrentValues.size(); ++attribIndex)
{ {
mVertexAttribCurrentValues[attribIndex].setFloatValues(defaultFloatValues); mVertexAttribCurrentValues[attribIndex].setFloatValues(defaultFloatValues);
} }
...@@ -156,12 +157,6 @@ void State::reset() ...@@ -156,12 +157,6 @@ void State::reset()
mSamplers[samplerIdx].set(NULL); mSamplers[samplerIdx].set(NULL);
} }
const GLfloat defaultFloatValues[] = { 0.0f, 0.0f, 0.0f, 1.0f };
for (int attribIndex = 0; attribIndex < MAX_VERTEX_ATTRIBS; attribIndex++)
{
mVertexAttribCurrentValues[attribIndex].setFloatValues(defaultFloatValues);
}
mArrayBuffer.set(NULL); mArrayBuffer.set(NULL);
mRenderbuffer.set(NULL); mRenderbuffer.set(NULL);
...@@ -1036,19 +1031,19 @@ void State::setEnableVertexAttribArray(unsigned int attribNum, bool enabled) ...@@ -1036,19 +1031,19 @@ void State::setEnableVertexAttribArray(unsigned int attribNum, bool enabled)
void State::setVertexAttribf(GLuint index, const GLfloat values[4]) void State::setVertexAttribf(GLuint index, const GLfloat values[4])
{ {
ASSERT(index < gl::MAX_VERTEX_ATTRIBS); ASSERT(static_cast<size_t>(index) < mVertexAttribCurrentValues.size());
mVertexAttribCurrentValues[index].setFloatValues(values); mVertexAttribCurrentValues[index].setFloatValues(values);
} }
void State::setVertexAttribu(GLuint index, const GLuint values[4]) void State::setVertexAttribu(GLuint index, const GLuint values[4])
{ {
ASSERT(index < gl::MAX_VERTEX_ATTRIBS); ASSERT(static_cast<size_t>(index) < mVertexAttribCurrentValues.size());
mVertexAttribCurrentValues[index].setUnsignedIntValues(values); mVertexAttribCurrentValues[index].setUnsignedIntValues(values);
} }
void State::setVertexAttribi(GLuint index, const GLint values[4]) void State::setVertexAttribi(GLuint index, const GLint values[4])
{ {
ASSERT(index < gl::MAX_VERTEX_ATTRIBS); ASSERT(static_cast<size_t>(index) < mVertexAttribCurrentValues.size());
mVertexAttribCurrentValues[index].setIntValues(values); mVertexAttribCurrentValues[index].setIntValues(values);
} }
...@@ -1065,7 +1060,7 @@ const VertexAttribute &State::getVertexAttribState(unsigned int attribNum) const ...@@ -1065,7 +1060,7 @@ const VertexAttribute &State::getVertexAttribState(unsigned int attribNum) const
const VertexAttribCurrentValueData &State::getVertexAttribCurrentValue(unsigned int attribNum) const const VertexAttribCurrentValueData &State::getVertexAttribCurrentValue(unsigned int attribNum) const
{ {
ASSERT(attribNum < MAX_VERTEX_ATTRIBS); ASSERT(static_cast<size_t>(attribNum) < mVertexAttribCurrentValues.size());
return mVertexAttribCurrentValues[attribNum]; return mVertexAttribCurrentValues[attribNum];
} }
...@@ -1431,9 +1426,9 @@ bool State::hasMappedBuffer(GLenum target) const ...@@ -1431,9 +1426,9 @@ bool State::hasMappedBuffer(GLenum target) const
{ {
if (target == GL_ARRAY_BUFFER) if (target == GL_ARRAY_BUFFER)
{ {
for (unsigned int attribIndex = 0; attribIndex < gl::MAX_VERTEX_ATTRIBS; attribIndex++) for (size_t attribIndex = 0; attribIndex < mVertexAttribCurrentValues.size(); attribIndex++)
{ {
const gl::VertexAttribute &vertexAttrib = getVertexAttribState(attribIndex); const gl::VertexAttribute &vertexAttrib = getVertexAttribState(static_cast<unsigned int>(attribIndex));
gl::Buffer *boundBuffer = vertexAttrib.buffer.get(); gl::Buffer *boundBuffer = vertexAttrib.buffer.get();
if (vertexAttrib.enabled && boundBuffer && boundBuffer->isMapped()) if (vertexAttrib.enabled && boundBuffer && boundBuffer->isMapped())
{ {
......
...@@ -282,7 +282,8 @@ class State ...@@ -282,7 +282,8 @@ class State
GLuint mCurrentProgramId; GLuint mCurrentProgramId;
BindingPointer<ProgramBinary> mCurrentProgramBinary; BindingPointer<ProgramBinary> mCurrentProgramBinary;
VertexAttribCurrentValueData mVertexAttribCurrentValues[MAX_VERTEX_ATTRIBS]; // From glVertexAttrib typedef std::vector<VertexAttribCurrentValueData> VertexAttribVector;
VertexAttribVector mVertexAttribCurrentValues; // From glVertexAttrib
VertexArray *mVertexArray; VertexArray *mVertexArray;
// Texture and sampler bindings // Texture and sampler bindings
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment