Removed PixelFormat convenience constructors at behest of Max and Eugene.

svn-id: r42207
This commit is contained in:
Jody Northup 2009-07-07 07:50:40 +00:00
parent 11717150e7
commit 2c5d11b67b
9 changed files with 53 additions and 95 deletions

View file

@ -361,7 +361,7 @@ void OSystem_SDL::initSize(uint w, uint h, const Graphics::PixelFormat *format)
//avoid redundant format changes //avoid redundant format changes
Graphics::PixelFormat newFormat; Graphics::PixelFormat newFormat;
if (!format) if (!format)
newFormat = Graphics::PixelFormat::createFormatCLUT8(); newFormat = Graphics::PixelFormat(1, 8, 8, 8, 8, 0, 0, 0, 0);
else else
newFormat = *format; newFormat = *format;

View file

@ -197,8 +197,8 @@ OSystem_SDL::OSystem_SDL()
#endif #endif
_hwscreen(0), _screen(0), _tmpscreen(0), _hwscreen(0), _screen(0), _tmpscreen(0),
#ifdef ENABLE_RGB_COLOR #ifdef ENABLE_RGB_COLOR
_screenFormat(Graphics::PixelFormat::createFormatCLUT8()), _screenFormat(Graphics::PixelFormat(1, 8, 8, 8, 8, 0, 0, 0, 0)),
_cursorFormat(Graphics::PixelFormat::createFormatCLUT8()), _cursorFormat(Graphics::PixelFormat(1, 8, 8, 8, 8, 0, 0, 0, 0)),
#endif #endif
_overlayVisible(false), _overlayVisible(false),
_overlayscreen(0), _tmpscreen2(0), _overlayscreen(0), _tmpscreen2(0),

View file

@ -94,29 +94,44 @@ public:
if (HWFormat->BitsPerPixel >= 32) if (HWFormat->BitsPerPixel >= 32)
{ {
list.push_back(Graphics::PixelFormat::createFormatRGBA8888()); list.push_back(Graphics::PixelFormat::createFormatRGBA8888());
list.push_back(Graphics::PixelFormat::createFormatARGB8888()); list.push_back(Graphics::PixelFormat(4, 0, 0, 0, 0, 16, 8, 0, 24)
list.push_back(Graphics::PixelFormat::createFormatABGR8888()); );
list.push_back(Graphics::PixelFormat::createFormatBGRA8888()); } list.push_back(Graphics::PixelFormat(4, 0, 0, 0, 0, 0, 8, 16, 24)
);
list.push_back(Graphics::PixelFormat(4, 0, 0, 0, 0, 8, 16, 24, 0)
); }
if (HWFormat->BitsPerPixel >= 24) if (HWFormat->BitsPerPixel >= 24)
{ {
list.push_back(Graphics::PixelFormat::createFormatRGB888()); list.push_back(Graphics::PixelFormat(3, 0, 0, 0, 8, 16, 8, 0, 0)
list.push_back(Graphics::PixelFormat::createFormatBGR888()); );
list.push_back(Graphics::PixelFormat(3, 0, 0, 0, 8, 0, 8, 16, 0)
);
} }
#endif //ENABLE_32BIT #endif //ENABLE_32BIT
if (HWFormat->BitsPerPixel >= 16) if (HWFormat->BitsPerPixel >= 16)
{ {
list.push_back(Graphics::PixelFormat::createFormatRGB565()); list.push_back(Graphics::PixelFormat(2, 3, 2, 3, 8, 11, 5, 0, 0)
list.push_back(Graphics::PixelFormat::createFormatXRGB1555()); );
list.push_back(Graphics::PixelFormat::createFormatRGB555()); list.push_back(Graphics::PixelFormat(2, 3, 3, 3, 7, 10, 5, 0, 15)
list.push_back(Graphics::PixelFormat::createFormatRGBA4444()); );
list.push_back(Graphics::PixelFormat::createFormatARGB4444()); list.push_back(Graphics::PixelFormat(2, 3, 3, 3, 8, 10, 5, 0, 0)
list.push_back(Graphics::PixelFormat::createFormatBGR565()); );
list.push_back(Graphics::PixelFormat::createFormatXBGR1555()); list.push_back(Graphics::PixelFormat(2, 4, 4, 4, 4, 12, 8, 4, 0)
list.push_back(Graphics::PixelFormat::createFormatBGR555()); );
list.push_back(Graphics::PixelFormat::createFormatABGR4444()); list.push_back(Graphics::PixelFormat(2, 4, 4, 4, 4, 8, 4, 0, 12)
list.push_back(Graphics::PixelFormat::createFormatBGRA4444()); );
list.push_back(Graphics::PixelFormat(2, 3, 2, 3, 8, 0, 5, 11, 0)
);
list.push_back(Graphics::PixelFormat(2, 3, 3, 3, 7, 0, 5, 10, 15)
);
list.push_back(Graphics::PixelFormat(2, 3, 3, 3, 8, 0, 5, 10, 0)
);
list.push_back(Graphics::PixelFormat(2, 4, 4, 4, 4, 0, 4, 8, 12)
);
list.push_back(Graphics::PixelFormat(2, 4, 4, 4, 4, 4, 8, 12, 0)
);
} }
list.push_back(Graphics::PixelFormat::createFormatCLUT8()); list.push_back(Graphics::PixelFormat(1, 8, 8, 8, 8, 0, 0, 0, 0));
return list; return list;
} }
#endif #endif

View file

@ -368,11 +368,14 @@ public:
* *
* EG: a backend that supports 32-bit ABGR and 16-bit 555 BGR in hardware * EG: a backend that supports 32-bit ABGR and 16-bit 555 BGR in hardware
* and provides conversion from equivalent RGB(A) modes should order its list * and provides conversion from equivalent RGB(A) modes should order its list
* 1) Graphics::PixelFormat::createFormatABGR8888() * 1) Graphics::PixelFormat(4, 0, 0, 0, 0, 0, 8, 16, 24)
* 2) Graphics::PixelFormat::createFormatBGR555()
* 3) Graphics::PixelFormat::createFormatRGBA8888() * 2) Graphics::PixelFormat(2, 3, 3, 3, 8, 0, 5, 10, 0)
* 4) Graphics::PixelFormat::createFormatRGB555()
* 5) Graphics::PixelFormat::createFormatCLUT8() * 3) Graphics::PixelFormat(4, 0, 0, 0, 0, 24, 16, 8, 0)
* 4) Graphics::PixelFormat(2, 3, 3, 3, 8, 10, 5, 0, 0)
* 5) Graphics::PixelFormat(1, 8, 8, 8, 8, 0, 0, 0, 0)
* *
* @see Graphics::PixelFormat * @see Graphics::PixelFormat
* *
@ -384,12 +387,12 @@ public:
virtual Common::List<Graphics::PixelFormat> getSupportedFormats() const = 0; virtual Common::List<Graphics::PixelFormat> getSupportedFormats() const = 0;
#else #else
inline Graphics::PixelFormat getScreenFormat() const { inline Graphics::PixelFormat getScreenFormat() const {
return Graphics::PixelFormat::createFormatCLUT8(); return Graphics::PixelFormat(1, 8, 8, 8, 8, 0, 0, 0, 0);
}; };
inline Common::List<Graphics::PixelFormat> getSupportedFormats() const { inline Common::List<Graphics::PixelFormat> getSupportedFormats() const {
Common::List<Graphics::PixelFormat> list; Common::List<Graphics::PixelFormat> list;
list.push_back(Graphics::PixelFormat::createFormatCLUT8()); list.push_back(Graphics::PixelFormat(1, 8, 8, 8, 8, 0, 0, 0, 0));
return list; return list;
}; };
#endif #endif

View file

@ -78,11 +78,11 @@ Common::Error GroovieEngine::run() {
// Save the enabled mode as it can be both an RGB mode or CLUT8 // Save the enabled mode as it can be both an RGB mode or CLUT8
_pixelFormat = _system->getScreenFormat(); _pixelFormat = _system->getScreenFormat();
_mode8bit = (_pixelFormat == Graphics::PixelFormat::createFormatCLUT8()); _mode8bit = (_pixelFormat == Graphics::PixelFormat(1, 8, 8, 8, 8, 0, 0, 0, 0));
break; break;
case kGroovieT7G: case kGroovieT7G:
initGraphics(640, 480, true); initGraphics(640, 480, true);
_pixelFormat = Graphics::PixelFormat::createFormatCLUT8(); _pixelFormat = Graphics::PixelFormat(1, 8, 8, 8, 8, 0, 0, 0, 0);
break; break;
} }

View file

@ -1085,7 +1085,8 @@ Common::Error ScummEngine::init() {
(_screenWidth * _textSurfaceMultiplier > 320)); (_screenWidth * _textSurfaceMultiplier > 320));
} else if (_game.features & GF_16BIT_COLOR) { } else if (_game.features & GF_16BIT_COLOR) {
#ifdef ENABLE_RGB_COLOR #ifdef ENABLE_RGB_COLOR
Graphics::PixelFormat format = Graphics::PixelFormat::createFormatRGB555(); Graphics::PixelFormat format = Graphics::PixelFormat(2, 3, 3, 3, 8, 10, 5, 0, 0)
;
initGraphics(_screenWidth, _screenHeight, _screenWidth > 320, &format); initGraphics(_screenWidth, _screenHeight, _screenWidth > 320, &format);
if (format != _system->getScreenFormat()) if (format != _system->getScreenFormat())
return Common::kUnsupportedColorMode; return Common::kUnsupportedColorMode;

View file

@ -138,7 +138,7 @@ void CursorManager::replaceCursor(const byte *buf, uint w, uint h, int hotspotX,
if (format) if (format)
cur->_format = *format; cur->_format = *format;
else else
cur->_format = Graphics::PixelFormat::createFormatCLUT8(); cur->_format = Graphics::PixelFormat(1, 8, 8, 8, 8, 0, 0, 0, 0);
#endif #endif
g_system->setMouseCursor(cur->_data, w, h, hotspotX, hotspotY, keycolor, targetScale, format); g_system->setMouseCursor(cur->_data, w, h, hotspotX, hotspotY, keycolor, targetScale, format);

View file

@ -181,13 +181,13 @@ private:
Cursor(const byte *data, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor = 0xFFFFFFFF, int targetScale = 1, const Graphics::PixelFormat *format = NULL) { Cursor(const byte *data, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor = 0xFFFFFFFF, int targetScale = 1, const Graphics::PixelFormat *format = NULL) {
#ifdef ENABLE_RGB_COLOR #ifdef ENABLE_RGB_COLOR
if (!format) if (!format)
_format = Graphics::PixelFormat::createFormatCLUT8(); _format = Graphics::PixelFormat(1, 8, 8, 8, 8, 0, 0, 0, 0);
else else
_format = *format; _format = *format;
_size = w * h * _format.bytesPerPixel; _size = w * h * _format.bytesPerPixel;
_keycolor &= ((1 << (_format.bytesPerPixel << 3)) - 1); _keycolor &= ((1 << (_format.bytesPerPixel << 3)) - 1);
#else #else
_format = Graphics::PixelFormat::createFormatCLUT8(); _format = Graphics::PixelFormat(1, 8, 8, 8, 8, 0, 0, 0, 0);
_size = w * h; _size = w * h;
_keycolor &= 0xFF; _keycolor &= 0xFF;
#endif #endif

View file

@ -65,67 +65,6 @@ struct PixelFormat {
rShift = RShift, gShift = GShift, bShift = BShift, aShift = AShift; rShift = RShift, gShift = GShift, bShift = BShift, aShift = AShift;
} }
/////////////////////////////////////////////////////////
// Convenience functions for creating standard formats //
/////////////////////////////////////////////////////////
// 256 color palette.
static inline PixelFormat createFormatCLUT8() {
return PixelFormat(1, 8, 8, 8, 8, 0, 0, 0, 0);
}
// 2 Bytes-per-pixel modes
static inline PixelFormat createFormatRGB555() {
return PixelFormat(2, 3, 3, 3, 8, 10, 5, 0, 0);
}
static inline PixelFormat createFormatBGR555() {
return PixelFormat(2, 3, 3, 3, 8, 0, 5, 10, 0);
}
static inline PixelFormat createFormatXRGB1555() {
// Special case, alpha bit is always high in this mode.
return PixelFormat(2, 3, 3, 3, 7, 10, 5, 0, 15);
}
static inline PixelFormat createFormatXBGR1555() {
// Special case, alpha bit is always high in this mode.
return PixelFormat(2, 3, 3, 3, 7, 0, 5, 10, 15);
}
static inline PixelFormat createFormatRGB565() {
return PixelFormat(2, 3, 2, 3, 8, 11, 5, 0, 0);
}
static inline PixelFormat createFormatBGR565() {
return PixelFormat(2, 3, 2, 3, 8, 0, 5, 11, 0);
}
static inline PixelFormat createFormatRGBA4444() {
return PixelFormat(2, 4, 4, 4, 4, 12, 8, 4, 0);
}
static inline PixelFormat createFormatARGB4444() {
return PixelFormat(2, 4, 4, 4, 4, 8, 4, 0, 12);
}
static inline PixelFormat createFormatABGR4444() {
return PixelFormat(2, 4, 4, 4, 4, 0, 4, 8, 12);
}
static inline PixelFormat createFormatBGRA4444() {
return PixelFormat(2, 4, 4, 4, 4, 4, 8, 12, 0);
}
// 3 to 4 byte per pixel modes
static inline PixelFormat createFormatRGB888() {
return PixelFormat(3, 0, 0, 0, 8, 16, 8, 0, 0);
}
static inline PixelFormat createFormatBGR888() {
return PixelFormat(3, 0, 0, 0, 8, 0, 8, 16, 0);
}
static inline PixelFormat createFormatRGBA8888() {
return PixelFormat(4, 0, 0, 0, 0, 24, 16, 8, 0);
}
static inline PixelFormat createFormatARGB8888() {
return PixelFormat(4, 0, 0, 0, 0, 16 ,8, 0, 24);
}
static inline PixelFormat createFormatABGR8888() {
return PixelFormat(4, 0, 0, 0, 0, 0, 8, 16, 24);
}
static inline PixelFormat createFormatBGRA8888() {
return PixelFormat(4, 0, 0, 0, 0, 8, 16, 24, 0);
}
inline bool operator==(const PixelFormat &fmt) const { inline bool operator==(const PixelFormat &fmt) const {
// TODO: If aLoss==8, then the value of aShift is irrelevant, and should be ignored. // TODO: If aLoss==8, then the value of aShift is irrelevant, and should be ignored.
return 0 == memcmp(this, &fmt, sizeof(PixelFormat)); return 0 == memcmp(this, &fmt, sizeof(PixelFormat));
@ -211,7 +150,7 @@ struct PixelFormat {
* @param backend The higher priority list, meant to be a list of formats supported by the backend * @param backend The higher priority list, meant to be a list of formats supported by the backend
* @param frontend The lower priority list, meant to be a list of formats supported by the engine * @param frontend The lower priority list, meant to be a list of formats supported by the engine
* @return The first item on the backend list that also occurs on the frontend list * @return The first item on the backend list that also occurs on the frontend list
* or PixelFormat::createFormatCLUT8() if no matching formats were found. * or PixelFormat(1, 8, 8, 8, 8, 0, 0, 0, 0) if no matching formats were found.
*/ */
inline PixelFormat findCompatibleFormat(Common::List<PixelFormat> backend, Common::List<PixelFormat> frontend) { inline PixelFormat findCompatibleFormat(Common::List<PixelFormat> backend, Common::List<PixelFormat> frontend) {
#ifdef ENABLE_RGB_COLOR #ifdef ENABLE_RGB_COLOR
@ -222,7 +161,7 @@ inline PixelFormat findCompatibleFormat(Common::List<PixelFormat> backend, Commo
} }
} }
#endif #endif
return PixelFormat::createFormatCLUT8(); return PixelFormat(1, 8, 8, 8, 8, 0, 0, 0, 0);
} }
} // end of namespace Graphics } // end of namespace Graphics