diff options
author | lordjaxom <lordjaxom> | 2004-06-01 21:02:41 +0000 |
---|---|---|
committer | lordjaxom <lordjaxom> | 2004-06-01 21:02:41 +0000 |
commit | e535cdbe09d9c13d79cd6722aafca5798b7d1e35 (patch) | |
tree | 640a6597a28e3f548a469b3c19e681d48a0622dc /common.c | |
parent | 37b57e7872214cc59119faf29bd058362504b3f6 (diff) | |
download | vdr-plugin-text2skin-e535cdbe09d9c13d79cd6722aafca5798b7d1e35.tar.gz vdr-plugin-text2skin-e535cdbe09d9c13d79cd6722aafca5798b7d1e35.tar.bz2 |
- fixed possible segfault when showing language logo (happened when channelv0.0.1-rc3
was not available)
- fixed some memory leaks
- fixed "too many colors used in palette" warning for non-imlib-users
Diffstat (limited to 'common.c')
-rw-r--r-- | common.c | 19 |
1 files changed, 18 insertions, 1 deletions
@@ -1,5 +1,5 @@ /* - * $Id: common.c,v 1.4 2004/05/31 19:54:12 lordjaxom Exp $ + * $Id: common.c,v 1.5 2004/06/01 21:02:38 lordjaxom Exp $ */ #define __STL_CONFIG_H @@ -62,6 +62,23 @@ void DrawTextTransparent(cOsd *Osd, int x, int y, const char *s, tColor ColorFg, } } +void DrawBitmap(cOsd *Osd, int x, int y, cBitmap &Bitmap, tColor ColorFg, tColor ColorBg) { + if (ColorFg || ColorBg) { + Bitmap.SetColor(0, ColorBg); + Bitmap.SetColor(1, ColorFg); + } + tColor fill = Bitmap.Color(*Bitmap.Data(0, 0)); // to be sure to grab a USED color + Osd->DrawRectangle(x, y, x + Bitmap.Width() - 1, y + Bitmap.Height() - 1, fill); // to be sure the palette is reset, if the Bitmap covers an Area + for (int iy = 0; iy < Bitmap.Height(); iy++) { + const tIndex *ptr = Bitmap.Data(0, iy); + for (int ix = 0; ix < Bitmap.Width(); ix++, ptr += sizeof(tIndex)) { + // DrawPixel is b0rked + //Osd->DrawPixel(x + ix, y + iy, Bitmap.Color(*ptr)); + Osd->DrawRectangle(x + ix, y + iy, x + ix, y + iy, Bitmap.Color(*ptr)); + } + } +} + const char *ChannelNumber(const cChannel *Channel, int Number) { static char buffer[256]; buffer[0] = '\0'; |