X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fgraphics%2Fgles-impl%2Fgles-graphics-reflection.cpp;h=d25ec1d34045ee7f4c60099199c76bdf4b3cdb65;hb=2c55cc6b056f93522e36943d7bbaf770a5aa2170;hp=05776c26b180086db07f7467457141546c3887a9;hpb=c962073648938dc9bae7fb9e3afac9552bbc6c23;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/graphics/gles-impl/gles-graphics-reflection.cpp b/dali/internal/graphics/gles-impl/gles-graphics-reflection.cpp index 05776c2..d25ec1d 100644 --- a/dali/internal/graphics/gles-impl/gles-graphics-reflection.cpp +++ b/dali/internal/graphics/gles-impl/gles-graphics-reflection.cpp @@ -220,6 +220,8 @@ void Reflection::BuildVertexAttributeReflection() mVertexInputAttributes.clear(); mVertexInputAttributes.resize(nAttribs); + int maximumLocation = nAttribs - 1; + name = new GLchar[maxLength]; for(int i = 0; i < nAttribs; i++) { @@ -228,13 +230,21 @@ void Reflection::BuildVertexAttributeReflection() if(location >= 0) { + if(maximumLocation < location) + { + maximumLocation = location; + // Increate continer size s.t. we can use maximumLocation as index. + mVertexInputAttributes.resize(maximumLocation + 1u); + } + AttributeInfo attributeInfo; attributeInfo.location = location; attributeInfo.name = name; attributeInfo.format = GetVertexAttributeTypeFormat(type); - mVertexInputAttributes.insert(mVertexInputAttributes.begin() + location, attributeInfo); + mVertexInputAttributes[location] = std::move(attributeInfo); } } + delete[] name; }