Plugging leaks
svn-id: r35355
This commit is contained in:
parent
4d79c4c9b6
commit
5f8323bd50
10 changed files with 28 additions and 25 deletions
|
@ -134,6 +134,11 @@ Draw::Draw(GobEngine *vm) : _vm(vm) {
|
||||||
_scrollOffsetY = 0;
|
_scrollOffsetY = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Draw::~Draw() {
|
||||||
|
for (int i = 0; i < 8; i++)
|
||||||
|
delete _fonts[i];
|
||||||
|
}
|
||||||
|
|
||||||
void Draw::invalidateRect(int16 left, int16 top, int16 right, int16 bottom) {
|
void Draw::invalidateRect(int16 left, int16 top, int16 right, int16 bottom) {
|
||||||
if (_renderFlags & RENDERFLAG_NOINVALIDATE) {
|
if (_renderFlags & RENDERFLAG_NOINVALIDATE) {
|
||||||
_vm->_video->dirtyRectsAll();
|
_vm->_video->dirtyRectsAll();
|
||||||
|
|
|
@ -168,7 +168,7 @@ public:
|
||||||
virtual void spriteOperation(int16 operation) = 0;
|
virtual void spriteOperation(int16 operation) = 0;
|
||||||
|
|
||||||
Draw(GobEngine *vm);
|
Draw(GobEngine *vm);
|
||||||
virtual ~Draw() {}
|
virtual ~Draw();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GobEngine *_vm;
|
GobEngine *_vm;
|
||||||
|
|
|
@ -209,11 +209,6 @@ void Init::initGame(const char *totName) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++) {
|
|
||||||
if (_vm->_draw->_fonts[i] != 0)
|
|
||||||
_vm->_util->freeFont(_vm->_draw->_fonts[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
delete _palDesc;
|
delete _palDesc;
|
||||||
_vm->_dataIO->closeDataFile();
|
_vm->_dataIO->closeDataFile();
|
||||||
_vm->_video->initPrimary(-1);
|
_vm->_video->initPrimary(-1);
|
||||||
|
|
|
@ -2170,8 +2170,7 @@ bool Inter_v1::o1_loadFont(OpFuncParams ¶ms) {
|
||||||
evalExpr(0);
|
evalExpr(0);
|
||||||
index = load16();
|
index = load16();
|
||||||
|
|
||||||
if (_vm->_draw->_fonts[index])
|
delete _vm->_draw->_fonts[index];
|
||||||
_vm->_util->freeFont(_vm->_draw->_fonts[index]);
|
|
||||||
|
|
||||||
_vm->_draw->animateCursor(4);
|
_vm->_draw->animateCursor(4);
|
||||||
if (_vm->_game->_extHandle >= 0)
|
if (_vm->_game->_extHandle >= 0)
|
||||||
|
@ -2189,9 +2188,7 @@ bool Inter_v1::o1_freeFont(OpFuncParams ¶ms) {
|
||||||
int16 index;
|
int16 index;
|
||||||
|
|
||||||
index = load16();
|
index = load16();
|
||||||
if (_vm->_draw->_fonts[index])
|
delete _vm->_draw->_fonts[index];
|
||||||
_vm->_util->freeFont(_vm->_draw->_fonts[index]);
|
|
||||||
|
|
||||||
_vm->_draw->_fonts[index] = 0;
|
_vm->_draw->_fonts[index] = 0;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -852,7 +852,7 @@ void Inter_v5::o5_getSystemCDSpeed(OpGobParams ¶ms) {
|
||||||
_vm->_draw->drawString("100 %", 402, 89, 112, 144, 0, _vm->_draw->_backSurface, font);
|
_vm->_draw->drawString("100 %", 402, 89, 112, 144, 0, _vm->_draw->_backSurface, font);
|
||||||
_vm->_draw->forceBlit();
|
_vm->_draw->forceBlit();
|
||||||
|
|
||||||
_vm->_util->freeFont(font);
|
delete font;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -866,7 +866,7 @@ void Inter_v5::o5_getSystemRAM(OpGobParams ¶ms) {
|
||||||
_vm->_draw->drawString("100 %", 402, 168, 112, 144, 0, _vm->_draw->_backSurface, font);
|
_vm->_draw->drawString("100 %", 402, 168, 112, 144, 0, _vm->_draw->_backSurface, font);
|
||||||
_vm->_draw->forceBlit();
|
_vm->_draw->forceBlit();
|
||||||
|
|
||||||
_vm->_util->freeFont(font);
|
delete font;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -880,7 +880,7 @@ void Inter_v5::o5_getSystemCPUSpeed(OpGobParams ¶ms) {
|
||||||
_vm->_draw->drawString("100 %", 402, 248, 112, 144, 0, _vm->_draw->_backSurface, font);
|
_vm->_draw->drawString("100 %", 402, 248, 112, 144, 0, _vm->_draw->_backSurface, font);
|
||||||
_vm->_draw->forceBlit();
|
_vm->_draw->forceBlit();
|
||||||
|
|
||||||
_vm->_util->freeFont(font);
|
delete font;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -894,7 +894,7 @@ void Inter_v5::o5_getSystemDrawSpeed(OpGobParams ¶ms) {
|
||||||
_vm->_draw->drawString("100 %", 402, 326, 112, 144, 0, _vm->_draw->_backSurface, font);
|
_vm->_draw->drawString("100 %", 402, 326, 112, 144, 0, _vm->_draw->_backSurface, font);
|
||||||
_vm->_draw->forceBlit();
|
_vm->_draw->forceBlit();
|
||||||
|
|
||||||
_vm->_util->freeFont(font);
|
delete font;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -908,7 +908,7 @@ void Inter_v5::o5_totalSystemSpecs(OpGobParams ¶ms) {
|
||||||
_vm->_draw->drawString("100 %", 402, 405, 112, 144, 0, _vm->_draw->_backSurface, font);
|
_vm->_draw->drawString("100 %", 402, 405, 112, 144, 0, _vm->_draw->_backSurface, font);
|
||||||
_vm->_draw->forceBlit();
|
_vm->_draw->forceBlit();
|
||||||
|
|
||||||
_vm->_util->freeFont(font);
|
delete font;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -378,11 +378,6 @@ Video::FontDesc *Util::loadFont(const char *path) {
|
||||||
return fontDesc;
|
return fontDesc;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Util::freeFont(Video::FontDesc *fontDesc) {
|
|
||||||
delete[] (fontDesc->dataPtr - 4);
|
|
||||||
delete fontDesc;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Util::insertStr(const char *str1, char *str2, int16 pos) {
|
void Util::insertStr(const char *str1, char *str2, int16 pos) {
|
||||||
int len1 = strlen(str1);
|
int len1 = strlen(str1);
|
||||||
int len2 = strlen(str2);
|
int len2 = strlen(str2);
|
||||||
|
|
|
@ -77,7 +77,6 @@ public:
|
||||||
void setScrollOffset(int16 x = -1, int16 y = -1);
|
void setScrollOffset(int16 x = -1, int16 y = -1);
|
||||||
|
|
||||||
Video::FontDesc *loadFont(const char *path);
|
Video::FontDesc *loadFont(const char *path);
|
||||||
void freeFont(Video::FontDesc *fontDesc);
|
|
||||||
|
|
||||||
static void insertStr(const char *str1, char *str2, int16 pos);
|
static void insertStr(const char *str1, char *str2, int16 pos);
|
||||||
static void cutFromStr(char *str, int16 from, int16 cutlen);
|
static void cutFromStr(char *str, int16 from, int16 cutlen);
|
||||||
|
|
|
@ -120,6 +120,10 @@ char Video::initDriver(int16 vidMode) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Video::~Video() {
|
||||||
|
delete _palLUT;
|
||||||
|
}
|
||||||
|
|
||||||
void Video::freeDriver() {
|
void Video::freeDriver() {
|
||||||
delete _videoDriver;
|
delete _videoDriver;
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,11 @@ public:
|
||||||
int8 bitWidth;
|
int8 bitWidth;
|
||||||
byte *extraData;
|
byte *extraData;
|
||||||
FontDesc() : dataPtr(0), itemWidth(0), itemHeight(0), startItem(0),
|
FontDesc() : dataPtr(0), itemWidth(0), itemHeight(0), startItem(0),
|
||||||
endItem(0), itemSize(0), bitWidth(0) {}
|
endItem(0), itemSize(0), bitWidth(0) {}
|
||||||
|
~FontDesc() {
|
||||||
|
if (dataPtr)
|
||||||
|
delete[] (dataPtr - 4);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#define GDR_VERSION 4
|
#define GDR_VERSION 4
|
||||||
|
@ -177,7 +181,7 @@ public:
|
||||||
virtual void init() { }
|
virtual void init() { }
|
||||||
|
|
||||||
Video(class GobEngine *vm);
|
Video(class GobEngine *vm);
|
||||||
virtual ~Video() {}
|
virtual ~Video();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
class VideoDriver *_videoDriver;
|
class VideoDriver *_videoDriver;
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
|
|
||||||
#include "gob/gob.h"
|
#include "gob/gob.h"
|
||||||
#include "gob/video.h"
|
#include "gob/video.h"
|
||||||
|
#include "gob/util.h"
|
||||||
#include "gob/indeo3.h"
|
#include "gob/indeo3.h"
|
||||||
|
|
||||||
namespace Gob {
|
namespace Gob {
|
||||||
|
@ -40,10 +41,11 @@ void Video_v6::init() {
|
||||||
initOSD();
|
initOSD();
|
||||||
|
|
||||||
char text[30];
|
char text[30];
|
||||||
for (int i = 0; i < 64; i++) {
|
for (int i = 0; (i < 64) && !_vm->shouldQuit(); i++) {
|
||||||
sprintf(text, "Building palette table: %02d/63", i);
|
sprintf(text, "Building palette table: %02d/63", i);
|
||||||
drawOSDText(text);
|
drawOSDText(text);
|
||||||
_palLUT->buildNext();
|
_palLUT->buildNext();
|
||||||
|
_vm->_util->processInput();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,6 +155,8 @@ void Video_v6::drawYUV(SurfaceDesc *destDesc, int16 x, int16 y,
|
||||||
dither->nextLine();
|
dither->nextLine();
|
||||||
vidMem += destDesc->getWidth();
|
vidMem += destDesc->getWidth();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete dither;
|
||||||
}
|
}
|
||||||
|
|
||||||
const byte Video_v6::_ditherPalette[768] = {
|
const byte Video_v6::_ditherPalette[768] = {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue