I’m building an app in Windows, that compiles and runs fine on macOS, but I’m encountering some Vbo issues. An array attribute which is float[ 6 ]
is expected to have 0 size for some reason, so it fails to work. This is the warning message:
|warning| cinder::gl::VboMesh::buildVao[500] Batch GlslProg expected an Attrib of USER_DEFINED, with name iColorMask[0] but vertex data doesn't provide it.
C++ setup:
std::vector< float > instanceColorMasks;
...
mVboInstanceColorMaskData = gl::Vbo::create( GL_ARRAY_BUFFER,
instanceColorMasks.size() * sizeof( float ), instanceColorMasks.data(),
GL_DYNAMIC_DRAW );
geom::BufferLayout instanceColorMaskDataLayout;
instanceColorMaskDataLayout.append( geom::Attrib::CUSTOM_1, 6, sizeof( float ) * 6, 0, 1 );
mesh->appendVbo( instanceColorMaskDataLayout, mVboInstanceColorMaskData );
...
mBatch = gl::Batch::create( mesh, mGlsl,
{ { geom::Attrib::CUSTOM_0, "iTransform" },
{ geom::Attrib::CUSTOM_1, "iColorMask" } } );
and in the shader:
in float iColorMask[ 6 ];
Do you have any idea why this would happen? Am I missing something?
Any suggestions would be greatly appreciated.
-Gabor