]> git.tdb.fi Git - libs/gl.git/blobdiff - source/programdata.cpp
Buffer fixes in ProgramData
[libs/gl.git] / source / programdata.cpp
index 7334596c0d4873cfb550b995e5791d8b5236cd2d..f3f498f3e948966d9e1dd3524175b1d0ddc5060e 100644 (file)
@@ -39,6 +39,7 @@ ProgramData::~ProgramData()
                delete i->second;
        for(BlockMap::iterator i=blocks.begin(); i!=blocks.end(); ++i)
                delete i->second.block;
+       delete buffer;
 }
 
 void ProgramData::uniform(const string &name, Uniform *uni)
@@ -171,7 +172,10 @@ UniformBlock *ProgramData::create_block(const Program::UniformBlockInfo &info) c
 {
        UniformBlock *block = new UniformBlock(info.data_size);
        if(!buffer)
+       {
                buffer = new Buffer(UNIFORM_BUFFER);
+               buffer->set_usage(STREAM_DRAW);
+       }
        block->use_buffer(buffer, last_block);
        last_block = block;
        return block;