TINYGL: Added blit image versioning.

This commit is contained in:
Stefano Musumeci 2014-08-02 21:44:23 +02:00
parent 1220e5373f
commit f6c259684c
2 changed files with 13 additions and 1 deletions

View file

@ -14,7 +14,7 @@ Common::Rect rotateRectangle(int x, int y, int width, int height, int rotation,
struct BlitImage {
public:
BlitImage() : _isDisposed(false) { }
BlitImage() : _isDisposed(false), _version(0) { }
bool _isDisposed;
@ -65,6 +65,10 @@ public:
}
}
int getVersion() const {
return _version;
}
~BlitImage() {
_surface.free();
}
@ -211,6 +215,8 @@ public:
bool _binaryTransparent;
Common::Array<Line> _lines;
Graphics::Surface _surface;
private:
int _version;
};
void tglGetBlitImageSize(BlitImage *blitImage, int &width, int &height) {
@ -218,6 +224,10 @@ void tglGetBlitImageSize(BlitImage *blitImage, int &width, int &height) {
height = blitImage->_surface.h;
}
int tglGetBlitImageVersion(BlitImage *blitImage) {
return blitImage->getVersion();
}
BlitImage *tglGenBlitImage() {
TinyGL::GLContext *c = TinyGL::gl_get_context();
BlitImage *image = new BlitImage();

View file

@ -86,6 +86,7 @@ BlitImage *tglGenBlitImage();
void tglUploadBlitImage(BlitImage *blitImage, const Graphics::Surface &surface, uint32 colorKey, bool applyColorKey);
void tglDeleteBlitImage(BlitImage *blitImage);
void tglGetBlitImageSize(BlitImage *blitImage, int &width, int &height);
int tglGetBlitImageVersion(BlitImage *blitImage);
void tglBlit(BlitImage *blitImage, const BlitTransform &transform);
void tglBlit(BlitImage *blitImage, int x, int y);
@ -99,6 +100,7 @@ void tglBlitFast(BlitImage *blitImage, int x, int y);
// Blits onto the zbuffer
void tglBlitZBuffer(BlitImage *blitImage, int x, int y);
namespace Internal {
void tglCleanupImages(); // This function checks if any blit image is to be cleaned up and deletes it.