aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/system.h16
-rw-r--r--common/util.h22
2 files changed, 14 insertions, 24 deletions
diff --git a/common/system.h b/common/system.h
index d6447f2537..13a1fab3fd 100644
--- a/common/system.h
+++ b/common/system.h
@@ -71,8 +71,7 @@ public:
PROP_SET_GFX_MODE = 4,
PROP_SHOW_DEFAULT_CURSOR = 5,
PROP_GET_SAMPLE_RATE = 6,
- PROP_GET_FULLSCREEN = 7,
- PROP_OVERLAY_IS_565 = 8
+ PROP_GET_FULLSCREEN = 7
};
union Property {
const char *caption;
@@ -168,6 +167,19 @@ public:
virtual void clear_overlay() = 0;
virtual void grab_overlay(int16 *buf, int pitch) = 0;
virtual void copy_rect_overlay(const int16 *buf, int pitch, int x, int y, int w, int h) = 0;
+
+ // Methods that convert RBG to/from colors suitable for the overlay.
+ // Default implementation assumes 565 mode.
+ virtual int16 RBGToColor(uint8 r, uint8 g, uint8 b)
+ {
+ return ((((r>>3)&0x1F) << 11) | (((g>>2)&0x3F) << 5) | ((b>>3)&0x1F));
+ }
+ virtual void colorToRBG(int16 color, uint8 &r, uint8 &g, uint8 &b)
+ {
+ r = (((color>>11)&0x1F) << 3);
+ g = (((color>>5)&0x3F) << 2);
+ b = ((color&0x1F) << 3);
+ }
};
diff --git a/common/util.h b/common/util.h
index a5e13c0e4f..3be8c556e0 100644
--- a/common/util.h
+++ b/common/util.h
@@ -38,28 +38,6 @@
static inline void SWAP(int &a, int &b) { int tmp=a; a=b; b=tmp; }
#define ARRAYSIZE(x) (sizeof(x)/sizeof(x[0]))
-#if USE_555_FORMAT
-// Assume the 16 bit graphics data is in 5-5-5 format
-#define RGB_TO_16(r,g,b) (((((r)>>3)&0x1F) << 10) | ((((g)>>3)&0x1F) << 5) | (((b)>>3)&0x1F))
-#define RED_FROM_16(x) ((((x)>>10)&0x1F) << 3)
-#define GREEN_FROM_16(x) ((((x)>>5)&0x1F) << 3)
-#define BLUE_FROM_16(x) (((x)&0x1F) << 3)
-
-#elif defined(__GP32__) //ph0x
-// GP32 format 5-5-5-1 (first bit means intensity)
-#define RGB_TO_16(r,g,b) (((((r)>>3)&0x1F) << 11) | ((((g)>>3)&0x1F) << 6) | (((b)>>3)&0x1F)<<1)
-#define RED_FROM_16(x) ((((x)>>11)&0x1F) << 3)
-#define GREEN_FROM_16(x) ((((x)>>6) &0x1F) << 3)
-#define BLUE_FROM_16(x) ((((x)>>1) &0x1F) << 3)
-
-#else
-// Assume the 16 bit graphics data is in 5-6-5 format
-#define RGB_TO_16(r,g,b) (((((r)>>3)&0x1F) << 11) | ((((g)>>2)&0x3F) << 5) | (((b)>>3)&0x1F))
-#define RED_FROM_16(x) ((((x)>>11)&0x1F) << 3)
-#define GREEN_FROM_16(x) ((((x)>>5)&0x3F) << 2)
-#define BLUE_FROM_16(x) (((x)&0x1F) << 3)
-#endif
-
int RGBMatch(byte *palette, int r, int g, int b);
int Blend(int src, int dst, byte *palette);
void ClearBlendCache(byte *palette, int weight);