X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fbuilders%2Fvertexarraybuilder.cpp;h=c9a1f3bc8c5c5d8a751705fdfb3603ad196a7e6f;hp=6ede4d2ab60f8a417087f0d784ac0b00642c2114;hb=c8520aa336e92f2eaf9a38c3430c608520a90324;hpb=e92de029768eef5f0fd744329e589161b46d0762 diff --git a/source/builders/vertexarraybuilder.cpp b/source/builders/vertexarraybuilder.cpp index 6ede4d2a..c9a1f3bc 100644 --- a/source/builders/vertexarraybuilder.cpp +++ b/source/builders/vertexarraybuilder.cpp @@ -13,34 +13,33 @@ VertexArrayBuilder::VertexArrayBuilder(VertexArray &a): void VertexArrayBuilder::vertex_(const Vector4 &vtx) { char *ptr = array.append(); - const VertexFormat &format = array.get_format(); - for(const UInt16 *a=format.begin(); a!=format.end(); ++a) + for(VertexAttribute a: array.get_format()) { - unsigned sem = get_attribute_semantic(*a); - bool integer = is_integer_attribute(*a); - DataType type = get_attribute_source_type(*a); - unsigned cc = get_attribute_component_count(*a); + unsigned sem = get_attribute_semantic(a); + bool integer = is_integer_attribute(a); + DataType type = get_attribute_source_type(a); + unsigned cc = get_attribute_component_count(a); if(sem(ptr, value, !integer, cc); + store_attribute(ptr, value, !integer, cc); else if(type==BYTE) - store_attribute(ptr, value, !integer, cc); + store_attribute(ptr, value, !integer, cc); else if(type==UNSIGNED_SHORT) - store_attribute(ptr, value, !integer, cc); + store_attribute(ptr, value, !integer, cc); else if(type==SHORT) - store_attribute(ptr, value, !integer, cc); + store_attribute(ptr, value, !integer, cc); else if(type==UNSIGNED_INT) - store_attribute(ptr, value, !integer, cc); + store_attribute(ptr, value, !integer, cc); else if(type==INT) - store_attribute(ptr, value, !integer, cc); + store_attribute(ptr, value, !integer, cc); else if(type==FLOAT) store_attribute(ptr, value, false, cc); } - ptr += get_attribute_size(*a); + ptr += get_attribute_size(a); } }