X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmesh.cpp;h=8c1e79c49b3efaffbfcdbf0216a7105a15bd5fe9;hb=6dc2da27f0831d4172fcfeba4900616fd6c844b8;hp=301c00f94b331fc6c87087bc9f79a8b558c675a0;hpb=c46c75f8e3863dc3c6f91a2d5dc7f58333ec9260;p=libs%2Fgl.git diff --git a/source/mesh.cpp b/source/mesh.cpp index 301c00f9..8c1e79c4 100644 --- a/source/mesh.cpp +++ b/source/mesh.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include "buffer.h" @@ -29,7 +30,7 @@ void Mesh::init(ResourceManager *rm) vbuf = 0; ibuf = 0; vao_id = 0; - defer_buffers = true; + defer_buffers = ARB_vertex_buffer_object; dirty = true; disallow_rendering = false; winding = 0; @@ -40,6 +41,7 @@ void Mesh::init(ResourceManager *rm) Mesh::~Mesh() { + set_manager(0); delete vbuf; delete ibuf; if(vao_id) @@ -153,7 +155,7 @@ void Mesh::draw() const if(!current()) vertices.apply(); - Bind bind_ibuf(ibuf, ELEMENT_ARRAY_BUFFER); + BindRestore bind_ibuf(ibuf, ELEMENT_ARRAY_BUFFER); Bind bind_winding(winding); for(list::const_iterator i=batches.begin(); i!=batches.end(); ++i) @@ -200,7 +202,7 @@ void Mesh::unbind() glBindVertexArray(0); } -Resource::AsyncLoader *Mesh::load(IO::Seekable &io) +Resource::AsyncLoader *Mesh::load(IO::Seekable &io, const Resources *) { return new AsyncLoader(*this, io); } @@ -273,7 +275,7 @@ Mesh::AsyncLoader::AsyncLoader(Mesh &m, IO::Seekable &i): phase(0) { // Make sure the extension is initialized in the rendering thread. - (bool)NV_primitive_restart; + (void)(bool)NV_primitive_restart; mesh.disallow_rendering = true; if(mesh.defer_buffers)