]> git.vomp.tv Git - vompclient-marten.git/commitdiff
Remove pixel based apis, preparation for vector based osd
authorMarten Richter <marten.richter@freenet.de>
Sat, 15 Sep 2012 10:39:18 +0000 (12:39 +0200)
committerMarten Richter <marten.richter@freenet.de>
Sat, 15 Sep 2012 10:39:18 +0000 (12:39 +0200)
20 files changed:
GNUmakefile
boxx.cc
boxx.h
defines.h
objects.mk
surface.cc
surface.h
surfacedirectfb.h
surfacemvp.h
surfaceopengl.h
surfacewin.h
vopts.cc
vscreensaver.cc
vvideolivetv.cc
vvideolivetv.h
vvideorec.cc
vvideorec.h
wsymbol.cc
wwss.cc
wwss.h

index f15195c5493f5614693cad7bff853cbe1a64fdf0..81931d1f735281c608313d7e98d5358ec247eead 100644 (file)
@@ -45,7 +45,7 @@ $(info MVP flags)
 LDFLAGS = -Wall -static\r
 LIBS = -lpthread -lrt\r
 \r
-OBJECTS += main.o threadp.o remotemvp.o ledmvp.o mtdmvp.o videomvp.o audiomvp.o osdmvp.o surfacemvp.o vmedialist.o vcolourtuner.o vmediaview.o vvideomedia.o mediafile.o \r
+OBJECTS += wwss.o main.o threadp.o remotemvp.o ledmvp.o mtdmvp.o videomvp.o audiomvp.o osdmvp.o surfacemvp.o vmedialist.o vcolourtuner.o vmediaview.o vvideomedia.o mediafile.o \r
 TIOBJECT = ticonfig.o\r
 CROSSLIBS = ../jpeg/jpeg-6b/libjpeg.a\r
 INCLUDES = -I../jpeg/jpeg-6b  -DVOMP_PLATTFORM_MVP \r
diff --git a/boxx.cc b/boxx.cc
index e10d2ad9c21424c559feab8a1bd27687045b3f2a..e8ca58adee32dd3f42aef607ef34ba46de3bf070 100644 (file)
--- a/boxx.cc
+++ b/boxx.cc
@@ -351,7 +351,8 @@ void Boxx::drawTextCentre(const char* text, int x, int y, const Colour& colour)
   if (parent) parent->drawTextCentre(text, area.x + x, area.y + y, colour);\r
   else  surface->drawTextCentre(text, x, y, colour.rgba());\r
 }\r
-\r
+// Now deprecated\r
+/*\r
 void Boxx::drawPixelAlpha(UINT x, UINT y, const Colour& colour,bool fastdraw)\r
 {\r
   if (parent) parent->drawPixelAlpha(area.x + x, area.y + y, colour,fastdraw);\r
@@ -379,6 +380,7 @@ void Boxx::drawPixel(UINT x, UINT y, const Colour& colour, bool fastdraw)
     surface->drawPixel(x, y, c,fastdraw);\r
   }\r
 }\r
+*/\r
 \r
 void Boxx::drawTTChar(int ox, int oy,int x, int y, cTeletextChar c)\r
 {\r
@@ -399,6 +401,12 @@ void Boxx::drawJpeg(const char *fileName,int x, int y,int *width, int *height)
        else if (surface) surface->drawJpeg(fileName,x,y,width,height);\r
 }\r
 \r
+void Boxx::drawMonoBitmap(UCHAR*base, int dx, int dy, unsigned int height,unsigned int width, Colour& nextColour)\r
+{\r
+       if (parent) parent->drawMonoBitmap(base, area.x +dx,area.y +dy, height,width, nextColour);\r
+       else if (surface) surface->drawMonoBitmap(base, dx,dy, height,width, nextColour);\r
+}\r
+\r
 int Boxx::getFontHeight()\r
 {\r
        if (parent) return parent->getFontHeight();\r
diff --git a/boxx.h b/boxx.h
index 5a4da519fa1979fc7d108ed65380f1b09f445be1..02f8f5f9d028db19050d8544ef8ba7a54ee1287e 100644 (file)
--- a/boxx.h
+++ b/boxx.h
@@ -37,6 +37,7 @@ class Bitmap;
 \r
 class Boxx\r
 {\r
+  friend class Wwss;\r
   public:\r
     Boxx();\r
     virtual ~Boxx();\r
@@ -100,14 +101,17 @@ class Boxx
     void drawText(const char* text, int x, int y, int width, const Colour& colour);\r
     void drawTextRJ(const char* text, int x, int y, const Colour& colour);\r
     void drawTextCentre(const char* text, int x, int y, const Colour& colour);\r
-    void drawPixel(UINT x, UINT y, const Colour& colour, bool fastdraw=false);\r
+    //Now deprecated\r
+    //void drawPixel(UINT x, UINT y, const Colour& colour, bool fastdraw=false);\r
     void drawBitmap(UINT x, UINT y, const Bitmap& bm);\r
-    void drawPixelAlpha(UINT x, UINT y, const Colour& colour,bool fastdraw=false);\r
+   //Now deprecated\r
+    // void drawPixelAlpha(UINT x, UINT y, const Colour& colour,bool fastdraw=false);\r
     int getFontHeight();\r
 \r
     void drawJpeg(const char *fileName,int x, int y,int *width, int *height);\r
 \r
     void drawTTChar(int ox, int oy,int x, int y, cTeletextChar c);\r
+    void drawMonoBitmap(UCHAR*base, int dx, int dy, unsigned int height,unsigned int width, Colour& nextColour);\r
 \r
     /* This is for system which need a locking of the drawing surface to speed up drawing */\r
     void startFastDraw();\r
index 2c8174ae66d50fcbd4f0ec28e2a5682f9585eea9..7a801fde3e3c3853d824baea3c4192114b92f263 100644 (file)
--- a/defines.h
+++ b/defines.h
@@ -123,6 +123,7 @@ long long getTimeMS();
   #define Audio_TYPE AudioMVP\r
   #define Video_TYPE VideoMVP\r
   #define DEFAULT_TCP_WINDOWSIZENR 1  /*=2048*/\r
+  #define PAL_WSS\r
 #endif\r
 \r
 #ifdef VOMP_PLATTFORM_NMT // This was the attempt to port vomp to nmt, it failed but maybe the code is useful at some time\r
index 0ce596edb8fb5a0a921b5d260975fc8fb062de81..b1436c4952921189d47706ba3f25df60366c3b9e 100644 (file)
@@ -10,7 +10,7 @@ OBJECTS1 = command.o  tcp.o dsock.o thread.o timers.o i18n.o       \
            vchannellist.o vwelcome.o vvideorec.o vepgsettimer.o                  \\r
            vchannelselect.o vserverselect.o vconnect.o vepg.o vrecmove.o         \\r
            vradiorec.o vaudioselector.o vscreensaver.o vopts.o                   \\r
-           wselectlist.o wjpeg.o wsymbol.o wbutton.o wtextbox.o wwss.o           \\r
+           wselectlist.o wjpeg.o wsymbol.o wbutton.o wtextbox.o           \\r
            woptionpane.o woptionbox.o wremoteconfig.o wtabbar.o                  \\r
            fonts/helvB24.o fonts/helvB18.o                                       \\r
            remote.o led.o mtd.o  osd.o surface.o                  \\r
index d8a98da6ffd69d6d7dafd11c9e8604c81f5d4359..6860cfacb2780456bc60be3de650eea181a59530 100644 (file)
@@ -292,3 +292,27 @@ void Surface::drawTTChar(int ox, int oy, int x, int y, cTeletextChar c)
 \r
 \r
 }\r
+\r
+void Surface::drawMonoBitmap(UCHAR* base, int dx, int dy, unsigned int height,\r
+               unsigned int width, Colour& nextColour) {\r
+       startFastDraw();\r
+       int x, y;\r
+       unsigned int bytesIn, bitsIn;\r
+       int widthBytes=width/8;\r
+       for (y = 0; y < height; y++) {\r
+               for (x = 0; x < width; x++) {\r
+                       bytesIn = (y * widthBytes) + (int) (x / 8);\r
+                       bitsIn = x % 8;\r
+\r
+                       if ((base[bytesIn] >> (7 - bitsIn)) & 0x01) {\r
+                               drawPixel(dx+x, dy+y, nextColour, true);\r
+                       }\r
+               }\r
+       }\r
+       endFastDraw();\r
+}\r
+\r
+void Surface::drawPoint(int x, int y, Colour& c, bool fastdraw)\r
+{\r
+       drawPixel(x,y,c,fastdraw);\r
+}\r
index cbf992488e58827b36990f5b2c6a6eda0a88ffc8..9d5aad6ed8b6a6598f0184066a8633296b6db62c 100644 (file)
--- a/surface.h
+++ b/surface.h
@@ -48,6 +48,7 @@ class Bitmap;
 \r
 class Surface\r
 {\r
+  friend class Wwss;\r
   public:\r
     Surface(int id = 0);\r
     virtual ~Surface();\r
@@ -67,11 +68,11 @@ class Surface
     virtual void display()=0;\r
 \r
     virtual int fillblt(int x, int y, int width, int height, unsigned int c)=0;\r
-    virtual void drawPixel(int x, int y, unsigned int c, bool fastdraw=false)=0;\r
-    virtual void drawPixel(int x, int y, Colour& c, bool fastdraw=false)=0;\r
     virtual void drawHorzLine(int x1, int x2, int y, unsigned int c)=0;\r
     virtual void drawVertLine(int x, int y1, int y2, unsigned int c)=0;\r
     virtual void drawBitmap(int x, int y, const Bitmap& bm)=0;\r
+    virtual void drawPoint(int x, int y, Colour& c, bool fastdraw=false); // This draws a point, must not be a pixel\r
+    virtual void drawMonoBitmap(UCHAR* base, int dx, int dy, unsigned int height,unsigned int width, Colour& nextColour);\r
     virtual int updateToScreen(int sx, int sy, int w, int h, int dx, int dy)=0;\r
     virtual void readPixel(int x, int y, unsigned char* r, unsigned char* g, unsigned char* b)=0;\r
     virtual void screenShot(const char* fileName)=0;\r
@@ -96,6 +97,9 @@ class Surface
     static osd_font_t* font;\r
     Colour enumTeletextColorToCoulour(enumTeletextColor ttcol);\r
 \r
+    virtual void drawPixel(int x, int y, unsigned int c, bool fastdraw=false)=0; // deprecated preparation for vector based drawing, only allowed to be called inside implementation\r
+    virtual void drawPixel(int x, int y, Colour& c, bool fastdraw=false)=0; // deprecated preparation for vector based drawing, only allowed to be called inside implementation\r
+\r
 };\r
 \r
 #endif\r
index 74c307b892c464940d1a7e38890ea1e1c0c73c57..9fc9b79f9186c1890f1d4291d536eaaf746b9083 100644 (file)
@@ -50,8 +50,7 @@ class SurfaceDirectFB : public Surface
     void display();\r
 \r
     int fillblt(int x, int y, int width, int height, unsigned int rgba);\r
-    void drawPixel(int x, int y, unsigned int c, bool fastdraw=false);\r
-    void drawPixel(int x, int y, Colour& c, bool fastdraw=false);\r
+\r
     void drawHorzLine(int x1, int x2, int y, unsigned int c);\r
     void drawVertLine(int x, int y1, int y2, unsigned int c);\r
     void drawBitmap(int x, int y, const Bitmap& bm);\r
@@ -66,6 +65,9 @@ class SurfaceDirectFB : public Surface
   private:\r
     IDirectFBSurface *surface;\r
 \r
+    void drawPixel(int x, int y, unsigned int c, bool fastdraw=false);\r
+    void drawPixel(int x, int y, Colour& c, bool fastdraw=false);\r
+\r
 \r
 \r
 };\r
index 394cede866c5e5ea26cdb407cd3ae7b86504f506..a2d2626d7f7980922dca1eba9daba6b4ca15baec 100644 (file)
@@ -161,8 +161,7 @@ class SurfaceMVP : public Surface
     unsigned long getSurfaceHandle();\r
 \r
     int fillblt(int x, int y, int width, int height, unsigned int rgba);\r
-    void drawPixel(int x, int y, unsigned int c, bool fastdraw=false);\r
-    void drawPixel(int x, int y, Colour& c, bool fastdraw=false);\r
+\r
     void drawHorzLine(int x1, int x2, int y, unsigned int c);\r
     void drawVertLine(int x, int y1, int y2, unsigned int c);\r
     void drawBitmap(int x, int y, const Bitmap& bm);\r
@@ -242,6 +241,9 @@ class SurfaceMVP : public Surface
     static int conv_BV[256];\r
     static int conv_GV[256];\r
     static int conv_RV[256];\r
+  protected:\r
+    void drawPixel(int x, int y, unsigned int c, bool fastdraw=false);\r
+    void drawPixel(int x, int y, Colour& c, bool fastdraw=false);\r
 \r
 };\r
 \r
index 6bec52a127c43b92b74d7645ce6d4a5d4d452009..48b350922ff6d904aa7985068c66ad2f48ec525e 100644 (file)
@@ -39,8 +39,7 @@ class SurfaceOpenGL : public Surface
     void endFastDraw();\r
 \r
     int fillblt(int x, int y, int width, int height, unsigned int c);\r
-    void drawPixel(int x, int y, Colour& c, bool fastdraw=false);\r
-    void drawPixel(int x, int y, unsigned int c, bool fastdraw=false);\r
+\r
     void drawHorzLine(int x1, int x2, int y, unsigned int c);\r
     void drawVertLine(int x, int y1, int y2, unsigned int c);\r
     void drawBitmap(int x, int y, const Bitmap& bm);\r
@@ -64,6 +63,9 @@ class SurfaceOpenGL : public Surface
 \r
 \r
     Mutex srf_mutex;\r
+  protected:\r
+    void drawPixel(int x, int y, Colour& c, bool fastdraw=false);\r
+    void drawPixel(int x, int y, unsigned int c, bool fastdraw=false);\r
 \r
 };\r
 \r
index 99499728d4116cf0464dc2472fda67eeed91a657..2058308e24e89122863085333f0d30fe81ce67b6 100644 (file)
@@ -39,8 +39,6 @@ class SurfaceWin : public Surface
     void endFastDraw();\r
 \r
     int fillblt(int x, int y, int width, int height, unsigned int c);\r
-    void drawPixel(int x, int y, Colour& c, bool fastdraw=false);\r
-    void drawPixel(int x, int y, unsigned int c, bool fastdraw=false);\r
     void drawHorzLine(int x1, int x2, int y, unsigned int c);\r
     void drawVertLine(int x, int y1, int y2, unsigned int c);\r
     void drawBitmap(int x, int y, const Bitmap& bm);\r
@@ -60,6 +58,9 @@ class SurfaceWin : public Surface
     D3DLOCKED_RECT lockrect;\r
     UINT sheight,swidth;\r
     HANDLE event;\r
+  protected:\r
+    void drawPixel(int x, int y, Colour& c, bool fastdraw=false);\r
+    void drawPixel(int x, int y, unsigned int c, bool fastdraw=false);\r
 };\r
 \r
 #endif\r
index 393aa797481d5e38e1b3bfa322b4b2eb69974fdc..64d1bd2f1516223396709846d9c92be8763e3adc 100644 (file)
--- a/vopts.cc
+++ b/vopts.cc
@@ -163,9 +163,11 @@ VOpts::VOpts()
   option = new Option(13, "TCP receive window size",   "Advanced", "TCP receive window", Option::TYPE_TEXT, 7, /*1*/DEFAULT_TCP_WINDOWSIZENR, 0, options13);\r
   options.push_back(option);\r
   wop->addOptionLine(option);\r
+#ifdef PAL_WSS\r
   option = new Option(14, "Use WSS (PAL only)",        "General",  "WSS",                Option::TYPE_TEXT, 2, 0, 0, options14);\r
   options.push_back(option);\r
-  wop->addOptionLine(option);  \r
+  wop->addOptionLine(option);\r
+#endif\r
 \r
   Remote::getInstance()->addOptionsToPanes(2,&options,wop);\r
   Video::getInstance()->addOptionsToPanes(2,&options,wop);\r
index ec04f6a5e12fc33cd0fd5fedf7a644d1f7449757..2c6c86b2b0e52903b8a3fa99d4d889739bd5aaf6 100644 (file)
@@ -90,8 +90,8 @@ void VScreensaver::threadMethod()
     tail = head + 1;
     if (tail == h) tail = 0;
 
-    // Undraw oldest pixel
-    if (x[tail] != -1) surface->drawPixel(x[tail], y[tail], Colour::BLACK.rgba());
+    // Undraw oldest point
+    if (x[tail] != -1) surface->drawPoint(x[tail], y[tail], Colour::BLACK);// was rgba
 
     dd = ((rand() / (double)RAND_MAX) * deviation) - halfdeviation;
     direction += dd;
@@ -110,7 +110,7 @@ void VScreensaver::threadMethod()
     x[head] = (int)fx;
     y[head] = (int)fy;
 
-    surface->drawPixel(x[head], y[head], Colour::SELECTHIGHLIGHT.rgba());
+    surface->drawPoint(x[head], y[head], Colour::SELECTHIGHLIGHT); // was rgba
     MILLISLEEP(10);
   }
 }
index 0e49830a2410253781cd35b2cf617ee44bee2052..af5ac6de2005eda1339096454a2f5f5d844ff504 100644 (file)
@@ -95,7 +95,7 @@ VVideoLiveTV::VVideoLiveTV(ChannelList* tchanList, ULONG initialChannelNumber, V
   createBuffer();\r
   Colour transparent(0, 0, 0, 0);\r
   setBackgroundColour(transparent);\r
-\r
+#ifdef PAL_WSS\r
   dowss = false;\r
   char* optionWSS = vdr->configLoad("General", "WSS");\r
   if (optionWSS)\r
@@ -116,7 +116,7 @@ VVideoLiveTV::VVideoLiveTV(ChannelList* tchanList, ULONG initialChannelNumber, V
     wssRegion.w = video->getScreenWidth();\r
     wssRegion.h = 2;\r
   }\r
-  \r
+#endif\r
   // This variable is set to true if the user pressed OK to bring the OSD on screen\r
   // This is only used on old remotes to stop up/down buttons being used for osd-epg scrolling\r
   okTriggeredOSD = false;\r
@@ -1047,6 +1047,7 @@ void VVideoLiveTV::processMessage(Message* m)
       \r
       case PlayerLiveTV::ASPECT43:\r
       {\r
+#ifdef PAL_WSS\r
         if ((video->getTVsize() == Video::ASPECT16X9) && dowss)\r
         {\r
           Log::getInstance()->log("VVideoRec", Log::DEBUG, "Received do WSS 43");\r
@@ -1054,6 +1055,7 @@ void VVideoLiveTV::processMessage(Message* m)
           wss.draw();\r
           BoxStack::getInstance()->update(this, &wssRegion);\r
         }\r
+#endif\r
         \r
         sAspectRatio.nextSymbol = WSymbol::VIDEOASPECT43;\r
         sAspectRatio.setVisible(true);\r
@@ -1068,6 +1070,7 @@ void VVideoLiveTV::processMessage(Message* m)
       }\r
       case PlayerLiveTV::ASPECT169:\r
       {\r
+#ifdef PAL_WSS\r
         if ((video->getTVsize() == Video::ASPECT16X9) && dowss)\r
         {\r
           Log::getInstance()->log("VVideoRec", Log::DEBUG, "Received do WSS 169");\r
@@ -1075,6 +1078,7 @@ void VVideoLiveTV::processMessage(Message* m)
           wss.draw();\r
           BoxStack::getInstance()->update(this, &wssRegion);\r
         }\r
+#endif\r
         \r
         sAspectRatio.nextSymbol = WSymbol::VIDEOASPECT169;\r
         sAspectRatio.setVisible(true);\r
index 0ff6e84ddaa453ee168cd8b18bf54b29810a907f..74730863d1b790e214c06793b3cd51430086cbb0 100644 (file)
@@ -27,7 +27,6 @@
 
 #include "boxx.h"
 #include "region.h"
-#include "wwss.h"
 #include "vdr.h"
 #include "wtextbox.h"
 #include "wselectlist.h"
 #include "wprogressbar.h"
 #include "osdreceiver.h"
 
+#ifdef PAL_WSS
+#include "wwss.h"
+#endif
+
 class VChannelList;
 class Video;
 class VChannelList;
@@ -118,10 +121,11 @@ class VVideoLiveTV : public Boxx, public TimerReceiver, public OSDReceiver
     void showUnavailable();
     
     VAudioSelector* vas;
-    
+#ifdef PAL_WSS
     Wwss wss;
     Region wssRegion;
     bool dowss;
+#endif
     
     Boxx osd;
     WTextbox clock;
index 4b392358d83cc9725d51681c4b6d04a6fe4a6dfe..faafb652b785d4dd055a17a449e52478d1439f34 100644 (file)
@@ -109,7 +109,7 @@ VVideoRec::VVideoRec(Recording* rec, bool ish264)
   barGenHold = false;\r
   barScanHold = false;\r
   barVasHold = false;\r
-\r
+#ifdef PAL_WSS\r
   dowss = false;\r
   char* optionWSS = vdr->configLoad("General", "WSS");\r
   if (optionWSS)\r
@@ -130,6 +130,7 @@ VVideoRec::VVideoRec(Recording* rec, bool ish264)
     wssRegion.w = video->getScreenWidth();\r
     wssRegion.h = 300;\r
   }\r
+#endif\r
 }\r
 \r
 void VVideoRec::preDelete()\r
@@ -538,6 +539,7 @@ void VVideoRec::processMessage(Message* m)
       }\r
       case Player::ASPECT43:\r
       {\r
+#ifdef PAL_WSS\r
         if (dowss)\r
         {\r
           Log::getInstance()->log("VVideoRec", Log::DEBUG, "Received do WSS 43");\r
@@ -545,10 +547,12 @@ void VVideoRec::processMessage(Message* m)
           wss.draw();\r
           boxstack->update(this, &wssRegion);\r
         }\r
+#endif\r
         break;\r
       }\r
       case Player::ASPECT169:\r
       {\r
+#ifdef PAL_WSS\r
         if (dowss)\r
         {\r
           Log::getInstance()->log("VVideoRec", Log::DEBUG, "Received do WSS 169");\r
@@ -556,6 +560,7 @@ void VVideoRec::processMessage(Message* m)
           wss.draw();\r
           boxstack->update(this, &wssRegion);\r
         }\r
+#endif\r
         break;\r
       }\r
     }\r
index 3f10acf61b120aada6fff9c9b530dcb8d53ce969..383b8ef555dac165b4bda64af133ce263bc20d9e 100644 (file)
 
 #include "boxx.h"
 #include "timerreceiver.h"
-#include "wwss.h"
 #include "region.h"
 #include "colour.h"
 #include "osdreceiver.h"
 
 #include "video.h"
 
+#ifdef PAL_WSS
+#include "wwss.h"
+#endif
+
 class VDR;
 class Timers;
 class Player;
@@ -51,7 +54,7 @@ class VVideoRec : public Boxx, public TimerReceiver, public OSDReceiver
 {
   public:
     VVideoRec(Recording* rec, bool ish264);
-    ~VVideoRec();
+    virtual ~VVideoRec();
     void preDelete();
     int handleCommand(int command);
     void go(bool resume);
@@ -102,10 +105,11 @@ class VVideoRec : public Boxx, public TimerReceiver, public OSDReceiver
 
     UINT startMargin;
     UINT endMargin;
-
+#ifdef PAL_WSS
     Wwss wss;
     Region wssRegion;
     bool dowss;
+#endif
     
     VInfo* vsummary;
 };
index 903f1e6485a8ebeea5e431740f7b2ba0109dbea1..6d4035f7af6d167fa531fcd781884641d8935177 100644 (file)
@@ -1078,7 +1078,8 @@ void WSymbol::draw()
 
   int x, y, bytesIn, bitsIn;
 
-  startFastDraw();
+  drawMonoBitmap(base,0,0,sHeight,widthBits, nextColour);
+ /* startFastDraw();
   for (y = 0; y < sHeight; y++)
   {
     for (x = 0; x < widthBits; x++)
@@ -1092,7 +1093,7 @@ void WSymbol::draw()
       }
     }
   }
-  endFastDraw();
+  endFastDraw();*/
 }
 
 bool WSymbol::mouseLBDOWN(int x, int y)
diff --git a/wwss.cc b/wwss.cc
index a8579b6cf6fe5236e5ebc9c42782f5416d67aea5..ef9793b554d5f90a20ac56813611ff106f11f615 100644 (file)
--- a/wwss.cc
+++ b/wwss.cc
@@ -121,7 +121,7 @@ void Wwss::drawPAL()
   {
     value = (UINT)(dst[q] * 182); // Apparently this is a better number than 255 for the colour value
     c.set(value, value, value);
-    drawPixel(q, 6, c);
+    getSurface()->drawPixel(q, 6, c);
   }
 }
 
@@ -189,7 +189,7 @@ static UCHAR src[22] = {1,0, 0,0,0,0,1,1, 0,0,0,0, 0,0,0,0, 0,0,1,0,0,1 };
   {
     value = (UINT)(dst[q] * 182); // Apparently this is a better number than 255 for the colour value
     c.set(value, value, value);
-    drawPixel(q, 6, c);
+    getSurface()->drawPixel(q, 6, c);
   }
 */
 
@@ -200,7 +200,7 @@ for(int yy = 0; yy < 100; yy++)
   {
     value = (UINT)(dst[q] * 182); // Apparently this is a better number than 255 for the colour value
     c.set(value, value, value);
-    drawPixel(q+0, yy, c);
+    getSurface()->drawPixel(q+0, yy, c);
   }
 }
 
diff --git a/wwss.h b/wwss.h
index 50c2a0d9fc22c0cab144c2ba0957ed769894880a..0928735ffafa394dc76d2548bc0c90c0882a0170 100644 (file)
--- a/wwss.h
+++ b/wwss.h
@@ -31,7 +31,7 @@ class Wwss : public Boxx
 {
   public:
     Wwss();
-    ~Wwss();
+    virtual ~Wwss();
     void draw();
     void setWide(bool wide);
     void setFormat(UCHAR tformat);