diff --git a/stella/src/cheat/BankRomCheat.cxx b/stella/src/cheat/BankRomCheat.cxx index 46322200d..d0439fd83 100644 --- a/stella/src/cheat/BankRomCheat.cxx +++ b/stella/src/cheat/BankRomCheat.cxx @@ -13,9 +13,10 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: BankRomCheat.cxx,v 1.3 2007-01-01 18:04:39 stephena Exp $ +// $Id: BankRomCheat.cxx,v 1.4 2007-09-03 18:37:19 stephena Exp $ //============================================================================ +#include "Console.hxx" #include "BankRomCheat.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/stella/src/cheat/CheatCodeDialog.cxx b/stella/src/cheat/CheatCodeDialog.cxx index bff2aecdd..c1c3fe413 100644 --- a/stella/src/cheat/CheatCodeDialog.cxx +++ b/stella/src/cheat/CheatCodeDialog.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: CheatCodeDialog.cxx,v 1.15 2007-08-17 16:12:50 stephena Exp $ +// $Id: CheatCodeDialog.cxx,v 1.16 2007-09-03 18:37:19 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -21,20 +21,19 @@ #include -#include "OSystem.hxx" -#include "Props.hxx" -#include "Widget.hxx" -#include "Dialog.hxx" -#include "DialogContainer.hxx" -#include "CheatCodeDialog.hxx" -#include "GuiUtils.hxx" -#include "CheckListWidget.hxx" -#include "CheatManager.hxx" -#include "InputTextDialog.hxx" -#include "StringList.hxx" - #include "bspf.hxx" +#include "CheatManager.hxx" +#include "CheckListWidget.hxx" +#include "DialogContainer.hxx" +#include "Dialog.hxx" +#include "InputTextDialog.hxx" +#include "OSystem.hxx" +#include "Props.hxx" +#include "StringList.hxx" +#include "Widget.hxx" + +#include "CheatCodeDialog.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CheatCodeDialog::CheatCodeDialog(OSystem* osystem, DialogContainer* parent, diff --git a/stella/src/cheat/CheatManager.cxx b/stella/src/cheat/CheatManager.cxx index d4162097c..6af2855b3 100644 --- a/stella/src/cheat/CheatManager.cxx +++ b/stella/src/cheat/CheatManager.cxx @@ -13,13 +13,15 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: CheatManager.cxx,v 1.14 2007-07-19 16:21:39 stephena Exp $ +// $Id: CheatManager.cxx,v 1.15 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #include #include "OSystem.hxx" +#include "Console.hxx" #include "Cheat.hxx" +#include "Settings.hxx" #include "CheetahCheat.hxx" #include "BankRomCheat.hxx" #include "RamCheat.hxx" diff --git a/stella/src/cheat/CheetahCheat.cxx b/stella/src/cheat/CheetahCheat.cxx index f22bdfedc..61958caef 100644 --- a/stella/src/cheat/CheetahCheat.cxx +++ b/stella/src/cheat/CheetahCheat.cxx @@ -13,9 +13,10 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: CheetahCheat.cxx,v 1.3 2007-01-01 18:04:39 stephena Exp $ +// $Id: CheetahCheat.cxx,v 1.4 2007-09-03 18:37:22 stephena Exp $ //============================================================================ +#include "Console.hxx" #include "CheetahCheat.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/stella/src/cheat/RamCheat.cxx b/stella/src/cheat/RamCheat.cxx index b1d888224..69f2acb01 100644 --- a/stella/src/cheat/RamCheat.cxx +++ b/stella/src/cheat/RamCheat.cxx @@ -13,9 +13,10 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: RamCheat.cxx,v 1.4 2007-01-01 18:04:39 stephena Exp $ +// $Id: RamCheat.cxx,v 1.5 2007-09-03 18:37:22 stephena Exp $ //============================================================================ +#include "Console.hxx" #include "System.hxx" #include "CheatManager.hxx" diff --git a/stella/src/common/FrameBufferGL.cxx b/stella/src/common/FrameBufferGL.cxx index b53e1627b..455c66c8c 100644 --- a/stella/src/common/FrameBufferGL.cxx +++ b/stella/src/common/FrameBufferGL.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBufferGL.cxx,v 1.89 2007-09-01 23:31:18 stephena Exp $ +// $Id: FrameBufferGL.cxx,v 1.90 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #ifdef DISPLAY_OPENGL @@ -22,14 +22,16 @@ #include #include +#include "bspf.hxx" + #include "Console.hxx" -#include "FrameBuffer.hxx" -#include "FrameBufferGL.hxx" -#include "MediaSrc.hxx" -#include "Settings.hxx" -#include "OSystem.hxx" #include "Font.hxx" -#include "GuiUtils.hxx" +#include "MediaSrc.hxx" +#include "OSystem.hxx" +#include "Settings.hxx" +#include "Surface.hxx" + +#include "FrameBufferGL.hxx" // There's probably a cleaner way of doing this // These values come from SDL_video.c @@ -219,7 +221,7 @@ bool FrameBufferGL::initSubsystem(VideoMode mode) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -string FrameBufferGL::about() +string FrameBufferGL::about() const { string extensions; if(myHaveTexRectEXT) extensions += "GL_TEXTURE_RECTANGLE_ARB "; @@ -454,7 +456,7 @@ void FrameBufferGL::postFrameUpdate() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FrameBufferGL::scanline(uInt32 row, uInt8* data) +void FrameBufferGL::scanline(uInt32 row, uInt8* data) const { // Invert the row, since OpenGL rows start at the bottom // of the framebuffer @@ -515,8 +517,7 @@ void FrameBufferGL::vLine(uInt32 x, uInt32 y, uInt32 y2, int color) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FrameBufferGL::fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, - int color) +void FrameBufferGL::fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int color) { // Fill the rectangle SDL_Rect tmp; @@ -578,28 +579,30 @@ void FrameBufferGL::drawBitmap(uInt32* bitmap, Int32 tx, Int32 ty, } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FrameBufferGL::drawSurface(SDL_Surface* surface, Int32 x, Int32 y) +void FrameBufferGL::drawSurface(const GUI::Surface* surface, Int32 x, Int32 y) { SDL_Rect clip; clip.x = x; clip.y = y; - SDL_BlitSurface(surface, 0, myTexture, &clip); + SDL_BlitSurface(surface->myData, 0, myTexture, &clip); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FrameBufferGL::convertToSurface(SDL_Surface* surface, int row, - uInt8* data, int rowsize) const +void FrameBufferGL::bytesToSurface(GUI::Surface* surface, int row, + uInt8* data) const { - uInt16* pixels = (uInt16*) surface->pixels; - pixels += (row * surface->pitch/2); + SDL_Surface* s = surface->myData; + uInt16* pixels = (uInt16*) s->pixels; + pixels += (row * s->pitch/2); + int rowsize = surface->getWidth() * 3; for(int c = 0; c < rowsize; c += 3) - *pixels++ = SDL_MapRGB(surface->format, data[c], data[c+1], data[c+2]); + *pixels++ = SDL_MapRGB(s->format, data[c], data[c+1], data[c+2]); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FrameBufferGL::translateCoords(Int32& x, Int32& y) +void FrameBufferGL::translateCoords(Int32& x, Int32& y) const { // Wow, what a mess :) x = (Int32) ((x - myImageDim.x) / myWidthScaleFactor); @@ -722,14 +725,14 @@ bool FrameBufferGL::createTextures() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SDL_Surface* FrameBufferGL::cloneSurface(int width, int height) +GUI::Surface* FrameBufferGL::createSurface(int width, int height) const { SDL_PixelFormat* fmt = myTexture->format; - SDL_Surface* surface = + SDL_Surface* data = SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, 16, fmt->Rmask, fmt->Gmask, fmt->Bmask, fmt->Amask); - return surface; + return data ? new GUI::Surface(width, height, data) : NULL; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/stella/src/common/FrameBufferGL.hxx b/stella/src/common/FrameBufferGL.hxx index 4ca4364da..196773025 100644 --- a/stella/src/common/FrameBufferGL.hxx +++ b/stella/src/common/FrameBufferGL.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBufferGL.hxx,v 1.46 2007-09-01 23:31:18 stephena Exp $ +// $Id: FrameBufferGL.hxx,v 1.47 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #ifndef FRAMEBUFFER_GL_HXX @@ -29,14 +29,13 @@ class OSystem; class GUI::Font; #include "bspf.hxx" -#include "GuiUtils.hxx" #include "FrameBuffer.hxx" /** This class implements an SDL OpenGL framebuffer. @author Stephen Anthony - @version $Id: FrameBufferGL.hxx,v 1.46 2007-09-01 23:31:18 stephena Exp $ + @version $Id: FrameBufferGL.hxx,v 1.47 2007-09-03 18:37:22 stephena Exp $ */ class FrameBufferGL : public FrameBuffer { @@ -67,46 +66,46 @@ class FrameBufferGL : public FrameBuffer This method is called to initialize OpenGL video mode. Return false if any operation fails, otherwise return true. */ - virtual bool initSubsystem(VideoMode mode); + bool initSubsystem(VideoMode mode); /** This method is called to query the type of the FrameBuffer. */ - virtual BufferType type() { return kGLBuffer; } + BufferType type() const { return kGLBuffer; } /** This method is called to provide information about the FrameBuffer. */ - virtual string about(); + string about() const; /** This method is called to change to the given video mode. @param mode The mode to use for rendering the mediasource */ - virtual bool setVidMode(VideoMode mode); + bool setVidMode(VideoMode mode); /** Switches between the two filtering options in OpenGL. Currently, these are GL_NEAREST and GL_LINEAR. */ - virtual void toggleFilter(); + void toggleFilter(); /** This method should be called anytime the MediaSource needs to be redrawn to the screen. */ - virtual void drawMediaSource(); + void drawMediaSource(); /** This method is called before any drawing is done (per-frame). */ - virtual void preFrameUpdate(); + void preFrameUpdate(); /** This method is called after any drawing is done (per-frame). */ - virtual void postFrameUpdate(); + void postFrameUpdate(); /** This method is called to get the specified scanline data. @@ -114,7 +113,7 @@ class FrameBufferGL : public FrameBuffer @param row The row we are looking for @param data The actual pixel data (in bytes) */ - virtual void scanline(uInt32 row, uInt8* data); + void scanline(uInt32 row, uInt8* data) const; /** This method is called to map a given r,g,b triple to the screen palette. @@ -123,7 +122,7 @@ class FrameBufferGL : public FrameBuffer @param g The green component of the color. @param b The blue component of the color. */ - virtual Uint32 mapRGB(Uint8 r, Uint8 g, Uint8 b) + Uint32 mapRGB(Uint8 r, Uint8 g, Uint8 b) const { return SDL_MapRGB(myTexture->format, r, g, b); } /** @@ -133,7 +132,7 @@ class FrameBufferGL : public FrameBuffer @param width The requested width of the new surface. @param height The requested height of the new surface. */ - virtual SDL_Surface* cloneSurface(int width, int height); + GUI::Surface* createSurface(int width, int height) const; /** This method is called to draw a horizontal line. @@ -143,7 +142,7 @@ class FrameBufferGL : public FrameBuffer @param x2 The second x coordinate @param color The color of the line */ - virtual void hLine(uInt32 x, uInt32 y, uInt32 x2, int color); + void hLine(uInt32 x, uInt32 y, uInt32 x2, int color); /** This method is called to draw a vertical line. @@ -153,7 +152,7 @@ class FrameBufferGL : public FrameBuffer @param y2 The second y coordinate @param color The color of the line */ - virtual void vLine(uInt32 x, uInt32 y, uInt32 y2, int color); + void vLine(uInt32 x, uInt32 y, uInt32 y2, int color); /** This method is called to draw a filled rectangle. @@ -164,8 +163,7 @@ class FrameBufferGL : public FrameBuffer @param h The height of the area @param color The color of the area */ - virtual void fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, - int color); + void fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int color); /** This method is called to draw the specified character. @@ -176,8 +174,7 @@ class FrameBufferGL : public FrameBuffer @param y The y coordinate @param color The color of the character */ - virtual void drawChar(const GUI::Font* font, uInt8 c, uInt32 x, uInt32 y, - int color); + void drawChar(const GUI::Font* font, uInt8 c, uInt32 x, uInt32 y, int color); /** This method is called to draw the bitmap image. @@ -188,8 +185,7 @@ class FrameBufferGL : public FrameBuffer @param color The color of the character @param h The height of the data image */ - virtual void drawBitmap(uInt32* bitmap, Int32 x, Int32 y, int color, - Int32 h = 8); + void drawBitmap(uInt32* bitmap, Int32 x, Int32 y, int color, Int32 h = 8); /** This method should be called to draw an SDL surface. @@ -198,7 +194,7 @@ class FrameBufferGL : public FrameBuffer @param x The x coordinate @param y The y coordinate */ - virtual void drawSurface(SDL_Surface* surface, Int32 x, Int32 y); + void drawSurface(const GUI::Surface* surface, Int32 x, Int32 y); /** This method should be called to convert and copy a given row of RGB @@ -207,10 +203,8 @@ class FrameBufferGL : public FrameBuffer @param surface The data to draw @param row The row of the surface the data should be placed in @param data The data in uInt8 R/G/B format - @param rowsize The number of R/G/B triples in a data row */ - virtual void convertToSurface(SDL_Surface* surface, int row, - uInt8* data, int rowsize) const; + void bytesToSurface(GUI::Surface* surface, int row, uInt8* data) const; /** This method translates the given coordinates to their @@ -219,7 +213,7 @@ class FrameBufferGL : public FrameBuffer @param x X coordinate to translate @param y Y coordinate to translate */ - inline virtual void translateCoords(Int32& x, Int32& y); + void translateCoords(Int32& x, Int32& y) const; /** This method adds a dirty rectangle @@ -230,12 +224,12 @@ class FrameBufferGL : public FrameBuffer @param w The width of the area @param h The height of the area */ - virtual void addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h); + void addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h); /** Enable/disable phosphor effect. */ - virtual void enablePhosphor(bool enable, int blend); + void enablePhosphor(bool enable, int blend); private: bool createTextures(); diff --git a/stella/src/common/FrameBufferSoft.cxx b/stella/src/common/FrameBufferSoft.cxx index 6ec792e49..263434b60 100644 --- a/stella/src/common/FrameBufferSoft.cxx +++ b/stella/src/common/FrameBufferSoft.cxx @@ -13,19 +13,22 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBufferSoft.cxx,v 1.72 2007-09-01 23:31:18 stephena Exp $ +// $Id: FrameBufferSoft.cxx,v 1.73 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #include #include +#include "bspf.hxx" + #include "Console.hxx" -#include "MediaSrc.hxx" -#include "Settings.hxx" -#include "OSystem.hxx" #include "Font.hxx" -#include "GuiUtils.hxx" +#include "MediaSrc.hxx" +#include "OSystem.hxx" #include "RectList.hxx" +#include "Settings.hxx" +#include "Surface.hxx" + #include "FrameBufferSoft.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -63,7 +66,7 @@ bool FrameBufferSoft::initSubsystem(VideoMode mode) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -string FrameBufferSoft::about() +string FrameBufferSoft::about() const { ostringstream buf; @@ -399,7 +402,7 @@ cerr << "FrameBufferSoft::postFrameUpdate()" << endl } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FrameBufferSoft::scanline(uInt32 row, uInt8* data) +void FrameBufferSoft::scanline(uInt32 row, uInt8* data) const { // Make sure no pixels are being modified SDL_LockSurface(myScreen); @@ -480,8 +483,7 @@ void FrameBufferSoft::vLine(uInt32 x, uInt32 y, uInt32 y2, int color) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FrameBufferSoft::fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, - int color) +void FrameBufferSoft::fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int color) { SDL_Rect tmp; @@ -636,23 +638,46 @@ void FrameBufferSoft::drawBitmap(uInt32* bitmap, Int32 xorig, Int32 yorig, } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FrameBufferSoft::drawSurface(SDL_Surface* surface, Int32 x, Int32 y) +void FrameBufferSoft::drawSurface(const GUI::Surface* surface, Int32 x, Int32 y) { SDL_Rect clip; - clip.x = x; - clip.y = y; + clip.x = x * myZoomLevel + myImageDim.x; + clip.y = y * myZoomLevel + myImageDim.y; - SDL_BlitSurface(surface, 0, myScreen, &clip); + SDL_BlitSurface(surface->myData, 0, myScreen, &clip); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FrameBufferSoft::convertToSurface(SDL_Surface* surface, int row, - uInt8* data, int rowsize) const +void FrameBufferSoft::bytesToSurface(GUI::Surface* surface, int row, + uInt8* data) const { + SDL_Surface* s = surface->myData; + int rowsize = s->w * 3; + + switch(myBytesPerPixel) + { + case 2: + { + uInt16* pixels = (uInt16*) s->pixels; + pixels += (row * s->pitch/2); + + for(int c = 0; c < rowsize/myZoomLevel; c += 3) + { + uInt32 pixel = SDL_MapRGB(s->format, data[c], data[c+1], data[c+2]); + uInt32 xstride = myZoomLevel; + while(xstride--) + *pixels++ = pixel; + } + break; + } + + default: + break; + } } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FrameBufferSoft::translateCoords(Int32& x, Int32& y) +void FrameBufferSoft::translateCoords(Int32& x, Int32& y) const { x = (x - myImageDim.x) / myZoomLevel; y = (y - myImageDim.y) / myZoomLevel; @@ -727,12 +752,12 @@ void FrameBufferSoft::stateChanged(EventHandler::State state) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SDL_Surface* FrameBufferSoft::cloneSurface(int width, int height) +GUI::Surface* FrameBufferSoft::createSurface(int width, int height) const { - SDL_Surface* surface = - SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, myBytesPerPixel << 3, - myFormat->Rmask, myFormat->Gmask, myFormat->Bmask, - myFormat->Amask); + SDL_Surface* data = + SDL_CreateRGBSurface(SDL_SWSURFACE, width*myZoomLevel, height*myZoomLevel, + myBytesPerPixel << 3, myFormat->Rmask, myFormat->Gmask, + myFormat->Bmask, myFormat->Amask); - return surface; + return data ? new GUI::Surface(width, height, data) : NULL; } diff --git a/stella/src/common/FrameBufferSoft.hxx b/stella/src/common/FrameBufferSoft.hxx index 2c5891731..0379a8314 100644 --- a/stella/src/common/FrameBufferSoft.hxx +++ b/stella/src/common/FrameBufferSoft.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBufferSoft.hxx,v 1.47 2007-09-01 23:31:18 stephena Exp $ +// $Id: FrameBufferSoft.hxx,v 1.48 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #ifndef FRAMEBUFFER_SOFT_HXX @@ -33,7 +33,7 @@ class RectList; This class implements an SDL software framebuffer. @author Stephen Anthony - @version $Id: FrameBufferSoft.hxx,v 1.47 2007-09-01 23:31:18 stephena Exp $ + @version $Id: FrameBufferSoft.hxx,v 1.48 2007-09-03 18:37:22 stephena Exp $ */ class FrameBufferSoft : public FrameBuffer { @@ -55,46 +55,46 @@ class FrameBufferSoft : public FrameBuffer This method is called to initialize software video mode. Return false if any operation fails, otherwise return true. */ - virtual bool initSubsystem(VideoMode mode); + bool initSubsystem(VideoMode mode); /** This method is called to query the type of the FrameBuffer. */ - virtual BufferType type() { return kSoftBuffer; } + BufferType type() const { return kSoftBuffer; } /** This method is called to provide information about the FrameBuffer. */ - virtual string about(); + string about() const; /** This method is called to change to the given videomode type. @param mode The video mode to use for rendering the mediasource */ - virtual bool setVidMode(VideoMode mode); + bool setVidMode(VideoMode mode); /** Switches between the filtering options in software mode. Currently, none exist. */ - virtual void toggleFilter(); + void toggleFilter(); /** This method should be called anytime the MediaSource needs to be redrawn to the screen. */ - virtual void drawMediaSource(); + void drawMediaSource(); /** This method is called before any drawing is done (per-frame). */ - virtual void preFrameUpdate(); + void preFrameUpdate(); /** This method is called after any drawing is done (per-frame). */ - virtual void postFrameUpdate(); + void postFrameUpdate(); /** This method is called to get the specified scanline data. @@ -102,7 +102,7 @@ class FrameBufferSoft : public FrameBuffer @param row The row we are looking for @param data The actual pixel data (in bytes) */ - virtual void scanline(uInt32 row, uInt8* data); + void scanline(uInt32 row, uInt8* data) const; /** This method is called to map a given r,g,b triple to the screen palette. @@ -111,7 +111,7 @@ class FrameBufferSoft : public FrameBuffer @param g The green component of the color. @param b The blue component of the color. */ - virtual Uint32 mapRGB(Uint8 r, Uint8 g, Uint8 b) + Uint32 mapRGB(Uint8 r, Uint8 g, Uint8 b) const { return SDL_MapRGB(myScreen->format, r, g, b); } /** @@ -121,7 +121,7 @@ class FrameBufferSoft : public FrameBuffer @param width The requested width of the new surface. @param height The requested height of the new surface. */ - virtual SDL_Surface* cloneSurface(int width, int height); + GUI::Surface* createSurface(int width, int height) const; /** This method is called to draw a horizontal line. @@ -131,7 +131,7 @@ class FrameBufferSoft : public FrameBuffer @param x2 The second x coordinate @param color The color of the line */ - virtual void hLine(uInt32 x, uInt32 y, uInt32 x2, int color); + void hLine(uInt32 x, uInt32 y, uInt32 x2, int color); /** This method is called to draw a vertical line. @@ -141,7 +141,7 @@ class FrameBufferSoft : public FrameBuffer @param y2 The second y coordinate @param color The color of the line */ - virtual void vLine(uInt32 x, uInt32 y, uInt32 y2, int color); + void vLine(uInt32 x, uInt32 y, uInt32 y2, int color); /** This method is called to draw a filled rectangle. @@ -152,8 +152,7 @@ class FrameBufferSoft : public FrameBuffer @param h The height of the area @param color The color of the area */ - virtual void fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, - int color); + void fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int color); /** This method is called to draw the specified character. @@ -164,8 +163,7 @@ class FrameBufferSoft : public FrameBuffer @param y The y coordinate @param color The color of the character */ - virtual void drawChar(const GUI::Font* font, uInt8 c, uInt32 x, uInt32 y, - int color); + void drawChar(const GUI::Font* font, uInt8 c, uInt32 x, uInt32 y, int color); /** This method is called to draw the bitmap image. @@ -176,8 +174,7 @@ class FrameBufferSoft : public FrameBuffer @param color The color of the character @param h The height of the data image */ - virtual void drawBitmap(uInt32* bitmap, Int32 x, Int32 y, int color, - Int32 h = 8); + void drawBitmap(uInt32* bitmap, Int32 x, Int32 y, int color, Int32 h = 8); /** This method should be called to draw an SDL surface. @@ -186,7 +183,7 @@ class FrameBufferSoft : public FrameBuffer @param x The x coordinate @param y The y coordinate */ - virtual void drawSurface(SDL_Surface* surface, Int32 x, Int32 y); + void drawSurface(const GUI::Surface* surface, Int32 x, Int32 y); /** This method should be called to convert and copy a given row of RGB @@ -195,10 +192,8 @@ class FrameBufferSoft : public FrameBuffer @param surface The data to draw @param row The row of the surface the data should be placed in @param data The data in uInt8 R/G/B format - @param rowsize The number of R/G/B triples in a data row */ - virtual void convertToSurface(SDL_Surface* surface, int row, - uInt8* data, int rowsize) const; + void bytesToSurface(GUI::Surface* surface, int row, uInt8* data) const; /** This method translates the given coordinates to their @@ -207,7 +202,7 @@ class FrameBufferSoft : public FrameBuffer @param x X coordinate to translate @param y Y coordinate to translate */ - virtual void translateCoords(Int32& x, Int32& y); + void translateCoords(Int32& x, Int32& y) const; /** This method adds a dirty rectangle @@ -218,17 +213,17 @@ class FrameBufferSoft : public FrameBuffer @param w The width of the area @param h The height of the area */ - virtual void addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h); + void addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h); /** Enable/disable phosphor effect. */ - virtual void enablePhosphor(bool enable, int blend); + void enablePhosphor(bool enable, int blend); /** Informs the Framebuffer of a change in EventHandler state. */ - virtual void stateChanged(EventHandler::State state); + void stateChanged(EventHandler::State state); private: int myZoomLevel; diff --git a/stella/src/common/mainSDL.cxx b/stella/src/common/mainSDL.cxx index 9541580e1..04df10c22 100644 --- a/stella/src/common/mainSDL.cxx +++ b/stella/src/common/mainSDL.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: mainSDL.cxx,v 1.75 2007-08-25 23:57:35 stephena Exp $ +// $Id: mainSDL.cxx,v 1.76 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #include @@ -156,6 +156,15 @@ int main(int argc, char* argv[]) theOSystem->createLauncher(); else if(theOSystem->createConsole(romfile)) { + if(theOSystem->settings().getBool("takesnapshot")) + { + for(int i = 0; i < 60; ++i) theOSystem->frameBuffer().update(); + theOSystem->console().system().reset(); + theOSystem->eventHandler().takeSnapshot(); + Cleanup(); + return 0; + } + if(theOSystem->settings().getBool("holdreset")) theOSystem->eventHandler().handleEvent(Event::ConsoleReset, 1); diff --git a/stella/src/debugger/Debugger.cxx b/stella/src/debugger/Debugger.cxx index c0affdcea..45d8dad4a 100644 --- a/stella/src/debugger/Debugger.cxx +++ b/stella/src/debugger/Debugger.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: Debugger.cxx,v 1.114 2007-08-15 17:43:51 stephena Exp $ +// $Id: Debugger.cxx,v 1.115 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #include "bspf.hxx" @@ -26,6 +26,7 @@ #include "Version.hxx" #include "OSystem.hxx" #include "FrameBuffer.hxx" +#include "Settings.hxx" #include "DebuggerDialog.hxx" #include "DebuggerParser.hxx" diff --git a/stella/src/debugger/gui/AudioWidget.cxx b/stella/src/debugger/gui/AudioWidget.cxx index 77d5f58da..dc21e4e4b 100644 --- a/stella/src/debugger/gui/AudioWidget.cxx +++ b/stella/src/debugger/gui/AudioWidget.cxx @@ -13,19 +13,19 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: AudioWidget.cxx,v 1.5 2007-01-01 18:04:42 stephena Exp $ +// $Id: AudioWidget.cxx,v 1.6 2007-09-03 18:37:22 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project //============================================================================ -#include "OSystem.hxx" +#include "DataGridWidget.hxx" #include "FrameBuffer.hxx" -#include "GuiUtils.hxx" #include "GuiObject.hxx" +#include "OSystem.hxx" #include "TIADebug.hxx" #include "Widget.hxx" -#include "DataGridWidget.hxx" + #include "AudioWidget.hxx" // ID's for the various widgets diff --git a/stella/src/debugger/gui/ColorWidget.cxx b/stella/src/debugger/gui/ColorWidget.cxx index 603af2cff..5b3a03fd9 100644 --- a/stella/src/debugger/gui/ColorWidget.cxx +++ b/stella/src/debugger/gui/ColorWidget.cxx @@ -13,18 +13,19 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: ColorWidget.cxx,v 1.6 2007-01-01 18:04:43 stephena Exp $ +// $Id: ColorWidget.cxx,v 1.7 2007-09-03 18:37:22 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project //============================================================================ -#include "OSystem.hxx" -#include "FrameBuffer.hxx" -#include "Command.hxx" -#include "GuiObject.hxx" #include "bspf.hxx" -#include "GuiUtils.hxx" + +#include "Command.hxx" +#include "FrameBuffer.hxx" +#include "GuiObject.hxx" +#include "OSystem.hxx" + #include "ColorWidget.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/stella/src/debugger/gui/ContextMenu.hxx b/stella/src/debugger/gui/ContextMenu.hxx index b1808b811..8df26afd6 100644 --- a/stella/src/debugger/gui/ContextMenu.hxx +++ b/stella/src/debugger/gui/ContextMenu.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: ContextMenu.hxx,v 1.5 2007-01-01 18:04:43 stephena Exp $ +// $Id: ContextMenu.hxx,v 1.6 2007-09-03 18:37:22 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -22,12 +22,12 @@ #ifndef CONTEXT_MENU_HXX #define CONTEXT_MENU_HXX -#include "Dialog.hxx" -#include "Command.hxx" -#include "Array.hxx" -#include "GuiUtils.hxx" #include "bspf.hxx" +#include "Array.hxx" +#include "Command.hxx" +#include "Dialog.hxx" + enum { kCMenuItemSelectedCmd = 'CMsl' }; diff --git a/stella/src/debugger/gui/CpuWidget.cxx b/stella/src/debugger/gui/CpuWidget.cxx index 78c2de648..6bb3a597c 100644 --- a/stella/src/debugger/gui/CpuWidget.cxx +++ b/stella/src/debugger/gui/CpuWidget.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: CpuWidget.cxx,v 1.8 2007-01-01 18:04:43 stephena Exp $ +// $Id: CpuWidget.cxx,v 1.9 2007-09-03 18:37:22 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -22,7 +22,6 @@ #include #include "OSystem.hxx" -#include "GuiUtils.hxx" #include "GuiObject.hxx" #include "Debugger.hxx" #include "CpuDebug.hxx" diff --git a/stella/src/debugger/gui/RamWidget.cxx b/stella/src/debugger/gui/RamWidget.cxx index 2bb69ca84..7320dd5e4 100644 --- a/stella/src/debugger/gui/RamWidget.cxx +++ b/stella/src/debugger/gui/RamWidget.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: RamWidget.cxx,v 1.12 2007-08-17 16:12:50 stephena Exp $ +// $Id: RamWidget.cxx,v 1.13 2007-09-03 18:37:22 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -21,15 +21,15 @@ #include -#include "OSystem.hxx" +#include "DataGridWidget.hxx" +#include "EditTextWidget.hxx" #include "FrameBuffer.hxx" -#include "GuiUtils.hxx" #include "GuiObject.hxx" #include "InputTextDialog.hxx" -#include "Widget.hxx" -#include "EditTextWidget.hxx" -#include "DataGridWidget.hxx" +#include "OSystem.hxx" #include "RamDebug.hxx" +#include "Widget.hxx" + #include "RamWidget.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/stella/src/debugger/gui/TiaWidget.cxx b/stella/src/debugger/gui/TiaWidget.cxx index 4e82194fb..df36d5e5c 100644 --- a/stella/src/debugger/gui/TiaWidget.cxx +++ b/stella/src/debugger/gui/TiaWidget.cxx @@ -13,23 +13,23 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: TiaWidget.cxx,v 1.7 2007-01-01 18:04:44 stephena Exp $ +// $Id: TiaWidget.cxx,v 1.8 2007-09-03 18:37:22 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project //============================================================================ -#include "OSystem.hxx" -#include "FrameBuffer.hxx" -#include "GuiUtils.hxx" -#include "GuiObject.hxx" -#include "TIADebug.hxx" -#include "Widget.hxx" -#include "EditTextWidget.hxx" -#include "DataGridWidget.hxx" #include "ColorWidget.hxx" +#include "DataGridWidget.hxx" +#include "EditTextWidget.hxx" +#include "FrameBuffer.hxx" +#include "GuiObject.hxx" +#include "OSystem.hxx" +#include "TIADebug.hxx" #include "ToggleBitWidget.hxx" #include "TogglePixelWidget.hxx" +#include "Widget.hxx" + #include "TiaWidget.hxx" // ID's for the various widgets diff --git a/stella/src/debugger/gui/TiaZoomWidget.cxx b/stella/src/debugger/gui/TiaZoomWidget.cxx index b84011198..65d2e176a 100644 --- a/stella/src/debugger/gui/TiaZoomWidget.cxx +++ b/stella/src/debugger/gui/TiaZoomWidget.cxx @@ -13,13 +13,14 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: TiaZoomWidget.cxx,v 1.13 2007-08-15 17:43:51 stephena Exp $ +// $Id: TiaZoomWidget.cxx,v 1.14 2007-09-03 18:37:22 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project //============================================================================ #include "OSystem.hxx" +#include "Console.hxx" #include "FrameBuffer.hxx" #include "Widget.hxx" #include "GuiObject.hxx" diff --git a/stella/src/emucore/EventHandler.cxx b/stella/src/emucore/EventHandler.cxx index a891e5a81..49237d58f 100644 --- a/stella/src/emucore/EventHandler.cxx +++ b/stella/src/emucore/EventHandler.cxx @@ -14,34 +14,35 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: EventHandler.cxx,v 1.206 2007-08-15 19:14:49 stephena Exp $ +// $Id: EventHandler.cxx,v 1.207 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #include #include -#include "FSNode.hxx" -#include "Event.hxx" -#include "EventHandler.hxx" -#include "EventStreamer.hxx" -#include "FSNode.hxx" -#include "Settings.hxx" -#include "System.hxx" -#include "FrameBuffer.hxx" -#include "Sound.hxx" -#include "OSystem.hxx" -#include "DialogContainer.hxx" -#include "Menu.hxx" -#include "CommandMenu.hxx" -#include "Launcher.hxx" -#include "GuiUtils.hxx" -#include "Deserializer.hxx" -#include "Serializer.hxx" -#include "PropsSet.hxx" -#include "Snapshot.hxx" -#include "ScrollBarWidget.hxx" #include "bspf.hxx" +#include "CommandMenu.hxx" +#include "Console.hxx" +#include "Deserializer.hxx" +#include "DialogContainer.hxx" +#include "Event.hxx" +#include "EventStreamer.hxx" +#include "FrameBuffer.hxx" +#include "FSNode.hxx" +#include "Launcher.hxx" +#include "Menu.hxx" +#include "OSystem.hxx" +#include "PropsSet.hxx" +#include "ScrollBarWidget.hxx" +#include "Serializer.hxx" +#include "Settings.hxx" +#include "Snapshot.hxx" +#include "Sound.hxx" +#include "System.hxx" + +#include "EventHandler.hxx" + #ifdef CHEATCODE_SUPPORT #include "CheatManager.hxx" #endif @@ -995,6 +996,14 @@ void EventHandler::handleJoyHatEvent(int stick, int hat, int value) #endif } +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void EventHandler::handleResizeEvent() +{ + // For now, only the overlay cares about resize events + if(myOverlay != NULL) + myOverlay->handleResizeEvent(); +} + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void EventHandler::handleEvent(Event::Type event, int state) { @@ -2121,7 +2130,8 @@ void EventHandler::takeSnapshot() if(sspath.length() > 0) if(sspath.substr(sspath.length()-1) != BSPF_PATH_SEPARATOR) sspath += BSPF_PATH_SEPARATOR; - sspath += myOSystem->console().properties().get(Cartridge_Name); + sspath += myOSystem->console().properties().get(Cartridge_Name) + "." + + myOSystem->console().properties().get(Cartridge_MD5); // Check whether we want multiple snapshots created if(!myOSystem->settings().getBool("sssingle")) diff --git a/stella/src/emucore/EventHandler.hxx b/stella/src/emucore/EventHandler.hxx index 7b2e52bfb..7221b38c1 100644 --- a/stella/src/emucore/EventHandler.hxx +++ b/stella/src/emucore/EventHandler.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: EventHandler.hxx,v 1.102 2007-02-22 02:15:46 stephena Exp $ +// $Id: EventHandler.hxx,v 1.103 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #ifndef EVENTHANDLER_HXX @@ -21,19 +21,19 @@ #include -#include "bspf.hxx" -#include "Event.hxx" -#include "Array.hxx" -#include "Control.hxx" -#include "StringList.hxx" -#include "Serializer.hxx" - class Console; class OSystem; class DialogContainer; class EventMappingWidget; class EventStreamer; +#include "Array.hxx" +#include "Event.hxx" +#include "Control.hxx" +#include "StringList.hxx" +#include "bspf.hxx" + + enum MouseButton { EVENT_LBUTTONDOWN, EVENT_LBUTTONUP, @@ -62,7 +62,7 @@ enum EventMode { mapping can take place. @author Stephen Anthony - @version $Id: EventHandler.hxx,v 1.102 2007-02-22 02:15:46 stephena Exp $ + @version $Id: EventHandler.hxx,v 1.103 2007-09-03 18:37:22 stephena Exp $ */ class EventHandler { @@ -253,6 +253,12 @@ class EventHandler void leaveMenuMode(); bool enterDebugMode(); void leaveDebugMode(); + void takeSnapshot(); + + /** + Send a resize event to the handler. + */ + void handleResizeEvent(); /** Send an event directly to the event handler. @@ -451,7 +457,6 @@ class EventHandler void saveState(); void changeState(bool show = true); void loadState(); - void takeSnapshot(); void setEventState(State state); private: diff --git a/stella/src/emucore/EventStreamer.cxx b/stella/src/emucore/EventStreamer.cxx index 7f2888104..ba9775476 100644 --- a/stella/src/emucore/EventStreamer.cxx +++ b/stella/src/emucore/EventStreamer.cxx @@ -13,16 +13,17 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: EventStreamer.cxx,v 1.8 2007-01-01 18:04:48 stephena Exp $ +// $Id: EventStreamer.cxx,v 1.9 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #include "bspf.hxx" -#include "OSystem.hxx" -#include "Event.hxx" +#include "Console.hxx" #include "EventHandler.hxx" -#include "EventStreamer.hxx" +#include "Event.hxx" +#include "OSystem.hxx" #include "System.hxx" +#include "EventStreamer.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EventStreamer::EventStreamer(OSystem* osystem) diff --git a/stella/src/emucore/FSNode.cxx b/stella/src/emucore/FSNode.cxx index a29851c5b..a1f60b894 100644 --- a/stella/src/emucore/FSNode.cxx +++ b/stella/src/emucore/FSNode.cxx @@ -13,15 +13,14 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FSNode.cxx,v 1.10 2007-07-31 15:46:20 stephena Exp $ +// $Id: FSNode.cxx,v 1.11 2007-09-03 18:37:22 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project //============================================================================ -#include "FSNode.hxx" #include "bspf.hxx" -#include "GuiUtils.hxx" +#include "FSNode.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void FSList::sort() diff --git a/stella/src/emucore/FrameBuffer.cxx b/stella/src/emucore/FrameBuffer.cxx index ae0add4b5..16ed78c73 100644 --- a/stella/src/emucore/FrameBuffer.cxx +++ b/stella/src/emucore/FrameBuffer.cxx @@ -13,24 +13,25 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBuffer.cxx,v 1.123 2007-08-16 16:42:46 stephena Exp $ +// $Id: FrameBuffer.cxx,v 1.124 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #include #include "bspf.hxx" -#include "Console.hxx" -#include "Event.hxx" -#include "EventHandler.hxx" -#include "Settings.hxx" -#include "MediaSrc.hxx" -#include "FrameBuffer.hxx" -#include "Font.hxx" -#include "GuiUtils.hxx" -#include "Menu.hxx" + #include "CommandMenu.hxx" +#include "Console.hxx" +#include "EventHandler.hxx" +#include "Event.hxx" +#include "Font.hxx" #include "Launcher.hxx" +#include "MediaSrc.hxx" +#include "Menu.hxx" #include "OSystem.hxx" +#include "Settings.hxx" + +#include "FrameBuffer.hxx" #ifdef DEBUGGER_SUPPORT #include "Debugger.hxx" @@ -390,7 +391,8 @@ bool FrameBuffer::changeVidMode(int direction) if(!setVidMode(newmode)) return false; - myOSystem->eventHandler().refreshDisplay(); + myOSystem->eventHandler().handleResizeEvent(); + myOSystem->eventHandler().refreshDisplay(true); setCursorState(); showMessage(newmode.name); @@ -470,7 +472,7 @@ void FrameBuffer::grabMouse(bool grab) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FrameBuffer::fullScreen() +bool FrameBuffer::fullScreen() const { #ifdef WINDOWED_SUPPORT return myOSystem->settings().getBool("fullscreen"); diff --git a/stella/src/emucore/FrameBuffer.hxx b/stella/src/emucore/FrameBuffer.hxx index a91afdcc5..8aac9a422 100644 --- a/stella/src/emucore/FrameBuffer.hxx +++ b/stella/src/emucore/FrameBuffer.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBuffer.hxx,v 1.91 2007-09-01 23:31:18 stephena Exp $ +// $Id: FrameBuffer.hxx,v 1.92 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #ifndef FRAMEBUFFER_HXX @@ -21,18 +21,19 @@ #include -#include "bspf.hxx" -#include "Array.hxx" -#include "Event.hxx" -#include "EventHandler.hxx" -#include "MediaSrc.hxx" -#include "Font.hxx" -#include "GuiUtils.hxx" -#include "VideoModeList.hxx" - class OSystem; class Console; +namespace GUI { + class Font; + class Surface; +} + +#include "EventHandler.hxx" +#include "VideoModeList.hxx" +#include "bspf.hxx" + + // Text alignment modes for drawString() enum TextAlignment { kTextAlignLeft, @@ -100,7 +101,7 @@ enum { All GUI elements (ala ScummVM) are drawn here as well. @author Stephen Anthony - @version $Id: FrameBuffer.hxx,v 1.91 2007-09-01 23:31:18 stephena Exp $ + @version $Id: FrameBuffer.hxx,v 1.92 2007-09-03 18:37:22 stephena Exp $ */ class FrameBuffer { @@ -228,7 +229,7 @@ class FrameBuffer /** Answers if the display is currently in fullscreen mode. */ - bool fullScreen(); + bool fullScreen() const; /** Set the title for the main SDL window. @@ -292,7 +293,7 @@ class FrameBuffer */ void drawString(const GUI::Font* font, const string& str, int x, int y, int w, int color, TextAlignment align = kTextAlignLeft, - int deltax = 0, bool useEllipsis = true); + int deltax = 0, bool useEllipsis = true); /** Informs the Framebuffer of a change in EventHandler state. @@ -310,7 +311,7 @@ class FrameBuffer @param row The row we are looking for @param data The actual pixel data (in bytes) */ - virtual void scanline(uInt32 row, uInt8* data) = 0; + virtual void scanline(uInt32 row, uInt8* data) const = 0; /** This method should be called to draw a horizontal line. @@ -375,7 +376,7 @@ class FrameBuffer @param x The x coordinate @param y The y coordinate */ - virtual void drawSurface(SDL_Surface* surface, Int32 x, Int32 y) = 0; + virtual void drawSurface(const GUI::Surface* surface, Int32 x, Int32 y) = 0; /** This method should be called to convert and copy a given row of RGB @@ -384,10 +385,9 @@ class FrameBuffer @param surface The data to draw @param row The row of the surface the data should be placed in @param data The data in uInt8 R/G/B format - @param rowsize The number of R/G/B triples in a data row */ - virtual void convertToSurface(SDL_Surface* surface, int row, - uInt8* data, int rowsize) const = 0; + virtual void bytesToSurface(GUI::Surface* surface, int row, + uInt8* data) const = 0; /** This method should be called to translate the given coordinates @@ -396,7 +396,7 @@ class FrameBuffer @param x X coordinate to translate @param y Y coordinate to translate */ - virtual void translateCoords(Int32& x, Int32& y) = 0; + virtual void translateCoords(Int32& x, Int32& y) const = 0; /** This method should be called to add a dirty rectangle @@ -421,7 +421,7 @@ class FrameBuffer @param g The green component of the color. @param b The blue component of the color. */ - virtual Uint32 mapRGB(Uint8 r, Uint8 g, Uint8 b) = 0; + virtual Uint32 mapRGB(Uint8 r, Uint8 g, Uint8 b) const = 0; /** This method is called to create a surface compatible with the one @@ -430,12 +430,12 @@ class FrameBuffer @param width The requested width of the new surface. @param height The requested height of the new surface. */ - virtual SDL_Surface* cloneSurface(int width, int height) = 0; + virtual GUI::Surface* createSurface(int width, int height) const = 0; /** This method is called to query the type of the FrameBuffer. */ - virtual BufferType type() = 0; + virtual BufferType type() const = 0; protected: /** @@ -475,9 +475,7 @@ class FrameBuffer /** This method is called to provide information about the FrameBuffer. */ - virtual string about() = 0; - - + virtual string about() const = 0; protected: // The parent system for the framebuffer diff --git a/stella/src/emucore/MediaFactory.cxx b/stella/src/emucore/MediaFactory.cxx index 2f957ae96..281e04d2d 100644 --- a/stella/src/emucore/MediaFactory.cxx +++ b/stella/src/emucore/MediaFactory.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: MediaFactory.cxx,v 1.8 2007-07-19 16:21:39 stephena Exp $ +// $Id: MediaFactory.cxx,v 1.9 2007-09-03 18:37:22 stephena Exp $ //============================================================================ //////////////////////////////////////////////////////////////////// @@ -23,6 +23,7 @@ #include "MediaFactory.hxx" #include "OSystem.hxx" +#include "Settings.hxx" #include "FrameBuffer.hxx" #ifdef DISPLAY_OPENGL diff --git a/stella/src/emucore/OSystem.cxx b/stella/src/emucore/OSystem.cxx index 74037891d..a9f01c63c 100644 --- a/stella/src/emucore/OSystem.cxx +++ b/stella/src/emucore/OSystem.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: OSystem.cxx,v 1.109 2007-09-01 23:31:18 stephena Exp $ +// $Id: OSystem.cxx,v 1.110 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #include @@ -46,6 +46,7 @@ #include "bspf.hxx" #include "OSystem.hxx" #include "Widget.hxx" +#include "Console.hxx" #define MAX_ROM_SIZE 512 * 1024 @@ -290,6 +291,9 @@ bool OSystem::createFrameBuffer(bool showmessage) // Setup the SDL joysticks (must be done after FrameBuffer is created) if(changeBuffer) myEventHandler->setupJoysticks(); + // Let the system know that we've possibly resized the display + if(changeBuffer) myEventHandler->handleResizeEvent(); + // Update the UI palette setUIPalette(); diff --git a/stella/src/emucore/OSystem.hxx b/stella/src/emucore/OSystem.hxx index 7d11fff3f..4029680b6 100644 --- a/stella/src/emucore/OSystem.hxx +++ b/stella/src/emucore/OSystem.hxx @@ -13,30 +13,32 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: OSystem.hxx,v 1.56 2007-09-01 23:31:18 stephena Exp $ +// $Id: OSystem.hxx,v 1.57 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #ifndef OSYSTEM_HXX #define OSYSTEM_HXX -class PropertiesSet; - -class Menu; -class CommandMenu; -class Launcher; -class Debugger; +class Cartridge; class CheatManager; +class CommandMenu; +class Console; +class Debugger; +class Launcher; +class Menu; +class Properties; +class PropertiesSet; +class Settings; +class Sound; class VideoDialog; +namespace GUI { + class Font; +} + #include "Array.hxx" #include "EventHandler.hxx" #include "FrameBuffer.hxx" -#include "Sound.hxx" -#include "Settings.hxx" -#include "Console.hxx" -#include "Font.hxx" -#include "StringList.hxx" - #include "bspf.hxx" struct Resolution { @@ -52,7 +54,7 @@ typedef Common::Array ResolutionList; other objects belong. @author Stephen Anthony - @version $Id: OSystem.hxx,v 1.56 2007-09-01 23:31:18 stephena Exp $ + @version $Id: OSystem.hxx,v 1.57 2007-09-03 18:37:22 stephena Exp $ */ class OSystem { diff --git a/stella/src/emucore/Props.cxx b/stella/src/emucore/Props.cxx index c41d8de85..3cfe6fef6 100644 --- a/stella/src/emucore/Props.cxx +++ b/stella/src/emucore/Props.cxx @@ -13,14 +13,14 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: Props.cxx,v 1.20 2007-02-06 23:34:33 stephena Exp $ +// $Id: Props.cxx,v 1.21 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #include #include #include -#include "GuiUtils.hxx" +#include "bspf.hxx" #include "Props.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/stella/src/emucore/PropsSet.cxx b/stella/src/emucore/PropsSet.cxx index 7cdc2e758..7ea793d88 100644 --- a/stella/src/emucore/PropsSet.cxx +++ b/stella/src/emucore/PropsSet.cxx @@ -13,18 +13,20 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: PropsSet.cxx,v 1.34 2007-07-31 15:46:20 stephena Exp $ +// $Id: PropsSet.cxx,v 1.35 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #include -#include "OSystem.hxx" -#include "GuiUtils.hxx" -#include "DefProps.hxx" -#include "Props.hxx" -#include "PropsSet.hxx" #include "bspf.hxx" +#include "DefProps.hxx" +#include "OSystem.hxx" +#include "Props.hxx" +#include "Settings.hxx" + +#include "PropsSet.hxx" + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PropertiesSet::PropertiesSet(OSystem* osystem) : myOSystem(osystem), diff --git a/stella/src/emucore/Settings.cxx b/stella/src/emucore/Settings.cxx index ff26564bb..5bae92f37 100644 --- a/stella/src/emucore/Settings.cxx +++ b/stella/src/emucore/Settings.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: Settings.cxx,v 1.126 2007-09-01 23:31:18 stephena Exp $ +// $Id: Settings.cxx,v 1.127 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #include @@ -21,9 +21,11 @@ #include #include +#include "bspf.hxx" + #include "OSystem.hxx" #include "Version.hxx" -#include "bspf.hxx" + #include "Settings.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -166,7 +168,7 @@ string Settings::loadCommandLine(int argc, char** argv) // Take care of arguments without an option if(key == "rominfo" || key == "debug" || key == "holdreset" || - key == "holdselect" || key == "holdbutton0") + key == "holdselect" || key == "holdbutton0" || key == "takesnapshot") { setExternal(key, "true"); continue; diff --git a/stella/src/emucore/TIA.cxx b/stella/src/emucore/TIA.cxx index 63bfc8171..531515183 100644 --- a/stella/src/emucore/TIA.cxx +++ b/stella/src/emucore/TIA.cxx @@ -13,24 +13,25 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: TIA.cxx,v 1.79 2007-02-06 23:34:33 stephena Exp $ +// $Id: TIA.cxx,v 1.80 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #include #include #include -#include + +#include "bspf.hxx" #include "Console.hxx" #include "Control.hxx" -#include "M6502.hxx" -#include "System.hxx" -#include "TIA.hxx" -#include "Serializer.hxx" #include "Deserializer.hxx" +#include "M6502.hxx" +#include "Serializer.hxx" #include "Settings.hxx" #include "Sound.hxx" -#include "GuiUtils.hxx" +#include "System.hxx" + +#include "TIA.hxx" #define HBLANK 68 diff --git a/stella/src/emucore/m6502/src/bspf/src/bspf.hxx b/stella/src/emucore/m6502/src/bspf/src/bspf.hxx index 124385f6f..959f486ce 100644 --- a/stella/src/emucore/m6502/src/bspf/src/bspf.hxx +++ b/stella/src/emucore/m6502/src/bspf/src/bspf.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: bspf.hxx,v 1.17 2007-07-31 15:46:21 stephena Exp $ +// $Id: bspf.hxx,v 1.18 2007-09-03 18:37:22 stephena Exp $ //============================================================================ #ifndef BSPF_HXX @@ -24,7 +24,7 @@ that need to be defined for different operating systems. @author Bradford W. Mott - @version $Id: bspf.hxx,v 1.17 2007-07-31 15:46:21 stephena Exp $ + @version $Id: bspf.hxx,v 1.18 2007-09-03 18:37:22 stephena Exp $ */ // Types for 8-bit signed and unsigned integers @@ -88,6 +88,8 @@ template inline T BSPF_abs (T x) { return (x>=0) ? x : -x; } template inline T BSPF_min (T a, T b) { return (a inline T BSPF_max (T a, T b) { return (a>b) ? a : b; } +static const string EmptyString(""); + #ifdef _WIN32_WCE #include "missing.h" #endif diff --git a/stella/src/gp2x/FrameBufferGP2X.cxx b/stella/src/gp2x/FrameBufferGP2X.cxx index 83feccfb4..6c2d649a1 100644 --- a/stella/src/gp2x/FrameBufferGP2X.cxx +++ b/stella/src/gp2x/FrameBufferGP2X.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBufferGP2X.cxx,v 1.22 2007-06-20 16:33:22 stephena Exp $ +// $Id: FrameBufferGP2X.cxx,v 1.23 2007-09-03 18:37:23 stephena Exp $ //============================================================================ #include @@ -22,7 +22,6 @@ #include "MediaSrc.hxx" #include "OSystem.hxx" #include "Font.hxx" -#include "GuiUtils.hxx" #include "FrameBufferGP2X.hxx" diff --git a/stella/src/gui/AboutDialog.cxx b/stella/src/gui/AboutDialog.cxx index eed6c507e..11bdb7384 100644 --- a/stella/src/gui/AboutDialog.cxx +++ b/stella/src/gui/AboutDialog.cxx @@ -13,17 +13,17 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: AboutDialog.cxx,v 1.21 2007-08-15 17:43:51 stephena Exp $ +// $Id: AboutDialog.cxx,v 1.22 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project //============================================================================ -#include "OSystem.hxx" -#include "Widget.hxx" #include "Dialog.hxx" -#include "GuiUtils.hxx" +#include "OSystem.hxx" #include "Version.hxx" +#include "Widget.hxx" + #include "AboutDialog.hxx" #define ADD_ATEXT(d) do { dsc[i] = d; i++; } while(0) diff --git a/stella/src/gui/AboutDialog.hxx b/stella/src/gui/AboutDialog.hxx index 70f616869..f1903a2f9 100644 --- a/stella/src/gui/AboutDialog.hxx +++ b/stella/src/gui/AboutDialog.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: AboutDialog.hxx,v 1.6 2007-01-01 18:04:51 stephena Exp $ +// $Id: AboutDialog.hxx,v 1.7 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -30,8 +30,6 @@ class CommandSender; class ButtonWidget; class StaticTextWidget; -#include "GuiUtils.hxx" - class AboutDialog : public Dialog { diff --git a/stella/src/gui/AudioDialog.cxx b/stella/src/gui/AudioDialog.cxx index 22d9bd2d7..d66db144f 100644 --- a/stella/src/gui/AudioDialog.cxx +++ b/stella/src/gui/AudioDialog.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: AudioDialog.cxx,v 1.24 2007-01-01 18:04:52 stephena Exp $ +// $Id: AudioDialog.cxx,v 1.25 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -21,19 +21,20 @@ #include -#include "OSystem.hxx" -#include "Sound.hxx" -#include "Settings.hxx" -#include "Menu.hxx" -#include "Control.hxx" -#include "Widget.hxx" -#include "PopUpWidget.hxx" -#include "Dialog.hxx" -#include "AudioDialog.hxx" -#include "GuiUtils.hxx" - #include "bspf.hxx" +#include "Console.hxx" +#include "Control.hxx" +#include "Dialog.hxx" +#include "Menu.hxx" +#include "OSystem.hxx" +#include "PopUpWidget.hxx" +#include "Settings.hxx" +#include "Sound.hxx" +#include "Widget.hxx" + +#include "AudioDialog.hxx" + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AudioDialog::AudioDialog(OSystem* osystem, DialogContainer* parent, const GUI::Font& font, int x, int y, int w, int h) diff --git a/stella/src/gui/BrowserDialog.cxx b/stella/src/gui/BrowserDialog.cxx index 0c642779a..5f78258a9 100644 --- a/stella/src/gui/BrowserDialog.cxx +++ b/stella/src/gui/BrowserDialog.cxx @@ -13,24 +13,24 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: BrowserDialog.cxx,v 1.27 2007-07-20 13:31:10 stephena Exp $ +// $Id: BrowserDialog.cxx,v 1.28 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project //============================================================================ -#include "FSNode.hxx" -#include "OSystem.hxx" -#include "Widget.hxx" -#include "StringListWidget.hxx" -#include "Dialog.hxx" -#include "GuiObject.hxx" -#include "GuiUtils.hxx" -#include "GameList.hxx" -#include "BrowserDialog.hxx" - #include "bspf.hxx" +#include "Dialog.hxx" +#include "FSNode.hxx" +#include "GameList.hxx" +#include "GuiObject.hxx" +#include "OSystem.hxx" +#include "StringListWidget.hxx" +#include "Widget.hxx" + +#include "BrowserDialog.hxx" + /* We want to use this as a general directory selector at some point... possible uses * - to select the data dir for a game * - to select the place where save games are stored diff --git a/stella/src/gui/CommandDialog.cxx b/stella/src/gui/CommandDialog.cxx index b477efbf6..0a21e84c1 100644 --- a/stella/src/gui/CommandDialog.cxx +++ b/stella/src/gui/CommandDialog.cxx @@ -13,18 +13,19 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: CommandDialog.cxx,v 1.15 2007-02-22 02:15:46 stephena Exp $ +// $Id: CommandDialog.cxx,v 1.16 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project //============================================================================ -#include "OSystem.hxx" -#include "Dialog.hxx" +#include "Console.hxx" #include "DialogContainer.hxx" +#include "Dialog.hxx" +#include "EventHandler.hxx" +#include "OSystem.hxx" #include "Widget.hxx" #include "CommandDialog.hxx" -#include "EventHandler.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CommandDialog::CommandDialog(OSystem* osystem, DialogContainer* parent) diff --git a/stella/src/gui/DialogContainer.cxx b/stella/src/gui/DialogContainer.cxx index 77a05dfbb..67b23f35c 100644 --- a/stella/src/gui/DialogContainer.cxx +++ b/stella/src/gui/DialogContainer.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: DialogContainer.cxx,v 1.37 2007-07-31 15:46:21 stephena Exp $ +// $Id: DialogContainer.cxx,v 1.38 2007-09-03 18:37:23 stephena Exp $ //============================================================================ #include "OSystem.hxx" @@ -324,6 +324,15 @@ void DialogContainer::handleJoyHatEvent(int stick, int hat, int value) activeDialog->handleJoyHat(stick, hat, value); } +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void DialogContainer::handleResizeEvent() +{ + // Send resize events to all dialogs + // It's up to a specific dialog to actually listen + for(int i = 0; i < myDialogStack.size(); i++) + myDialogStack[i]->handleCommand(NULL, kResizeCmd, 0, 0); +} + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void DialogContainer::reset() { diff --git a/stella/src/gui/DialogContainer.hxx b/stella/src/gui/DialogContainer.hxx index 22fad85d8..f7be41dc8 100644 --- a/stella/src/gui/DialogContainer.hxx +++ b/stella/src/gui/DialogContainer.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: DialogContainer.hxx,v 1.22 2007-08-10 18:27:11 stephena Exp $ +// $Id: DialogContainer.hxx,v 1.23 2007-09-03 18:37:23 stephena Exp $ //============================================================================ #ifndef DIALOG_CONTAINER_HXX @@ -36,7 +36,7 @@ class OSystem; a stack, and handles their events. @author Stephen Anthony - @version $Id: DialogContainer.hxx,v 1.22 2007-08-10 18:27:11 stephena Exp $ + @version $Id: DialogContainer.hxx,v 1.23 2007-09-03 18:37:23 stephena Exp $ */ class DialogContainer { @@ -118,6 +118,11 @@ class DialogContainer */ void handleJoyHatEvent(int stick, int hat, int value); + /** + Handle a resize event. + */ + void handleResizeEvent(); + /** Draw the stack of menus. */ diff --git a/stella/src/gui/EventMappingWidget.cxx b/stella/src/gui/EventMappingWidget.cxx index 9dfbc4d97..7934e2cd9 100644 --- a/stella/src/gui/EventMappingWidget.cxx +++ b/stella/src/gui/EventMappingWidget.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: EventMappingWidget.cxx,v 1.20 2007-08-06 20:16:51 stephena Exp $ +// $Id: EventMappingWidget.cxx,v 1.21 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -21,16 +21,16 @@ #include -#include "OSystem.hxx" -#include "Widget.hxx" -#include "StringListWidget.hxx" -#include "GuiUtils.hxx" -#include "Event.hxx" -#include "EventHandler.hxx" -#include "EventMappingWidget.hxx" - #include "bspf.hxx" +#include "EventHandler.hxx" +#include "Event.hxx" +#include "OSystem.hxx" +#include "StringListWidget.hxx" +#include "Widget.hxx" + +#include "EventMappingWidget.hxx" + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EventMappingWidget::EventMappingWidget(GuiObject* boss, const GUI::Font& font, int x, int y, int w, int h, diff --git a/stella/src/gui/FileSnapDialog.cxx b/stella/src/gui/FileSnapDialog.cxx index 044f5231c..4e66526bc 100644 --- a/stella/src/gui/FileSnapDialog.cxx +++ b/stella/src/gui/FileSnapDialog.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FileSnapDialog.cxx,v 1.12 2007-08-22 13:55:40 stephena Exp $ +// $Id: FileSnapDialog.cxx,v 1.13 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -21,11 +21,13 @@ #include "bspf.hxx" -#include "FSNode.hxx" -#include "DialogContainer.hxx" #include "BrowserDialog.hxx" +#include "DialogContainer.hxx" #include "EditTextWidget.hxx" +#include "FSNode.hxx" #include "LauncherDialog.hxx" +#include "Settings.hxx" + #include "FileSnapDialog.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/stella/src/gui/Font.hxx b/stella/src/gui/Font.hxx index 0f063c934..31196b2ab 100644 --- a/stella/src/gui/Font.hxx +++ b/stella/src/gui/Font.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: Font.hxx,v 1.7 2007-01-01 18:04:53 stephena Exp $ +// $Id: Font.hxx,v 1.8 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -23,7 +23,6 @@ #define FONT_HXX #include "bspf.hxx" -#include "GuiUtils.hxx" /* builtin C-based proportional/fixed font structure */ /* based on The Microwindows Project http://microwindows.org */ diff --git a/stella/src/gui/GameInfoDialog.cxx b/stella/src/gui/GameInfoDialog.cxx index 1cc7d6a28..c96a892e2 100644 --- a/stella/src/gui/GameInfoDialog.cxx +++ b/stella/src/gui/GameInfoDialog.cxx @@ -13,21 +13,22 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: GameInfoDialog.cxx,v 1.39 2007-07-27 14:12:36 stephena Exp $ +// $Id: GameInfoDialog.cxx,v 1.40 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project //============================================================================ -#include "GuiUtils.hxx" -#include "OSystem.hxx" -#include "Props.hxx" -#include "PropsSet.hxx" -#include "Widget.hxx" +#include "Console.hxx" #include "Dialog.hxx" #include "EditTextWidget.hxx" +#include "OSystem.hxx" #include "PopUpWidget.hxx" +#include "Props.hxx" +#include "PropsSet.hxx" #include "TabWidget.hxx" +#include "Widget.hxx" + #include "GameInfoDialog.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/stella/src/gui/GameInfoDialog.hxx b/stella/src/gui/GameInfoDialog.hxx index c1d564073..a672efbee 100644 --- a/stella/src/gui/GameInfoDialog.hxx +++ b/stella/src/gui/GameInfoDialog.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: GameInfoDialog.hxx,v 1.22 2007-02-06 23:34:34 stephena Exp $ +// $Id: GameInfoDialog.hxx,v 1.23 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -28,12 +28,12 @@ class EditTextWidget; class PopUpWidget; class StaticTextWidget; class TabWidget; -class Properties; class SliderWidget; #include "Array.hxx" #include "Dialog.hxx" #include "Command.hxx" +#include "Props.hxx" class GameInfoDialog : public Dialog, public CommandSender { diff --git a/stella/src/gui/GameList.cxx b/stella/src/gui/GameList.cxx index 94ab567ee..23c865402 100644 --- a/stella/src/gui/GameList.cxx +++ b/stella/src/gui/GameList.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: GameList.cxx,v 1.13 2007-09-01 23:31:18 stephena Exp $ +// $Id: GameList.cxx,v 1.14 2007-09-03 18:37:23 stephena Exp $ // // Based on code from KStella - Stella frontend // Copyright (C) 2003-2005 Stephen Anthony @@ -22,7 +22,6 @@ #include #include -#include "GuiUtils.hxx" #include "GameList.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/stella/src/gui/GuiObject.hxx b/stella/src/gui/GuiObject.hxx index 8d7eacd72..a1e5b8023 100644 --- a/stella/src/gui/GuiObject.hxx +++ b/stella/src/gui/GuiObject.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: GuiObject.hxx,v 1.22 2007-01-01 18:04:53 stephena Exp $ +// $Id: GuiObject.hxx,v 1.23 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -31,11 +31,30 @@ class Widget; typedef Common::Array WidgetArray; +// The commands generated by various widgets +enum { + kOKCmd = 'OK ', + kCloseCmd = 'CLOS', + kNextCmd = 'NEXT', + kPrevCmd = 'PREV', + kEditCmd = 'EDIT', + kDefaultsCmd = 'DEFA', + kSetPositionCmd = 'SETP', + kTabChangedCmd = 'TBCH', + kCheckActionCmd = 'CBAC', + kRefreshAllCmd = 'REFA', + kResizeCmd = 'RESZ' +}; + +enum { + kScrollBarWidth = 9 +}; + /** This is the base class for all GUI objects/widgets. @author Stephen Anthony - @version $Id: GuiObject.hxx,v 1.22 2007-01-01 18:04:53 stephena Exp $ + @version $Id: GuiObject.hxx,v 1.23 2007-09-03 18:37:23 stephena Exp $ */ class GuiObject : public CommandReceiver { diff --git a/stella/src/gui/HelpDialog.cxx b/stella/src/gui/HelpDialog.cxx index 24e0341db..8ecade193 100644 --- a/stella/src/gui/HelpDialog.cxx +++ b/stella/src/gui/HelpDialog.cxx @@ -13,19 +13,19 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: HelpDialog.cxx,v 1.22 2007-02-06 23:34:34 stephena Exp $ +// $Id: HelpDialog.cxx,v 1.23 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project //============================================================================ +#include "bspf.hxx" + +#include "Dialog.hxx" #include "OSystem.hxx" #include "Widget.hxx" -#include "Dialog.hxx" -#include "HelpDialog.hxx" -#include "GuiUtils.hxx" -#include "bspf.hxx" +#include "HelpDialog.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HelpDialog::HelpDialog(OSystem* osystem, DialogContainer* parent, diff --git a/stella/src/gui/InputDialog.cxx b/stella/src/gui/InputDialog.cxx index bea36443c..6c32422b9 100644 --- a/stella/src/gui/InputDialog.cxx +++ b/stella/src/gui/InputDialog.cxx @@ -13,19 +13,22 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: InputDialog.cxx,v 1.25 2007-01-24 19:17:33 stephena Exp $ +// $Id: InputDialog.cxx,v 1.26 2007-09-03 18:37:23 stephena Exp $ //============================================================================ -#include "OSystem.hxx" -#include "Widget.hxx" -#include "Array.hxx" -#include "TabWidget.hxx" -#include "EventMappingWidget.hxx" -#include "InputDialog.hxx" -#include "PopUpWidget.hxx" - #include "bspf.hxx" +#include "Array.hxx" +#include "EventMappingWidget.hxx" +#include "OSystem.hxx" +#include "PopUpWidget.hxx" +#include "Settings.hxx" +#include "TabWidget.hxx" +#include "Widget.hxx" + +#include "InputDialog.hxx" + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - InputDialog::InputDialog(OSystem* osystem, DialogContainer* parent, const GUI::Font& font, int x, int y, int w, int h) diff --git a/stella/src/gui/InputTextDialog.cxx b/stella/src/gui/InputTextDialog.cxx index 06af9869c..a22d2a6cb 100644 --- a/stella/src/gui/InputTextDialog.cxx +++ b/stella/src/gui/InputTextDialog.cxx @@ -13,21 +13,21 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: InputTextDialog.cxx,v 1.18 2007-08-17 16:12:50 stephena Exp $ +// $Id: InputTextDialog.cxx,v 1.19 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project //============================================================================ +#include "bspf.hxx" + +#include "Dialog.hxx" +#include "EditTextWidget.hxx" +#include "GuiObject.hxx" #include "OSystem.hxx" #include "Widget.hxx" -#include "EditTextWidget.hxx" -#include "Dialog.hxx" -#include "GuiObject.hxx" -#include "GuiUtils.hxx" -#include "InputTextDialog.hxx" -#include "bspf.hxx" +#include "InputTextDialog.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - InputTextDialog::InputTextDialog(GuiObject* boss, const GUI::Font& font, diff --git a/stella/src/gui/LauncherDialog.cxx b/stella/src/gui/LauncherDialog.cxx index 65fb52433..10d43951f 100644 --- a/stella/src/gui/LauncherDialog.cxx +++ b/stella/src/gui/LauncherDialog.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: LauncherDialog.cxx,v 1.70 2007-09-01 23:31:18 stephena Exp $ +// $Id: LauncherDialog.cxx,v 1.71 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -21,25 +21,26 @@ #include -#include "FSNode.hxx" -#include "BrowserDialog.hxx" -#include "OSystem.hxx" -#include "Settings.hxx" -#include "PropsSet.hxx" -#include "Props.hxx" -#include "MD5.hxx" -#include "Widget.hxx" -#include "StringListWidget.hxx" -#include "RomInfoWidget.hxx" -#include "Dialog.hxx" -#include "DialogContainer.hxx" -#include "GuiUtils.hxx" -#include "ProgressDialog.hxx" -#include "OptionsDialog.hxx" -#include "LauncherDialog.hxx" - #include "bspf.hxx" +#include "BrowserDialog.hxx" +#include "DialogContainer.hxx" +#include "Dialog.hxx" +#include "FSNode.hxx" +#include "GameList.hxx" +#include "MD5.hxx" +#include "OptionsDialog.hxx" +#include "OSystem.hxx" +#include "ProgressDialog.hxx" +#include "Props.hxx" +#include "PropsSet.hxx" +#include "RomInfoWidget.hxx" +#include "Settings.hxx" +#include "StringListWidget.hxx" +#include "Widget.hxx" + +#include "LauncherDialog.hxx" + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LauncherDialog::LauncherDialog(OSystem* osystem, DialogContainer* parent, @@ -101,6 +102,7 @@ LauncherDialog::LauncherDialog(OSystem* osystem, DialogContainer* parent, xpos += myList->getWidth() + 15; myRomInfoWidget = new RomInfoWidget(this, font, xpos, ypos, 326, myList->getHeight()); + wid.push_back(myRomInfoWidget); } // Add note textwidget to show any notes for the currently selected ROM @@ -399,6 +401,35 @@ void LauncherDialog::createListCache() out.close(); } +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void LauncherDialog::loadRomInfo() +{ + int item = myList->getSelected(); + if(item < 0) return; + + if(myGameList->isDir(item)) + { + if(myRomInfoFlag) + myRomInfoWidget->clearInfo(); + return; + } + + // Make sure we have a valid md5 for this ROM + if(myGameList->md5(item) == "") + myGameList->setMd5(item, MD5FromFile(myGameList->path(item))); + + // Get the properties for this entry + Properties props; + const string& md5 = myGameList->md5(item); + instance()->propSet().getMD5(md5, props); + + if(!myBrowseModeFlag) + myNote->setLabel(props.get(Cartridge_Note)); + + if(myRomInfoFlag) + myRomInfoWidget->showInfo(props); +} + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - string LauncherDialog::MD5FromFile(const string& path) { @@ -417,14 +448,13 @@ string LauncherDialog::MD5FromFile(const string& path) void LauncherDialog::handleCommand(CommandSender* sender, int cmd, int data, int id) { - int item; - switch (cmd) { case kStartCmd: case kListItemActivatedCmd: case kListItemDoubleClickedCmd: - item = myList->getSelected(); + { + int item = myList->getSelected(); if(item >= 0) { const string& rom = myGameList->path(item); @@ -449,46 +479,20 @@ void LauncherDialog::handleCommand(CommandSender* sender, int cmd, } } break; + } case kOptionsCmd: parent()->addDialog(myOptions); break; case kPrevDirCmd: - { myCurrentNode = myCurrentNode.getParent(); updateListing(!myBrowseModeFlag); // Force full update in non-browse mode break; - } case kListSelectionChangedCmd: - { - item = myList->getSelected(); - if(item < 0) break; - - if(myGameList->isDir(item)) - { - if(myRomInfoFlag) - myRomInfoWidget->clearInfo(); - break; - } - - // Make sure we have a valid md5 for this ROM - if(myGameList->md5(item) == "") - myGameList->setMd5(item, MD5FromFile(myGameList->path(item))); - - // Get the properties for this entry - Properties props; - const string& md5 = myGameList->md5(item); - instance()->propSet().getMD5(md5, props); - - if(!myBrowseModeFlag) - myNote->setLabel(props.get(Cartridge_Note)); - - if(myRomInfoFlag) - myRomInfoWidget->showInfo(props); + loadRomInfo(); break; - } case kQuitCmd: close(); @@ -515,6 +519,12 @@ void LauncherDialog::handleCommand(CommandSender* sender, int cmd, updateListing(true); break; + case kResizeCmd: + // Instead of figuring out how to resize the snapshot image, + // we just reload it + loadRomInfo(); + break; + default: Dialog::handleCommand(sender, cmd, data, 0); } diff --git a/stella/src/gui/LauncherDialog.hxx b/stella/src/gui/LauncherDialog.hxx index 774e97b94..748c1147f 100644 --- a/stella/src/gui/LauncherDialog.hxx +++ b/stella/src/gui/LauncherDialog.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: LauncherDialog.hxx,v 1.27 2007-09-01 23:31:18 stephena Exp $ +// $Id: LauncherDialog.hxx,v 1.28 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -31,10 +31,10 @@ class StringListWidget; class ButtonWidget; class RomInfoWidget; class OSystem; +class GameList; #include "FSNode.hxx" #include "Dialog.hxx" -#include "GameList.hxx" #include "bspf.hxx" // These must be accessible from LauncherOptionsDialog @@ -81,6 +81,7 @@ class LauncherDialog : public Dialog void loadListFromDisk(); void loadListFromCache(); void createListCache(); + void loadRomInfo(); string MD5FromFile(const string& path); private: diff --git a/stella/src/gui/PopUpWidget.cxx b/stella/src/gui/PopUpWidget.cxx index fd4611292..e6995afcc 100644 --- a/stella/src/gui/PopUpWidget.cxx +++ b/stella/src/gui/PopUpWidget.cxx @@ -13,20 +13,21 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: PopUpWidget.cxx,v 1.37 2007-08-12 23:05:12 stephena Exp $ +// $Id: PopUpWidget.cxx,v 1.38 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project //============================================================================ #include "bspf.hxx" -#include "OSystem.hxx" -#include "FrameBuffer.hxx" -#include "Stack.hxx" -#include "Dialog.hxx" + #include "DialogContainer.hxx" -#include "GuiUtils.hxx" +#include "Dialog.hxx" +#include "FrameBuffer.hxx" +#include "OSystem.hxx" +#include "Stack.hxx" #include "StringListWidget.hxx" + #include "PopUpWidget.hxx" #define UP_DOWN_BOX_HEIGHT 10 diff --git a/stella/src/gui/PopUpWidget.hxx b/stella/src/gui/PopUpWidget.hxx index e438accbf..dd749648f 100644 --- a/stella/src/gui/PopUpWidget.hxx +++ b/stella/src/gui/PopUpWidget.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: PopUpWidget.hxx,v 1.18 2007-06-21 12:27:00 stephena Exp $ +// $Id: PopUpWidget.hxx,v 1.19 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -25,15 +25,14 @@ class GUIObject; class PopUpDialog; -#include "Dialog.hxx" - -#include "Widget.hxx" -#include "Command.hxx" -#include "Array.hxx" -#include "GuiUtils.hxx" - #include "bspf.hxx" +#include "Array.hxx" +#include "Command.hxx" +#include "Dialog.hxx" +#include "Widget.hxx" + + /** * Popup or dropdown widget which, when clicked, "pop up" a list of items and * lets the user pick on of them. diff --git a/stella/src/gui/ProgressDialog.cxx b/stella/src/gui/ProgressDialog.cxx index 37115b01d..7f97cf96d 100644 --- a/stella/src/gui/ProgressDialog.cxx +++ b/stella/src/gui/ProgressDialog.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: ProgressDialog.cxx,v 1.9 2007-08-06 20:16:51 stephena Exp $ +// $Id: ProgressDialog.cxx,v 1.10 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -24,19 +24,18 @@ #include "Dialog.hxx" #include "DialogContainer.hxx" #include "ProgressDialog.hxx" -#include "GuiUtils.hxx" #include "bspf.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ProgressDialog::ProgressDialog(GuiObject* boss, const GUI::Font& font, const string& message) - : Dialog(boss->instance(), boss->parent(), 0, 0, 16, 16), - myMessage(NULL), - mySlider(NULL), - myStart(0), - myFinish(0), - myStep(0) + : Dialog(boss->instance(), boss->parent(), 0, 0, 16, 16), + myMessage(NULL), + mySlider(NULL), + myStart(0), + myFinish(0), + myStep(0) { const int fontWidth = font.getMaxCharWidth(), fontHeight = font.getFontHeight(), diff --git a/stella/src/gui/RomInfoWidget.cxx b/stella/src/gui/RomInfoWidget.cxx index 3c94681c4..4f78641e6 100644 --- a/stella/src/gui/RomInfoWidget.cxx +++ b/stella/src/gui/RomInfoWidget.cxx @@ -13,17 +13,16 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: RomInfoWidget.cxx,v 1.1 2007-09-01 23:31:18 stephena Exp $ -// -// Based on code from ScummVM - Scumm Interpreter -// Copyright (C) 2002-2004 The ScummVM project +// $Id: RomInfoWidget.cxx,v 1.2 2007-09-03 18:37:23 stephena Exp $ //============================================================================ #include #include -#include "OSystem.hxx" #include "FrameBuffer.hxx" +#include "OSystem.hxx" +#include "Settings.hxx" +#include "Surface.hxx" #include "Widget.hxx" #include "RomInfoWidget.hxx" @@ -44,6 +43,11 @@ RomInfoWidget::~RomInfoWidget() clearInfo(false); } +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void RomInfoWidget::loadConfig() +{ +} + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void RomInfoWidget::showInfo(const Properties& props) { @@ -58,7 +62,7 @@ void RomInfoWidget::showInfo(const Properties& props) // 'tEXt' chucks from the PNG image StringList textChucks; - // Get all possible names representing a snapshot file for this rom + // Get a valid filename representing a snapshot file for this rom const string& path = instance()->settings().getString("ssdir"); const string& filename = instance()->getFilename(path, props, "png"); @@ -89,7 +93,7 @@ void RomInfoWidget::showInfo(const Properties& props) int s_height = BSPF_min(250, height); FrameBuffer& fb = instance()->frameBuffer(); - mySurface = fb.cloneSurface(s_width, s_height); + mySurface = fb.createSurface(s_width, s_height); if(!parseIDATChunk(fb, mySurface, width, height, data, size)) throw "RomInfoWidget: IDAT processing failed"; } @@ -112,38 +116,34 @@ void RomInfoWidget::showInfo(const Properties& props) } // Now add some info for the message box below the image myRomInfo.push_back("Name: " + props.get(Cartridge_Name)); - myRomInfo.push_back("MD5: " + props.get(Cartridge_MD5)); myRomInfo.push_back("Manufacturer: " + props.get(Cartridge_Manufacturer)); myRomInfo.push_back("Model: " + props.get(Cartridge_ModelNo)); myRomInfo.push_back("Rarity: " + props.get(Cartridge_Rarity)); myRomInfo.push_back("Note: " + props.get(Cartridge_Note)); - + myRomInfo.push_back("Controllers: " + props.get(Controller_Left) + + " (left), " + props.get(Controller_Right) + " (right)"); // TODO - add the PNG tEXt chunks - loadConfig(); + setDirty(); draw(); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void RomInfoWidget::clearInfo(bool redraw) { - if(mySurface) SDL_FreeSurface(mySurface); + if(mySurface) + delete mySurface; mySurface = NULL; myRomInfo.clear(); if(redraw) - loadConfig(); -} - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void RomInfoWidget::loadConfig() -{ - setDirty(); draw(); + { + setDirty(); draw(); + } } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void RomInfoWidget::drawWidget(bool hilite) { -// cerr << "RomInfoWidget::drawWidget\n"; FrameBuffer& fb = instance()->frameBuffer(); fb.fillRect(_x+2, _y+2, _w-4, _h-4, kWidColor); @@ -152,8 +152,8 @@ void RomInfoWidget::drawWidget(bool hilite) if(mySurface) { - int x = (_w - mySurface->w) >> 1; - int y = (256 - mySurface->h) >> 1; + int x = (_w - mySurface->getWidth()) >> 1; + int y = (256 - mySurface->getHeight()) >> 1; fb.drawSurface(mySurface, x + getAbsX(), y + getAbsY()); } int xpos = _x + 5, ypos = _y + 256 + 5; @@ -213,7 +213,7 @@ bool RomInfoWidget::parseIHDR(int& width, int& height, uInt8* data, int size) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool RomInfoWidget::parseIDATChunk(const FrameBuffer& fb, SDL_Surface* surface, +bool RomInfoWidget::parseIDATChunk(const FrameBuffer& fb, GUI::Surface* surface, int width, int height, uInt8* data, int size) { // The entire decompressed image data @@ -226,17 +226,16 @@ bool RomInfoWidget::parseIDATChunk(const FrameBuffer& fb, SDL_Surface* surface, if(uncompress(buffer, &bufsize, data, size) == Z_OK) { uInt8* buf_ptr = buffer; - int i_pitch = width * 3; // bytes per line of the image - int rowbytes = surface->w * 3; // bytes per line of the surface - for(int row = 0; row < height; row++, buf_ptr += i_pitch) + int pitch = width * 3; // bytes per line of the image + for(int row = 0; row < height; row++, buf_ptr += pitch) { buf_ptr++; // skip past first byte (PNG filter type) - fb.convertToSurface(surface, row, buf_ptr, rowbytes); + fb.bytesToSurface(surface, row, buf_ptr); } } else { - cerr << "error decompressing data\n"; + cerr << "RomInfoWidget: error decompressing data\n"; return false; } diff --git a/stella/src/gui/RomInfoWidget.hxx b/stella/src/gui/RomInfoWidget.hxx index 707d7948a..57a7eafc6 100644 --- a/stella/src/gui/RomInfoWidget.hxx +++ b/stella/src/gui/RomInfoWidget.hxx @@ -13,15 +13,16 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: RomInfoWidget.hxx,v 1.1 2007-09-01 23:31:18 stephena Exp $ +// $Id: RomInfoWidget.hxx,v 1.2 2007-09-03 18:37:23 stephena Exp $ //============================================================================ #ifndef ROM_INFO_WIDGET_HXX #define ROM_INFO_WIDGET_HXX -#include #include +class GUI::Surface; + #include "Props.hxx" #include "Widget.hxx" #include "Command.hxx" @@ -47,13 +48,13 @@ class RomInfoWidget : public Widget static bool isValidPNGHeader(uInt8* header); static void readPNGChunk(ifstream& in, string& type, uInt8** data, int& size); static bool parseIHDR(int& width, int& height, uInt8* data, int size); - static bool parseIDATChunk(const FrameBuffer& fb, SDL_Surface* surface, + static bool parseIDATChunk(const FrameBuffer& fb, GUI::Surface* surface, int width, int height, uInt8* data, int size); static string parseTextChunk(uInt8* data, int size); private: - // Surface holding the scaled PNG image, ready for drawing by SDL_BlitSurface - SDL_Surface* mySurface; + // Surface holding the scaled PNG image + GUI::Surface* mySurface; // Some ROM properties info, as well as 'tEXt' chunks from the PNG image StringList myRomInfo; diff --git a/stella/src/gui/GuiUtils.hxx b/stella/src/gui/Surface.cxx similarity index 51% rename from stella/src/gui/GuiUtils.hxx rename to stella/src/gui/Surface.cxx index 6dc8138b3..5c6557a78 100644 --- a/stella/src/gui/GuiUtils.hxx +++ b/stella/src/gui/Surface.cxx @@ -13,41 +13,32 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: GuiUtils.hxx,v 1.27 2007-07-31 15:46:21 stephena Exp $ +// $Id: Surface.cxx,v 1.1 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project //============================================================================ -#ifndef UTILITIES_HXX -#define UTILITIES_HXX +#include -#include "bspf.hxx" +#include "Surface.hxx" -/** - A place to put GUI-related things that don't fit anywhere else. - Probably not very neat, but at least it works ... +namespace GUI { - @author Stephen Anthony - @version $Id: GuiUtils.hxx,v 1.27 2007-07-31 15:46:21 stephena Exp $ -*/ +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Surface::Surface(int width, int height, SDL_Surface* data) + : myBaseWidth(width), + myBaseHeight(height), + myData(data) +{ +} -#define kScrollBarWidth 9 +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Surface::~Surface() +{ + if(myData) + SDL_FreeSurface(myData); + myData = NULL; +} -// The commands generated by various widgets -enum { - kOKCmd = 'OK ', - kCloseCmd = 'CLOS', - kNextCmd = 'NEXT', - kPrevCmd = 'PREV', - kEditCmd = 'EDIT', - kDefaultsCmd = 'DEFA', - kSetPositionCmd = 'SETP', - kTabChangedCmd = 'TBCH', - kCheckActionCmd = 'CBAC', - kRefreshAllCmd = 'REFA' -}; - -static const string EmptyString(""); - -#endif +} // namespace GUI diff --git a/stella/src/gui/Surface.hxx b/stella/src/gui/Surface.hxx new file mode 100644 index 000000000..6932a82bc --- /dev/null +++ b/stella/src/gui/Surface.hxx @@ -0,0 +1,54 @@ +//============================================================================ +// +// SSSS tt lll lll +// SS SS tt ll ll +// SS tttttt eeee ll ll aaaa +// SSSS tt ee ee ll ll aa +// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator" +// SS SS tt ee ll ll aa aa +// SSSS ttt eeeee llll llll aaaaa +// +// Copyright (c) 1995-2007 by Bradford W. Mott and the Stella team +// +// See the file "license" for information on usage and redistribution of +// this file, and for a DISCLAIMER OF ALL WARRANTIES. +// +// $Id: Surface.hxx,v 1.1 2007-09-03 18:37:23 stephena Exp $ +//============================================================================ + +#ifndef GUI_SURFACE_HXX +#define GUI_SURFACE_HXX + +#include + +namespace GUI { + +/** + This class is basically a thin wrapper around an SDL_Surface structure. + We do it this way so the SDL stuff won't be dragged into the depths of + the codebase. + + @author Stephen Anthony + @version $Id: Surface.hxx,v 1.1 2007-09-03 18:37:23 stephena Exp $ +*/ +class Surface +{ + friend class FrameBuffer; + + public: + Surface(int width, int height, SDL_Surface* surface); + virtual ~Surface(); + + int getWidth() const { return myBaseWidth; } + int getHeight() const { return myBaseHeight; } + + public: + int myBaseWidth; + int myBaseHeight; + + SDL_Surface* myData; +}; + +} // namespace GUI + +#endif diff --git a/stella/src/gui/TabWidget.cxx b/stella/src/gui/TabWidget.cxx index 0791206e3..16d93721e 100644 --- a/stella/src/gui/TabWidget.cxx +++ b/stella/src/gui/TabWidget.cxx @@ -13,19 +13,20 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: TabWidget.cxx,v 1.29 2007-08-15 17:43:51 stephena Exp $ +// $Id: TabWidget.cxx,v 1.30 2007-09-03 18:37:23 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project //============================================================================ -#include "OSystem.hxx" -#include "FrameBuffer.hxx" -#include "GuiUtils.hxx" #include "bspf.hxx" -#include "GuiObject.hxx" -#include "Widget.hxx" + #include "Dialog.hxx" +#include "FrameBuffer.hxx" +#include "GuiObject.hxx" +#include "OSystem.hxx" +#include "Widget.hxx" + #include "TabWidget.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/stella/src/gui/TabWidget.hxx b/stella/src/gui/TabWidget.hxx index 3d221ecb0..b65cfc398 100644 --- a/stella/src/gui/TabWidget.hxx +++ b/stella/src/gui/TabWidget.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: TabWidget.hxx,v 1.17 2007-01-23 14:57:14 knakos Exp $ +// $Id: TabWidget.hxx,v 1.18 2007-09-03 18:37:24 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -22,12 +22,12 @@ #ifndef TAB_WIDGET_HXX #define TAB_WIDGET_HXX -#include "GuiUtils.hxx" -#include "Widget.hxx" -#include "Command.hxx" -#include "Array.hxx" #include "bspf.hxx" +#include "Array.hxx" +#include "Command.hxx" +#include "Widget.hxx" + class TabWidget : public Widget, public CommandSender { struct Tab { diff --git a/stella/src/gui/UIDialog.cxx b/stella/src/gui/UIDialog.cxx index 45c23115b..6d97113ae 100644 --- a/stella/src/gui/UIDialog.cxx +++ b/stella/src/gui/UIDialog.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: UIDialog.cxx,v 1.7 2007-08-15 17:43:51 stephena Exp $ +// $Id: UIDialog.cxx,v 1.8 2007-09-03 18:37:24 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -21,16 +21,16 @@ #include +#include "bspf.hxx" + +#include "Dialog.hxx" #include "OSystem.hxx" +#include "PopUpWidget.hxx" +#include "ScrollBarWidget.hxx" #include "Settings.hxx" #include "Widget.hxx" -#include "PopUpWidget.hxx" -#include "Dialog.hxx" -#include "UIDialog.hxx" -#include "GuiUtils.hxx" -#include "ScrollBarWidget.hxx" -#include "bspf.hxx" +#include "UIDialog.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - UIDialog::UIDialog(OSystem* osystem, DialogContainer* parent, diff --git a/stella/src/gui/VideoDialog.cxx b/stella/src/gui/VideoDialog.cxx index 04669edf5..0862ed21c 100644 --- a/stella/src/gui/VideoDialog.cxx +++ b/stella/src/gui/VideoDialog.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: VideoDialog.cxx,v 1.46 2007-08-21 17:58:25 stephena Exp $ +// $Id: VideoDialog.cxx,v 1.47 2007-09-03 18:37:24 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -21,18 +21,18 @@ #include -#include "OSystem.hxx" -#include "Settings.hxx" -#include "Menu.hxx" -#include "Control.hxx" -#include "Widget.hxx" -#include "PopUpWidget.hxx" -#include "Dialog.hxx" -#include "VideoDialog.hxx" -#include "GuiUtils.hxx" - #include "bspf.hxx" +#include "Control.hxx" +#include "Dialog.hxx" +#include "Menu.hxx" +#include "OSystem.hxx" +#include "PopUpWidget.hxx" +#include "Settings.hxx" +#include "Widget.hxx" + +#include "VideoDialog.hxx" + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VideoDialog::VideoDialog(OSystem* osystem, DialogContainer* parent, const GUI::Font& font, int x, int y, int w, int h) diff --git a/stella/src/gui/Widget.cxx b/stella/src/gui/Widget.cxx index e6fb5d192..5b71652f1 100644 --- a/stella/src/gui/Widget.cxx +++ b/stella/src/gui/Widget.cxx @@ -13,23 +13,24 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: Widget.cxx,v 1.55 2007-08-15 17:43:51 stephena Exp $ +// $Id: Widget.cxx,v 1.56 2007-09-03 18:37:24 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project //============================================================================ -#include "OSystem.hxx" -#include "FrameBuffer.hxx" -#include "Font.hxx" -#include "Dialog.hxx" -#include "DialogContainer.hxx" -#include "Command.hxx" -#include "GuiObject.hxx" #include "bspf.hxx" -#include "GuiUtils.hxx" -#include "Widget.hxx" + +#include "Command.hxx" +#include "DialogContainer.hxx" +#include "Dialog.hxx" #include "EditableWidget.hxx" +#include "Font.hxx" +#include "FrameBuffer.hxx" +#include "GuiObject.hxx" +#include "OSystem.hxx" + +#include "Widget.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Widget::Widget(GuiObject* boss, const GUI::Font& font, diff --git a/stella/src/gui/Widget.hxx b/stella/src/gui/Widget.hxx index 3b547d1e5..6faf39498 100644 --- a/stella/src/gui/Widget.hxx +++ b/stella/src/gui/Widget.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: Widget.hxx,v 1.57 2007-08-12 23:05:12 stephena Exp $ +// $Id: Widget.hxx,v 1.58 2007-09-03 18:37:24 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -26,15 +26,15 @@ class Dialog; #include +#include "bspf.hxx" + +#include "Array.hxx" #include "Event.hxx" -#include "OSystem.hxx" +#include "Font.hxx" #include "FrameBuffer.hxx" #include "GuiObject.hxx" -#include "GuiUtils.hxx" -#include "Array.hxx" +#include "OSystem.hxx" #include "Rect.hxx" -#include "Font.hxx" -#include "bspf.hxx" enum { WIDGET_ENABLED = 1 << 0, @@ -87,7 +87,7 @@ enum { This is the base class for all widgets. @author Stephen Anthony - @version $Id: Widget.hxx,v 1.57 2007-08-12 23:05:12 stephena Exp $ + @version $Id: Widget.hxx,v 1.58 2007-09-03 18:37:24 stephena Exp $ */ class Widget : public GuiObject { diff --git a/stella/src/gui/module.mk b/stella/src/gui/module.mk index fb29cfbc4..457d33972 100644 --- a/stella/src/gui/module.mk +++ b/stella/src/gui/module.mk @@ -27,6 +27,7 @@ MODULE_OBJS := \ src/gui/ProgressDialog.o \ src/gui/RomInfoWidget.o \ src/gui/ScrollBarWidget.o \ + src/gui/Surface.o \ src/gui/CheckListWidget.o \ src/gui/StringListWidget.o \ src/gui/TabWidget.o \ diff --git a/stella/src/macosx/stella.pbproj/project.pbxproj b/stella/src/macosx/stella.pbproj/project.pbxproj index bffb6b0c7..e1fb67fdd 100755 --- a/stella/src/macosx/stella.pbproj/project.pbxproj +++ b/stella/src/macosx/stella.pbproj/project.pbxproj @@ -2852,15 +2852,6 @@ refType = 2; sourceTree = SOURCE_ROOT; }; - 2DDBEAB7084578BF00812C11 = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.cpp.h; - name = GuiUtils.hxx; - path = ../gui/GuiUtils.hxx; - refType = 2; - sourceTree = SOURCE_ROOT; - }; 2DDBEAB8084578BF00812C11 = { fileEncoding = 30; isa = PBXFileReference; diff --git a/stella/src/macosx/stella.xcodeproj/project.pbxproj b/stella/src/macosx/stella.xcodeproj/project.pbxproj index 69d105bcf..5be971f80 100644 --- a/stella/src/macosx/stella.xcodeproj/project.pbxproj +++ b/stella/src/macosx/stella.xcodeproj/project.pbxproj @@ -70,7 +70,6 @@ 2D91740609BA90380026E9FF /* GameInfoDialog.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAB3084578BF00812C11 /* GameInfoDialog.hxx */; }; 2D91740709BA90380026E9FF /* GameList.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAB5084578BF00812C11 /* GameList.hxx */; }; 2D91740809BA90380026E9FF /* GuiObject.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAB6084578BF00812C11 /* GuiObject.hxx */; }; - 2D91740909BA90380026E9FF /* GuiUtils.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAB7084578BF00812C11 /* GuiUtils.hxx */; }; 2D91740A09BA90380026E9FF /* HelpDialog.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAB9084578BF00812C11 /* HelpDialog.hxx */; }; 2D91740B09BA90380026E9FF /* Launcher.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEABB084578BF00812C11 /* Launcher.hxx */; }; 2D91740C09BA90380026E9FF /* LauncherDialog.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEABD084578BF00812C11 /* LauncherDialog.hxx */; }; @@ -495,7 +494,6 @@ 2DDBEAB4084578BF00812C11 /* GameList.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = GameList.cxx; path = ../gui/GameList.cxx; sourceTree = SOURCE_ROOT; }; 2DDBEAB5084578BF00812C11 /* GameList.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = GameList.hxx; path = ../gui/GameList.hxx; sourceTree = SOURCE_ROOT; }; 2DDBEAB6084578BF00812C11 /* GuiObject.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = GuiObject.hxx; path = ../gui/GuiObject.hxx; sourceTree = SOURCE_ROOT; }; - 2DDBEAB7084578BF00812C11 /* GuiUtils.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = GuiUtils.hxx; path = ../gui/GuiUtils.hxx; sourceTree = SOURCE_ROOT; }; 2DDBEAB8084578BF00812C11 /* HelpDialog.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = HelpDialog.cxx; path = ../gui/HelpDialog.cxx; sourceTree = SOURCE_ROOT; }; 2DDBEAB9084578BF00812C11 /* HelpDialog.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = HelpDialog.hxx; path = ../gui/HelpDialog.hxx; sourceTree = SOURCE_ROOT; }; 2DDBEABA084578BF00812C11 /* Launcher.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Launcher.cxx; path = ../gui/Launcher.cxx; sourceTree = SOURCE_ROOT; }; @@ -1008,7 +1006,6 @@ 2DDBEAB4084578BF00812C11 /* GameList.cxx */, 2DDBEAB5084578BF00812C11 /* GameList.hxx */, 2DDBEAB6084578BF00812C11 /* GuiObject.hxx */, - 2DDBEAB7084578BF00812C11 /* GuiUtils.hxx */, 2DDBEAB8084578BF00812C11 /* HelpDialog.cxx */, 2DDBEAB9084578BF00812C11 /* HelpDialog.hxx */, 2D05FF60096E269100A518FE /* InputDialog.cxx */, @@ -1172,7 +1169,6 @@ 2D91740609BA90380026E9FF /* GameInfoDialog.hxx in Headers */, 2D91740709BA90380026E9FF /* GameList.hxx in Headers */, 2D91740809BA90380026E9FF /* GuiObject.hxx in Headers */, - 2D91740909BA90380026E9FF /* GuiUtils.hxx in Headers */, 2D91740A09BA90380026E9FF /* HelpDialog.hxx in Headers */, 2D91740B09BA90380026E9FF /* Launcher.hxx in Headers */, 2D91740C09BA90380026E9FF /* LauncherDialog.hxx in Headers */, diff --git a/stella/src/win32/FrameBufferD3D.cxx b/stella/src/win32/FrameBufferD3D.cxx index 4933356ce..dd638a2c2 100644 --- a/stella/src/win32/FrameBufferD3D.cxx +++ b/stella/src/win32/FrameBufferD3D.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBufferD3D.cxx,v 1.1 2007-08-05 15:34:26 stephena Exp $ +// $Id: FrameBufferD3D.cxx,v 1.2 2007-09-03 18:37:24 stephena Exp $ //============================================================================ #ifdef DISPLAY_D3D @@ -29,7 +29,6 @@ #include "Settings.hxx" #include "OSystem.hxx" #include "Font.hxx" -#include "GuiUtils.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FrameBufferD3D::FrameBufferD3D(OSystem* osystem) diff --git a/stella/src/win32/FrameBufferD3D.hxx b/stella/src/win32/FrameBufferD3D.hxx index b6667e63d..1498ffb86 100644 --- a/stella/src/win32/FrameBufferD3D.hxx +++ b/stella/src/win32/FrameBufferD3D.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBufferD3D.hxx,v 1.1 2007-08-05 15:34:26 stephena Exp $ +// $Id: FrameBufferD3D.hxx,v 1.2 2007-09-03 18:37:24 stephena Exp $ //============================================================================ #ifndef FRAMEBUFFER_D3D_HXX @@ -29,7 +29,6 @@ #include #include "bspf.hxx" -#include "GuiUtils.hxx" #include "FrameBuffer.hxx" class OSystem; @@ -39,7 +38,7 @@ class GUI::Font; This class implements an SDL Direct3D framebuffer. @author Stephen Anthony - @version $Id: FrameBufferD3D.hxx,v 1.1 2007-08-05 15:34:26 stephena Exp $ + @version $Id: FrameBufferD3D.hxx,v 1.2 2007-09-03 18:37:24 stephena Exp $ */ class FrameBufferD3D : public FrameBuffer { diff --git a/stella/src/win32/Stella.vcproj b/stella/src/win32/Stella.vcproj index c0e907a95..11c1b80af 100755 --- a/stella/src/win32/Stella.vcproj +++ b/stella/src/win32/Stella.vcproj @@ -1240,10 +1240,6 @@ RelativePath="..\gui\GuiObject.hxx" > - -