}
}
+OpenGLQueryPool::OpenGLQueryPool(OpenGLQueryPool &&other):
+ gl_type(other.gl_type),
+ queries(move(other.queries))
+{
+ other.queries.clear();
+}
+
OpenGLQueryPool::~OpenGLQueryPool()
{
glDeleteQueries(queries.size(), queries.data());
}
-void OpenGLQueryPool::resize(unsigned s)
+void OpenGLQueryPool::resize()
{
- if(s<queries.size())
- glDeleteQueries(queries.size()-s, queries.data()+s);
+ unsigned size = static_cast<const QueryPool *>(this)->size;
+ if(size<queries.size())
+ glDeleteQueries(queries.size()-size, queries.data()+size);
unsigned old_size = queries.size();
- queries.resize(s);
- if(s>old_size)
- glGenQueries(s-old_size, queries.data()+old_size);
+ queries.resize(size);
+ if(size>old_size)
+ glGenQueries(size-old_size, queries.data()+old_size);
}
unsigned OpenGLQueryPool::get_result(unsigned i) const