diff options
author | yinsimei | 2017-05-29 07:51:40 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2017-07-13 18:27:45 +0200 |
commit | 2dddb900c9b6d4356a19886cd31587a049be23d8 (patch) | |
tree | 07f52c7d3a846c6b0d203812e3d0464c42036358 | |
parent | 6808650f3e17f57c2dc2424c813f1f62a04ed03c (diff) | |
download | scummvm-rg350-2dddb900c9b6d4356a19886cd31587a049be23d8.tar.gz scummvm-rg350-2dddb900c9b6d4356a19886cd31587a049be23d8.tar.bz2 scummvm-rg350-2dddb900c9b6d4356a19886cd31587a049be23d8.zip |
SLUDGE: Use PNGDecoder to read backdrop
-rw-r--r-- | engines/sludge/backdrop.cpp | 152 | ||||
-rw-r--r-- | engines/sludge/detection.cpp | 14 | ||||
-rw-r--r-- | engines/sludge/main_loop.cpp | 4 | ||||
-rw-r--r-- | engines/sludge/sludge.cpp | 1 | ||||
-rw-r--r-- | engines/sludge/sludge.h | 1 |
5 files changed, 100 insertions, 72 deletions
diff --git a/engines/sludge/backdrop.cpp b/engines/sludge/backdrop.cpp index 3e059978f8..c28a7d05fb 100644 --- a/engines/sludge/backdrop.cpp +++ b/engines/sludge/backdrop.cpp @@ -55,6 +55,10 @@ #include "statusba.h" #include "variable.h" #include "CommonCode/version.h" +#include "common/debug.h" +#include "image/png.h" +#include "graphics/surface.h" +#include "sludge.h" namespace Sludge { @@ -75,6 +79,8 @@ texture lightMap; GLuint snapshotTextureName = 0; #endif +Graphics::Surface backdropSurface; + float snapTexW = 1.0; float snapTexH = 1.0; @@ -110,7 +116,8 @@ void saveSnapshot(Common::WriteStream *stream) { bool snapshot() { nosnapshot(); - if (!freeze()) return false; + if (!freeze()) + return false; #if 0 setPixelCoords(true); glGenTextures(1, &snapshotTextureName); @@ -134,19 +141,19 @@ bool snapshot() { // Render scene glDepthMask(GL_TRUE); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// Clear The Screen glDepthMask(GL_FALSE); - drawBackDrop(); // Draw the room + drawBackDrop();// Draw the room drawZBuffer(cameraX, cameraY, false); glEnable(GL_DEPTH_TEST); - drawPeople(); // Then add any moving characters... + drawPeople();// Then add any moving characters... glDisable(GL_DEPTH_TEST); - viewSpeech(); // ...and anything being said + viewSpeech();// ...and anything being said drawStatusBar(); // Copy Our ViewPort To The Texture copyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, viewportOffsetX, viewportOffsetY, winWidth, winHeight, snapshotTextureName); @@ -178,7 +185,7 @@ bool restoreSnapshot(Common::SeekableReadStream *stream) { if (!snapshotTexture) return fatal("Out of memory while restoring snapshot."); #endif - for (t2 = 0; t2 < winHeight; t2 ++) { + for (t2 = 0; t2 < winHeight; t2++) { t1 = 0; while (t1 < winWidth) { c = (unsigned short) get2bytes(stream); @@ -255,11 +262,11 @@ void killParallax() { bool reserveBackdrop() { cameraX = 0; cameraY = 0; - input.mouseX = (int)((float)input.mouseX * cameraZoom); - input.mouseY = (int)((float)input.mouseY * cameraZoom); + input.mouseX = (int) ((float) input.mouseX * cameraZoom); + input.mouseY = (int) ((float) input.mouseY * cameraZoom); cameraZoom = 1.0; - input.mouseX = (int)((float)input.mouseX / cameraZoom); - input.mouseY = (int)((float)input.mouseY / cameraZoom); + input.mouseX = (int) ((float) input.mouseX / cameraZoom); + input.mouseY = (int) ((float) input.mouseY / cameraZoom); setPixelCoords(false); int picWidth = sceneWidth; int picHeight = sceneHeight; @@ -304,8 +311,8 @@ bool resizeBackdrop(int x, int y) { } void loadBackDrop(int fileNum, int x, int y) { + debug(kSludgeDebugGraphics, "Load back drop"); setResourceForFatal(fileNum); -#if 0 if (!openFileFromNum(fileNum)) { fatal("Can't load overlay image"); return; @@ -318,7 +325,6 @@ void loadBackDrop(int fileNum, int x, int y) { } finishAccess(); -#endif setResourceForFatal(-1); } @@ -341,10 +347,14 @@ void mixBackDrop(int fileNum, int x, int y) { void blankScreen(int x1, int y1, int x2, int y2) { - if (y1 < 0) y1 = 0; - if (x1 < 0) x1 = 0; - if (x2 > (int) sceneWidth) x2 = (int)sceneWidth; - if (y2 > (int) sceneHeight) y2 = (int)sceneHeight; + if (y1 < 0) + y1 = 0; + if (x1 < 0) + x1 = 0; + if (x2 > (int) sceneWidth) + x2 = (int) sceneWidth; + if (y2 > (int) sceneHeight) + y2 = (int) sceneHeight; int picWidth = x2 - x1; int picHeight = y2 - y1; @@ -361,8 +371,6 @@ void blankScreen(int x1, int y1, int x2, int y2) { // Render the scene - - const GLfloat vertices[] = { -10.325f, -1.325f, 0.0f, w + 1.325f, -1.325f, 0.0f, @@ -396,7 +404,8 @@ void hardScroll(int distance) { return; } - if (!distance) return; + if (!distance) + return; #if 0 const GLfloat backdropTexCoords[] = { 0.0f, 0.0f, @@ -415,7 +424,6 @@ void hardScroll(int distance) { while (yoffset < sceneHeight) { int h = (sceneHeight - yoffset < viewportHeight) ? sceneHeight - yoffset : viewportHeight; - glClear(GL_COLOR_BUFFER_BIT); // Clear The Screen // Render the backdrop @@ -430,7 +438,6 @@ void hardScroll(int distance) { (GLfloat)sceneWidth - xoffset, (GLfloat)sceneHeight - distance - yoffset, 0. }; - glUseProgram(shader.texture); setPMVMatrix(shader.texture); @@ -463,11 +470,13 @@ void darkScreen() { int xoffset = 0; while (xoffset < sceneWidth) { - int w = (sceneWidth - xoffset < viewportWidth) ? sceneWidth - xoffset : viewportWidth; + int w = (sceneWidth - xoffset < viewportWidth) ? + sceneWidth - xoffset : viewportWidth; int yoffset = 0; while (yoffset < sceneHeight) { - int h = (sceneHeight - yoffset < viewportHeight) ? sceneHeight - yoffset : viewportHeight; + int h = (sceneHeight - yoffset < viewportHeight) ? + sceneHeight - yoffset : viewportHeight; // Render the scene - first the old backdrop #if 0 @@ -490,7 +499,6 @@ void darkScreen() { backdropTexW, backdropTexH }; - glUseProgram(shader.texture); setPMVMatrix(shader.texture); @@ -524,20 +532,14 @@ void darkScreen() { xoffset += w; } - setPixelCoords(false); } - - inline int sortOutPCamera(int cX, int fX, int sceneMax, int boxMax) { return (fX == 65535) ? - (sceneMax ? ((cX * boxMax) / sceneMax) : 0) - : - ((cX * fX) / 100); + (sceneMax ? ((cX * boxMax) / sceneMax) : 0) : ((cX * fX) / 100); } - void drawBackDrop() { #if 0 setPrimaryColor(1.0, 1.0, 1.0, 1.0); @@ -632,7 +634,6 @@ bool loadLightMap(int v) { png_structp png_ptr; png_infop info_ptr, end_info; - int fileIsPNG = true; // Is this a PNG file? @@ -669,8 +670,8 @@ bool loadLightMap(int v) { png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); return false; } - png_init_io(png_ptr, bigDataFile); // Tell libpng which file to read - png_set_sig_bytes(png_ptr, 8); // 8 bytes already read + png_init_io(png_ptr, bigDataFile); // Tell libpng which file to read + png_set_sig_bytes(png_ptr, 8);// 8 bytes already read png_read_info(png_ptr, info_ptr); @@ -730,7 +731,7 @@ bool loadLightMap(int v) { if (fileIsPNG) { unsigned char *row_pointers[lightMap.h]; for (int i = 0; i < lightMap.h; i++) - row_pointers[i] = lightMap.data + 4 * i * newPicWidth; + row_pointers[i] = lightMap.data + 4 * i * newPicWidth; png_read_image(png_ptr, (png_byte **) row_pointers); png_read_end(png_ptr, NULL); @@ -788,13 +789,13 @@ void reloadParallaxTextures() { glGenTextures(1, &nP->textureName); glBindTexture(GL_TEXTURE_2D, nP->textureName); if (nP->wrapS) - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); else - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); if (nP->wrapT) - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); else - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); if (gameSettings.antiAlias < 0) { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); @@ -815,7 +816,8 @@ void reloadParallaxTextures() { #endif } -bool loadParallax(unsigned short v, unsigned short fracX, unsigned short fracY) { +bool loadParallax(unsigned short v, unsigned short fracX, + unsigned short fracY) { #if 0 setResourceForFatal(v); @@ -839,7 +841,6 @@ bool loadParallax(unsigned short v, unsigned short fracX, unsigned short fracY) png_structp png_ptr; png_infop info_ptr, end_info; - int fileIsPNG = true; // Is this a PNG file? @@ -875,8 +876,8 @@ bool loadParallax(unsigned short v, unsigned short fracX, unsigned short fracY) png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); return false; } - png_init_io(png_ptr, bigDataFile); // Tell libpng which file to read - png_set_sig_bytes(png_ptr, 8); // 8 bytes already read + png_init_io(png_ptr, bigDataFile); // Tell libpng which file to read + png_set_sig_bytes(png_ptr, 8);// 8 bytes already read png_read_info(png_ptr, info_ptr); @@ -936,7 +937,7 @@ bool loadParallax(unsigned short v, unsigned short fracX, unsigned short fracY) if (fileIsPNG) { unsigned char *row_pointers[nP->height]; for (int i = 0; i < nP->height; i++) - row_pointers[i] = nP->texture + 4 * i * picWidth; + row_pointers[i] = nP->texture + 4 * i * picWidth; png_read_image(png_ptr, (png_byte **) row_pointers); png_read_end(png_ptr, NULL); @@ -979,13 +980,13 @@ bool loadParallax(unsigned short v, unsigned short fracX, unsigned short fracY) glGenTextures(1, &nP->textureName); glBindTexture(GL_TEXTURE_2D, nP->textureName); if (nP->wrapS) - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); else - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); if (nP->wrapT) - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); else - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); if (gameSettings.antiAlias < 0) { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); @@ -1005,8 +1006,16 @@ bool loadParallax(unsigned short v, unsigned short fracX, unsigned short fracY) extern int viewportOffsetX, viewportOffsetY; +bool loadPng(int &picWidth, int &picHeight, int &realPicWidth, int &realPicHeight, Common::SeekableReadStream *stream, bool reserve) { + debug("Loading back drop png."); + ::Image::PNGDecoder png; + if (!png.loadStream(*stream)) + return false; + backdropSurface.copyFrom(*(png.getSurface())); + picWidth = realPicWidth = backdropSurface.w; + picHeight = realPicHeight = backdropSurface.h; + return true; #if 0 -bool loadPng(GLubyte *loadhere, int &picWidth, int &picHeight, int &realPicWidth, int &realPicHeight, Common::SeekableReadStream *stream, bool reserve) { long file_pointer = stream->pos(); png_structp png_ptr; png_infop info_ptr, end_info; @@ -1041,7 +1050,7 @@ bool loadPng(GLubyte *loadhere, int &picWidth, int &picHeight, int &realPicWidth return false; } png_init_io(png_ptr, stream); // Tell libpng which file to read - png_set_sig_bytes(png_ptr, 8); // 8 bytes already read + png_set_sig_bytes(png_ptr, 8);// 8 bytes already read png_read_info(png_ptr, info_ptr); @@ -1069,14 +1078,16 @@ bool loadPng(GLubyte *loadhere, int &picWidth, int &picHeight, int &realPicWidth unsigned char *row_pointers[realPicHeight]; for (int i = 0; i < realPicHeight; i++) - row_pointers[i] = loadhere + 4 * i * picWidth; + row_pointers[i] = loadhere + 4 * i * picWidth; png_read_image(png_ptr, (png_byte **) row_pointers); png_read_end(png_ptr, NULL); png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); +#endif } -bool loadByteArray(GLubyte *loadhere, int &picWidth, int &picHeight, int &realPicWidth, int &realPicHeight, Common::SeekableReadStream *stream, bool reserve) { +bool loadByteArray(int &picWidth, int &picHeight, int &realPicWidth, int &realPicHeight, Common::SeekableReadStream *stream, bool reserve) { +#if 0 int32_t transCol = reserve ? -1 : 63519; int t1, t2, n; unsigned short c; @@ -1114,12 +1125,13 @@ bool loadByteArray(GLubyte *loadhere, int &picWidth, int &picHeight, int &realPi } } } +#endif } -bool loadImage(GLubyte *loadhere, int &picWidth, int &picHeight, int &realPicWidth, int &realPicHeight, Common::SeekableReadStream *stream, int x, int y, bool reserve) { - - if (!loadPng(loadhere, picWidth, picHeight, realPicWidth, realPicHeight, stream, reserve)) { - if (!loadByteArray(loadhere, picWidth, picHeight, realPicWidth, realPicHeight, stream, reserve)) { +bool loadImage(int &picWidth, int &picHeight, int &realPicWidth, int &realPicHeight, Common::SeekableReadStream *stream, int x, int y, bool reserve) { + debug(kSludgeDebugGraphics, "Loading back drop image."); + if (!loadPng(picWidth, picHeight, realPicWidth, realPicHeight, stream, reserve)) { + if (!loadByteArray(picWidth, picHeight, realPicWidth, realPicHeight, stream, reserve)) { return false; } } @@ -1131,6 +1143,7 @@ bool loadImage(GLubyte *loadhere, int &picWidth, int &picHeight, int &realPicWid return true; } +#if 0 void makeGlArray(GLuint &tmpTex, const GLubyte *texture, int picWidth, int picHeight) { glGenTextures(1, &tmpTex); glBindTexture(GL_TEXTURE_2D, tmpTex); @@ -1215,7 +1228,7 @@ void renderToTexture(GLuint tmpTex, int x, int y, int picWidth, int picHeight, i glUseProgram(shader.paste); GLint uniform = glGetUniformLocation(shader.paste, "useLightTexture"); - if (uniform >= 0) glUniform1i(uniform, 0); // No lighting + if (uniform >= 0) glUniform1i(uniform, 0);// No lighting setPMVMatrix(shader.paste); @@ -1251,15 +1264,14 @@ void renderToTexture(GLuint tmpTex, int x, int y, int picWidth, int picHeight, i setPixelCoords(false); } #endif - bool loadHSI(Common::SeekableReadStream *stream, int x, int y, bool reserve) { -#if 0 + debug(kSludgeDebugGraphics, "Load HSI"); int picWidth, picHeight; int realPicWidth, realPicHeight; - if (!loadImage(backdropTexture, picWidth, picHeight, realPicWidth, realPicHeight, stream, x, y, reserve)) + if (!loadImage(picWidth, picHeight, realPicWidth, realPicHeight, stream, x, y, reserve)) return false; - +#if 0 GLuint tmpTex; makeGlArray(tmpTex, backdropTexture, picWidth, picHeight); @@ -1283,7 +1295,6 @@ bool mixHSI(Common::SeekableReadStream *stream, int x, int y) { png_structp png_ptr; png_infop info_ptr, end_info; - int fileIsPNG = true; // Is this a PNG file? @@ -1319,7 +1330,7 @@ bool mixHSI(Common::SeekableReadStream *stream, int x, int y) { return false; } png_init_io(png_ptr, stream); // Tell libpng which file to read - png_set_sig_bytes(png_ptr, 8); // 8 bytes already read + png_set_sig_bytes(png_ptr, 8);// 8 bytes already read png_read_info(png_ptr, info_ptr); @@ -1394,11 +1405,10 @@ bool mixHSI(Common::SeekableReadStream *stream, int x, int y) { GLubyte *target; int32_t transCol = 63519; - if (fileIsPNG) { unsigned char *row_pointers[realPicHeight]; for (int i = 0; i < realPicHeight; i++) - row_pointers[i] = backdropTexture + 4 * i * picWidth; + row_pointers[i] = backdropTexture + 4 * i * picWidth; png_read_image(png_ptr, (png_byte **) row_pointers); png_read_end(png_ptr, NULL); @@ -1449,12 +1459,10 @@ bool mixHSI(Common::SeekableReadStream *stream, int x, int y) { texImage2D(GL_TEXTURE_2D, 0, GL_RGBA, picWidth, picHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, backdropTexture, tmpTex); - //glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); setPixelCoords(true); - int xoffset = 0; while (xoffset < realPicWidth) { int w = (realPicWidth - xoffset < viewportWidth) ? realPicWidth - xoffset : viewportWidth; @@ -1473,7 +1481,7 @@ bool mixHSI(Common::SeekableReadStream *stream, int x, int y) { glUseProgram(shader.paste); GLint uniform = glGetUniformLocation(shader.paste, "useLightTexture"); - if (uniform >= 0) glUniform1i(uniform, 0); // No lighting + if (uniform >= 0) glUniform1i(uniform, 0);// No lighting setPMVMatrix(shader.paste); @@ -1566,7 +1574,7 @@ void saveCorePNG(Common::WriteStream *stream, GLuint texture, int w, int h) { glUseProgram(0); - for (int i = 0; i < h; i++) { + for (int i = 0; i < h; i++) { glReadPixels(viewportOffsetX, viewportOffsetY + i, w, 1, GL_RGBA, GL_UNSIGNED_BYTE, image + xoffset * 4 + (yoffset + i) * 4 * tw); } yoffset += viewportHeight; @@ -1592,7 +1600,7 @@ void saveCorePNG(Common::WriteStream *stream, GLuint texture, int w, int h) { png_init_io(png_ptr, writer); png_set_IHDR(png_ptr, info_ptr, w, h, - 8, PNG_COLOR_TYPE_RGBA, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); + 8, PNG_COLOR_TYPE_RGBA, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); unsigned char *row_pointers[h]; @@ -1650,7 +1658,7 @@ void saveCoreHSI(Common::WriteStream *stream, GLuint texture, int w, int h) { drawQuad(shader.texture, vertices, 1, texCoords); glUseProgram(0); - for (int i = 0; i < h; i++) { + for (int i = 0; i < h; i++) { glReadPixels(viewportOffsetX, viewportOffsetY + i, w, 1, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, image + xoffset + (yoffset + i)*tw); } yoffset += viewportHeight; @@ -1703,7 +1711,7 @@ void saveParallaxRecursive(parallaxLayer *me, Common::WriteStream *stream) { saveParallaxRecursive(me->next, stream); putch(1, stream); put2bytes(me->fileNum, stream); - put2bytes(me ->fractionX, stream); + put2bytes(me->fractionX, stream); put2bytes(me->fractionY, stream); } } diff --git a/engines/sludge/detection.cpp b/engines/sludge/detection.cpp index 7e5c124fa3..e45ada2197 100644 --- a/engines/sludge/detection.cpp +++ b/engines/sludge/detection.cpp @@ -44,6 +44,7 @@ static const PlainGameDescriptor sludgeGames[] = { { "sludge", "Sludge Game" }, { "welcome", "Welcome Example" }, { "welcome2", "Welcome Example 2" }, + { "welcomePng", "Welcome For PNG Test" }, { "verbcoin", "Verb Coin" }, { 0, 0 } }; @@ -78,6 +79,19 @@ static const SludgeGameDescription gameDescriptions[] = { { { + "welcomePng", + "", + AD_ENTRY1("Welcome.slg", "ff0d7ef0ce73b5503ef6b965928af6d6"), + Common::EN_ANY, + Common::kPlatformUnknown, + ADGF_NO_FLAGS, + GUIO0() + }, + 0 + }, + + { + { "verbcoin", "", AD_ENTRY1("Welcome.slg", "e39ec315dcbf3a1137481f0a5fe1617d"), diff --git a/engines/sludge/main_loop.cpp b/engines/sludge/main_loop.cpp index b278a35ec8..283a2282c1 100644 --- a/engines/sludge/main_loop.cpp +++ b/engines/sludge/main_loop.cpp @@ -74,6 +74,7 @@ #include "sludger.h" #include "graphics.h" #include "helpers.h" +#include "graphics/surface.h" namespace Sludge { @@ -97,6 +98,7 @@ extern float cameraZoom; extern int specialSettings; extern inputType input; extern variableStack *noStack; +extern Graphics::Surface backdropSurface; int dialogValue = 0; @@ -471,6 +473,8 @@ try walkAllPeople(); handleInput(); sludgeDisplay(); + g_system->copyRectToScreen(backdropSurface.getPixels(), backdropSurface.pitch, 0, 0, backdropSurface.w, backdropSurface.h); + g_system->updateScreen(); #if 0 Wait_Frame(); #endif diff --git a/engines/sludge/sludge.cpp b/engines/sludge/sludge.cpp index d0d6b37fea..ea9dc57afc 100644 --- a/engines/sludge/sludge.cpp +++ b/engines/sludge/sludge.cpp @@ -44,6 +44,7 @@ SludgeEngine::SludgeEngine(OSystem *syst, const SludgeGameDescription *gameDesc) DebugMan.addDebugChannel(kSludgeDebugDataLoad, "Data Load", "Data loading debug level"); DebugMan.addDebugChannel(kSludgeDebugStackMachine, "Stack Machine", "Stack Machine debug level"); DebugMan.addDebugChannel(kSludgeDebugBuiltin, "Built-in", "Built-in debug level"); + DebugMan.addDebugChannel(kSludgeDebugGraphics, "Graphics", "Graphics debug level"); // check init debug("SludgeEngine::SludgeEngine"); diff --git a/engines/sludge/sludge.h b/engines/sludge/sludge.h index 4570b046b8..734a85685b 100644 --- a/engines/sludge/sludge.h +++ b/engines/sludge/sludge.h @@ -41,6 +41,7 @@ enum { kSludgeDebugDataLoad = 1 << 1, kSludgeDebugStackMachine = 1 << 2, kSludgeDebugBuiltin = 1 << 3, + kSludgeDebugGraphics = 1 << 4 }; class SludgeEngine : public Engine { |