TINYGL: Free draw call lists in glClose.
This commit is contained in:
parent
3221146de9
commit
47a1e826e7
3 changed files with 17 additions and 0 deletions
|
@ -28,6 +28,7 @@
|
|||
|
||||
#include "graphics/tinygl/zgl.h"
|
||||
#include "graphics/tinygl/zblit.h"
|
||||
#include "graphics/tinygl/zdirtyrect.h"
|
||||
|
||||
namespace TinyGL {
|
||||
|
||||
|
@ -243,6 +244,7 @@ void glInit(void *zbuffer1, int textureSize) {
|
|||
void glClose() {
|
||||
GLContext *c = gl_get_context();
|
||||
|
||||
tglDisposeDrawCallLists(c);
|
||||
Graphics::Internal::tglCleanupImages();
|
||||
|
||||
specbuf_cleanup(c);
|
||||
|
|
|
@ -97,6 +97,18 @@ void tglDisposeResources(TinyGL::GLContext *c) {
|
|||
Graphics::Internal::tglCleanupImages();
|
||||
}
|
||||
|
||||
void tglDisposeDrawCallLists(TinyGL::GLContext *c) {
|
||||
typedef Common::List<Graphics::DrawCall *>::const_iterator DrawCallIterator;
|
||||
for (DrawCallIterator it = c->_previousFrameDrawCallsQueue.begin(); it != c->_previousFrameDrawCallsQueue.end(); ++it) {
|
||||
delete *it;
|
||||
}
|
||||
c->_previousFrameDrawCallsQueue.clear();
|
||||
for (DrawCallIterator it = c->_drawCallsQueue.begin(); it != c->_drawCallsQueue.end(); ++it) {
|
||||
delete *it;
|
||||
}
|
||||
c->_drawCallsQueue.clear();
|
||||
}
|
||||
|
||||
void tglPresentBufferDirtyRects(TinyGL::GLContext *c) {
|
||||
typedef Common::List<Graphics::DrawCall *>::const_iterator DrawCallIterator;
|
||||
typedef Common::List<TinyGL::DirtyRectangle>::iterator RectangleIterator;
|
||||
|
|
|
@ -429,6 +429,9 @@ void gl_resizeImageNoInterpolate(unsigned char *dest, int xsize_dest, int ysize_
|
|||
|
||||
void tglIssueDrawCall(Graphics::DrawCall *drawCall);
|
||||
|
||||
// zdirtyrect.cpp
|
||||
void tglDisposeDrawCallLists(TinyGL::GLContext *c);
|
||||
|
||||
GLContext *gl_get_context();
|
||||
|
||||
// specular buffer "api"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue