Merged format initialization into InitSize to allow for backends not supporting gfx transactions.
svn-id: r41801
This commit is contained in:
parent
a937dfde96
commit
7c62242315
5 changed files with 30 additions and 41 deletions
|
@ -353,23 +353,22 @@ int OSystem_SDL::getGraphicsMode() const {
|
|||
assert (_transactionMode == kTransactionNone);
|
||||
return _videoMode.mode;
|
||||
}
|
||||
#ifdef ENABLE_RGB_COLOR
|
||||
void OSystem_SDL::initFormat(Graphics::PixelFormat format) {
|
||||
|
||||
void OSystem_SDL::initSize(uint w, uint h, Graphics::PixelFormat format) {
|
||||
assert(_transactionMode == kTransactionActive);
|
||||
|
||||
#ifdef ENABLE_RGB_COLOR
|
||||
//avoid redundant format changes
|
||||
if (format == _videoMode.format)
|
||||
return;
|
||||
assert(format.bytesPerPixel > 0);
|
||||
|
||||
if (format != _videoMode.format)
|
||||
{
|
||||
_videoMode.format = format;
|
||||
_transactionDetails.formatChanged = true;
|
||||
_screenFormat = format;
|
||||
}
|
||||
#endif
|
||||
|
||||
void OSystem_SDL::initSize(uint w, uint h) {
|
||||
assert(_transactionMode == kTransactionActive);
|
||||
|
||||
// Avoid redundant res changes
|
||||
if ((int)w == _videoMode.screenWidth && (int)h == _videoMode.screenHeight)
|
||||
return;
|
||||
|
|
|
@ -82,10 +82,6 @@ public:
|
|||
TransactionError endGFXTransaction(void);
|
||||
|
||||
#ifdef ENABLE_RGB_COLOR
|
||||
// Set the depth and format of the video bitmap
|
||||
// Typically, CLUT8
|
||||
virtual void initFormat(Graphics::PixelFormat format);
|
||||
|
||||
// Game screen
|
||||
virtual Graphics::PixelFormat getScreenFormat() const { return _screenFormat; }
|
||||
|
||||
|
@ -108,9 +104,9 @@ public:
|
|||
}
|
||||
#endif
|
||||
|
||||
// Set the size of the video bitmap.
|
||||
// Typically, 320x200
|
||||
virtual void initSize(uint w, uint h); // overloaded by CE backend
|
||||
// Set the size and format of the video bitmap.
|
||||
// Typically, 320x200 CLUT8
|
||||
virtual void initSize(uint w, uint h, Graphics::PixelFormat format); // overloaded by CE backend
|
||||
|
||||
virtual int getScreenChangeID() const { return _screenChangeCount; }
|
||||
|
||||
|
|
|
@ -226,9 +226,6 @@ static void setupGraphics(OSystem &system) {
|
|||
// Set the user specified graphics mode (if any).
|
||||
system.setGraphicsMode(ConfMan.get("gfx_mode").c_str());
|
||||
|
||||
#ifdef ENABLE_RGB_COLOR
|
||||
system.initFormat(Graphics::PixelFormat::createFormatCLUT8());
|
||||
#endif
|
||||
system.initSize(320, 200);
|
||||
|
||||
if (ConfMan.hasKey("aspect_ratio"))
|
||||
|
|
|
@ -344,21 +344,6 @@ public:
|
|||
virtual int getGraphicsMode() const = 0;
|
||||
|
||||
#ifdef ENABLE_RGB_COLOR
|
||||
/**
|
||||
* Set the color format of the virtual screen. Typical formats include:
|
||||
* CLUT8 (e.g. 256 color, for most games)
|
||||
* RGB555 (e.g. 16-bit color, for later SCUMM HE games)
|
||||
* RGB565 (e.g. 16-bit color, for Urban Runner)
|
||||
*
|
||||
* This is the pixel format for which the client code generates data;
|
||||
* this is not necessarily equal to the hardware pixel format. For example,
|
||||
* a backend may perform color lookup of 8-bit graphics before pushing
|
||||
* a screen to hardware, or correct the ARGB color order.
|
||||
*
|
||||
* @param format A pixel format that the backend screen will use
|
||||
*/
|
||||
virtual void initFormat(Graphics::PixelFormat format) = 0;
|
||||
|
||||
/**
|
||||
* Returns the pixel format of the screen.
|
||||
* @see Graphics::PixelFormat
|
||||
|
@ -373,7 +358,7 @@ public:
|
|||
#endif
|
||||
|
||||
/**
|
||||
* Set the size of the virtual screen. Typical sizes include:
|
||||
* Set the size and color format of the virtual screen. Typical sizes include:
|
||||
* - 320x200 (e.g. for most SCUMM games, and Simon)
|
||||
* - 320x240 (e.g. for FM-TOWN SCUMM games)
|
||||
* - 640x480 (e.g. for Curse of Monkey Island)
|
||||
|
@ -384,10 +369,21 @@ public:
|
|||
* GraphicsMode); stretch the data to perform aspect ratio correction;
|
||||
* or shrink it to fit on small screens (in cell phones).
|
||||
*
|
||||
* Typical formats include:
|
||||
* CLUT8 (e.g. 256 color, for most games)
|
||||
* RGB555 (e.g. 16-bit color, for later SCUMM HE games)
|
||||
* RGB565 (e.g. 16-bit color, for Urban Runner)
|
||||
*
|
||||
* This is the pixel format for which the client code generates data;
|
||||
* this is not necessarily equal to the hardware pixel format. For example,
|
||||
* a backend may perform color lookup of 8-bit graphics before pushing
|
||||
* a screen to hardware, or correct the ARGB color order.
|
||||
*
|
||||
* @param width the new virtual screen width
|
||||
* @param height the new virtual screen height
|
||||
* @param format the new virtual screen pixel format
|
||||
*/
|
||||
virtual void initSize(uint width, uint height) = 0;
|
||||
virtual void initSize(uint width, uint height, Graphics::PixelFormat format = Graphics::PixelFormat::createFormatCLUT8()) = 0;
|
||||
|
||||
/**
|
||||
* Return an int value which is changed whenever any screen
|
||||
|
|
|
@ -135,9 +135,10 @@ void initGraphics(int width, int height, bool defaultTo1xScaler, Graphics::Pixel
|
|||
|
||||
initCommonGFX(defaultTo1xScaler);
|
||||
#ifdef ENABLE_RGB_COLOR
|
||||
g_system->initFormat(format);
|
||||
#endif
|
||||
g_system->initSize(width, height, format);
|
||||
#else
|
||||
g_system->initSize(width, height);
|
||||
#endif
|
||||
|
||||
OSystem::TransactionError gfxError = g_system->endGFXTransaction();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue