|
@@ -132,62 +132,32 @@ void _SpoutModeData(display_mode *bmode) {
|
|
|
|
|
|
|
|
|
|
|
|
-int32 HAIKU_ColorSpaceToBitsPerPixel(uint32 colorspace)
|
|
|
+int32 HAIKU_ColorSpaceToSDLPxFormat(uint32 colorspace)
|
|
|
{
|
|
|
- int bitsperpixel;
|
|
|
-
|
|
|
- bitsperpixel = 0;
|
|
|
switch (colorspace) {
|
|
|
- case B_CMAP8:
|
|
|
- bitsperpixel = 8;
|
|
|
- break;
|
|
|
- case B_RGB15:
|
|
|
- case B_RGBA15:
|
|
|
- case B_RGB15_BIG:
|
|
|
- case B_RGBA15_BIG:
|
|
|
- bitsperpixel = 15;
|
|
|
- break;
|
|
|
- case B_RGB16:
|
|
|
- case B_RGB16_BIG:
|
|
|
- bitsperpixel = 16;
|
|
|
- break;
|
|
|
- case B_RGB32:
|
|
|
- case B_RGBA32:
|
|
|
- case B_RGB32_BIG:
|
|
|
- case B_RGBA32_BIG:
|
|
|
- bitsperpixel = 32;
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- return(bitsperpixel);
|
|
|
-}
|
|
|
-
|
|
|
-int32 HAIKU_BPPToSDLPxFormat(int32 bpp) {
|
|
|
- /* Translation taken from SDL_windowsmodes.c */
|
|
|
- switch (bpp) {
|
|
|
- case 32:
|
|
|
- return SDL_PIXELFORMAT_RGB888;
|
|
|
- break;
|
|
|
- case 24: /* May not be supported by Haiku */
|
|
|
- return SDL_PIXELFORMAT_RGB24;
|
|
|
- break;
|
|
|
- case 16:
|
|
|
- return SDL_PIXELFORMAT_RGB565;
|
|
|
+ case B_CMAP8:
|
|
|
+ return SDL_PIXELFORMAT_INDEX8;
|
|
|
break;
|
|
|
- case 15:
|
|
|
+ case B_RGB15:
|
|
|
+ case B_RGBA15:
|
|
|
+ case B_RGB15_BIG:
|
|
|
+ case B_RGBA15_BIG:
|
|
|
return SDL_PIXELFORMAT_RGB555;
|
|
|
break;
|
|
|
- case 8:
|
|
|
- return SDL_PIXELFORMAT_INDEX8;
|
|
|
+ case B_RGB16:
|
|
|
+ case B_RGB16_BIG:
|
|
|
+ return SDL_PIXELFORMAT_RGB565;
|
|
|
break;
|
|
|
- case 4: /* May not be supported by Haiku */
|
|
|
- return SDL_PIXELFORMAT_INDEX4LSB;
|
|
|
+ case B_RGB32:
|
|
|
+ case B_RGBA32:
|
|
|
+ case B_RGB32_BIG:
|
|
|
+ case B_RGBA32_BIG:
|
|
|
+ return SDL_PIXELFORMAT_RGB888;
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
/* May never get here, but safer and needed to shut up compiler */
|
|
|
- SDL_SetError("Invalid bpp value");
|
|
|
+ SDL_SetError("Invalid color space");
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -210,8 +180,7 @@ static void _BDisplayModeToSdlDisplayMode(display_mode *bmode,
|
|
|
#endif
|
|
|
|
|
|
/* Set the format */
|
|
|
- int32 bpp = HAIKU_ColorSpaceToBitsPerPixel(bmode->space);
|
|
|
- mode->format = HAIKU_BPPToSDLPxFormat(bpp);
|
|
|
+ mode->format = HAIKU_ColorSpaceToSDLPxFormat(bmode->space);
|
|
|
}
|
|
|
|
|
|
/* Later, there may be more than one monitor available */
|