]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/instancearray.cpp
Store simpler states by value in PipelineState
[libs/gl.git] / source / render / instancearray.cpp
index f6a7bb634bd450c0f6f4d4011655331ca72e93ea..93985578ef08e04a0aaff4b9a66b2d567a5c8634 100644 (file)
@@ -15,10 +15,7 @@ namespace Msp {
 namespace GL {
 
 InstanceArray::InstanceArray(const Object &o):
-       object(o),
-       instance_buffer(0),
-       matrix_location(-1),
-       matrix_offset(0)
+       object(o)
 {
        const Technique *tech = object.get_technique();
        for(const auto &kvp: tech->get_methods())
@@ -106,10 +103,8 @@ void InstanceArray::render(Renderer &renderer, Tag tag) const
                return;
 
        const Mesh *mesh = object.get_mesh();
-       mesh->get_vertices().refresh();
        if(instance_buffer->get_size()==0)
-               instance_buffer->storage(instance_data.get_required_buffer_size());
-       instance_data.refresh();
+               instance_buffer->storage(instance_data.get_required_buffer_size(), STREAMING);
 
        Renderer::Push push(renderer);
        method->apply(renderer);