mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-22 12:12:16 +00:00
API modification -- replaced "Graphics::PixelFormat getBestFormat()" with "Common::List<Graphics::PixelFormat> getSupportedFormats()"
svn-id: r41854
This commit is contained in:
parent
865129a563
commit
53eb83dc95
@ -86,21 +86,38 @@ public:
|
||||
virtual Graphics::PixelFormat getScreenFormat() const { return _screenFormat; }
|
||||
|
||||
// Highest supported
|
||||
virtual Graphics::PixelFormat getBestFormat() const {
|
||||
//TODO scale down 16/32 bit based on hardware support
|
||||
{
|
||||
SDL_PixelFormat *HWFormat = SDL_GetVideoInfo()->vfmt;
|
||||
virtual Common::List<Graphics::PixelFormat> getSupportedFormats() const {
|
||||
//TODO determine hardware color component order
|
||||
Common::List<Graphics::PixelFormat> list;
|
||||
SDL_PixelFormat *HWFormat = SDL_GetVideoInfo()->vfmt;
|
||||
#ifdef ENABLE_32BIT
|
||||
if (HWFormat->BitsPerPixel >= 32)
|
||||
return Graphics::PixelFormat::createFormatRGBA8888();
|
||||
if (HWFormat->BitsPerPixel >= 24)
|
||||
return Graphics::
|
||||
FormatRGB888();
|
||||
#endif //ENABLE_32BIT
|
||||
if (HWFormat->BitsPerPixel >= 16)
|
||||
return Graphics::PixelFormat::createFormatRGB565();
|
||||
if (HWFormat->BitsPerPixel >= 32)
|
||||
{
|
||||
list.push_back(Graphics::PixelFormat::createFormatRGBA8888());
|
||||
list.push_back(Graphics::PixelFormat::createFormatARGB8888());
|
||||
list.push_back(Graphics::PixelFormat::createFormatABGR8888());
|
||||
list.push_back(Graphics::PixelFormat::createFormatBGRA8888()); }
|
||||
if (HWFormat->BitsPerPixel >= 24)
|
||||
{
|
||||
list.push_back(Graphics::PixelFormat::createFormatRGB888());
|
||||
list.push_back(Graphics::PixelFormat::createFormatBGR888());
|
||||
}
|
||||
return Graphics::PixelFormat::createFormatCLUT8();
|
||||
#endif //ENABLE_32BIT
|
||||
if (HWFormat->BitsPerPixel >= 16)
|
||||
{
|
||||
list.push_back(Graphics::PixelFormat::createFormatRGB565());
|
||||
list.push_back(Graphics::PixelFormat::createFormatXRGB1555());
|
||||
list.push_back(Graphics::PixelFormat::createFormatRGB555());
|
||||
list.push_back(Graphics::PixelFormat::createFormatRGBA4444());
|
||||
list.push_back(Graphics::PixelFormat::createFormatARGB4444());
|
||||
list.push_back(Graphics::PixelFormat::createFormatBGR565());
|
||||
list.push_back(Graphics::PixelFormat::createFormatXBGR1555());
|
||||
list.push_back(Graphics::PixelFormat::createFormatBGR555());
|
||||
list.push_back(Graphics::PixelFormat::createFormatABGR4444());
|
||||
list.push_back(Graphics::PixelFormat::createFormatBGRA4444());
|
||||
}
|
||||
list.push_back(Graphics::PixelFormat::createFormatCLUT8());
|
||||
return list;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -345,16 +345,34 @@ public:
|
||||
|
||||
#ifdef ENABLE_RGB_COLOR
|
||||
/**
|
||||
* Returns the pixel format of the screen.
|
||||
* Determine the pixel format currently in use for screen rendering.
|
||||
* @return the active screen pixel format.
|
||||
* @see Graphics::PixelFormat
|
||||
*/
|
||||
virtual Graphics::PixelFormat getScreenFormat() const = 0;
|
||||
|
||||
/**
|
||||
* Returns the highest color pixel format supported by the backend
|
||||
* Returns a list of all pixel formats supported by the backend.
|
||||
* The first item in the list must be directly supported by hardware,
|
||||
* and provide the largest color space of those formats with direct
|
||||
* hardware support. It is also strongly recommended that remaining
|
||||
* formats should be placed in order of descending preference for the
|
||||
* backend to use.
|
||||
*
|
||||
* 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
|
||||
* 1) Graphics::PixelFormat::createFormatABGR8888()
|
||||
* 2) Graphics::PixelFormat::createFormatBGR555()
|
||||
* 3) Graphics::PixelFormat::createFormatRGBA8888()
|
||||
* 4) Graphics::PixelFormat::createFormatRGB555()
|
||||
* 5) Graphics::PixelFormat::createFormatCLUT8()
|
||||
*
|
||||
* @see Graphics::PixelFormat
|
||||
*
|
||||
* @note All backends supporting RGB color must be able to accept game data
|
||||
* in RGB color order, even if hardware uses BGR or some other color order.
|
||||
*/
|
||||
virtual Graphics::PixelFormat getBestFormat() const = 0;
|
||||
virtual Common::List<Graphics::PixelFormat> getSupportedFormats() const = 0;
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -73,7 +73,7 @@ Common::Error GroovieEngine::run() {
|
||||
switch (_gameDescription->version) {
|
||||
case kGroovieV2:
|
||||
#ifdef ENABLE_RGB_COLOR
|
||||
_pixelFormat = _system->getBestFormat();
|
||||
_pixelFormat = _system->getSupportedFormats().front();
|
||||
initGraphics(640, 480, true, _pixelFormat);
|
||||
break;
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user