X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fcore%2Fvertexsetup.cpp;fp=source%2Fcore%2Fvertexsetup.cpp;h=6a41397a8135a63931cffaec766d73f55a032476;hp=d50406a1ab70ce44e7caf645d46009a308c8e86f;hb=ea7832c7c1ffab00cc1168bc8c41375fdd0eae86;hpb=7f03ee52e8af5f857e44702b6d1c2822a51c62ef diff --git a/source/core/vertexsetup.cpp b/source/core/vertexsetup.cpp index d50406a1..6a41397a 100644 --- a/source/core/vertexsetup.cpp +++ b/source/core/vertexsetup.cpp @@ -79,12 +79,12 @@ void VertexSetup::refresh() unsigned VertexSetup::get_attribs(const VertexFormat &fmt) { unsigned mask = 0; - for(const unsigned char *c=fmt.begin(); c!=fmt.end(); ++c) + for(const unsigned char *a=fmt.begin(); a!=fmt.end(); ++a) { - unsigned t = get_component_type(*c); - if(t>=get_component_type(ATTRIB1)) - t -= get_component_type(ATTRIB1); - mask |= 1<=get_attribute_semantic(ATTRIB1)) + sem -= get_attribute_semantic(ATTRIB1); + mask |= 1< bind_vbuf(!direct, array.get_buffer(), ARRAY_BUFFER); const VertexFormat &fmt = array.get_format(); - unsigned stride = get_stride(fmt)*sizeof(float); + unsigned stride = fmt.stride()*sizeof(float); if(direct) { glVertexArrayVertexBuffer(id, binding, array.get_buffer()->get_id(), 0, stride); @@ -144,30 +144,30 @@ void VertexSetup::update_vertex_array(const VertexArray &array, unsigned binding } unsigned offset = 0; - for(const unsigned char *c=fmt.begin(); c!=fmt.end(); ++c) + for(const unsigned char *a=fmt.begin(); a!=fmt.end(); ++a) { - unsigned t = get_component_type(*c); - if(t>=get_component_type(ATTRIB1)) - t -= get_component_type(ATTRIB1); - unsigned sz = get_component_size(*c); + unsigned sem = get_attribute_semantic(*a); + if(sem>=get_attribute_semantic(ATTRIB1)) + sem -= get_attribute_semantic(ATTRIB1); + unsigned sz = get_attribute_size(*a); if(direct) { - if(*c==COLOR4_UBYTE) - glVertexArrayAttribFormat(id, t, 4, GL_UNSIGNED_BYTE, true, offset); + if(*a==COLOR4_UBYTE) + glVertexArrayAttribFormat(id, sem, 4, GL_UNSIGNED_BYTE, true, offset); else - glVertexArrayAttribFormat(id, t, sz, GL_FLOAT, false, offset); - glVertexArrayAttribBinding(id, t, binding); - glEnableVertexArrayAttrib(id, t); + glVertexArrayAttribFormat(id, sem, sz, GL_FLOAT, false, offset); + glVertexArrayAttribBinding(id, sem, binding); + glEnableVertexArrayAttrib(id, sem); } else { - if(*c==COLOR4_UBYTE) - glVertexAttribPointer(t, 4, GL_UNSIGNED_BYTE, true, stride, reinterpret_cast(offset)); + if(*a==COLOR4_UBYTE) + glVertexAttribPointer(sem, 4, GL_UNSIGNED_BYTE, true, stride, reinterpret_cast(offset)); else - glVertexAttribPointer(t, sz, GL_FLOAT, false, stride, reinterpret_cast(offset)); + glVertexAttribPointer(sem, sz, GL_FLOAT, false, stride, reinterpret_cast(offset)); if(ARB_instanced_arrays) - glVertexAttribDivisor(t, divisor); - glEnableVertexAttribArray(t); + glVertexAttribDivisor(sem, divisor); + glEnableVertexAttribArray(sem); } offset += sz*sizeof(float); }