aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/video.h
diff options
context:
space:
mode:
authorMax Horn2009-06-06 20:03:13 +0000
committerMax Horn2009-06-06 20:03:13 +0000
commit0989bb0b9087e74662f546d13b2f16544cfba20b (patch)
tree146dd1f80bc6367b4de30d229e47a7776f2b59a9 /engines/gob/video.h
parent24a512cab08a12eb2b8f3b759d7f3d82c6853a21 (diff)
downloadscummvm-rg350-0989bb0b9087e74662f546d13b2f16544cfba20b.tar.gz
scummvm-rg350-0989bb0b9087e74662f546d13b2f16544cfba20b.tar.bz2
scummvm-rg350-0989bb0b9087e74662f546d13b2f16544cfba20b.zip
GOB: Got rid of class ReferenceCounter; changed SurfaceDesc::Ptr to SurfaceDescPtr (a Common::SharedPtr); and changed many SurfaceDesc pointers to references
svn-id: r41299
Diffstat (limited to 'engines/gob/video.h')
-rw-r--r--engines/gob/video.h67
1 files changed, 35 insertions, 32 deletions
diff --git a/engines/gob/video.h b/engines/gob/video.h
index 4341d05c14..96ade7ffba 100644
--- a/engines/gob/video.h
+++ b/engines/gob/video.h
@@ -28,9 +28,9 @@
#include "common/list.h"
#include "common/rect.h"
+#include "common/ptr.h"
#include "gob/gob.h"
-#include "gob/helper.h"
namespace Graphics {
class PaletteLUT;
@@ -39,9 +39,9 @@ namespace Graphics {
namespace Gob {
// Some Surfaces are simultaneous in Draw::spritesArray and discrete
-// variables, so it's a references counting class that cleans
-// up its own mess
-class SurfaceDesc : public ReferenceCounter<SurfaceDesc> {
+// variables, so if in doubt you should use a SurfaceDescPtr shared
+// pointer object to refer to any SurfaceDesc.
+class SurfaceDesc {
public:
int16 _vidMode;
@@ -66,6 +66,9 @@ private:
bool _ownVidMem;
};
+typedef Common::SharedPtr<SurfaceDesc> SurfaceDescPtr;
+
+
class Video {
public:
struct FontDesc {
@@ -117,7 +120,7 @@ public:
int16 _scrollOffsetX;
int16 _scrollOffsetY;
- SurfaceDesc::Ptr _splitSurf;
+ SurfaceDescPtr _splitSurf;
int16 _splitHeight1;
int16 _splitHeight2;
int16 _splitStart;
@@ -129,7 +132,7 @@ public:
void freeDriver();
void initPrimary(int16 mode);
- SurfaceDesc *initSurfDesc(int16 vidMode, int16 width,
+ SurfaceDescPtr initSurfDesc(int16 vidMode, int16 width,
int16 height, int16 flags);
void setSize(bool defaultTo1XScaler);
@@ -139,24 +142,24 @@ public:
void waitRetrace(bool mouse = true);
void sparseRetrace(int max);
- void putPixel(int16 x, int16 y, int16 color, SurfaceDesc *dest);
- virtual void fillRect(SurfaceDesc *dest, int16 left, int16 top,
+ void putPixel(int16 x, int16 y, int16 color, SurfaceDesc &dest);
+ virtual void fillRect(SurfaceDesc &dest, int16 left, int16 top,
int16 right, int16 bottom, int16 color);
- void drawLine(SurfaceDesc *dest, int16 x0, int16 y0, int16 x1, int16 y1,
+ void drawLine(SurfaceDesc &dest, int16 x0, int16 y0, int16 x1, int16 y1,
int16 color);
- void drawCircle(SurfaceDesc *dest, int16 x0, int16 y0,
+ void drawCircle(SurfaceDesc &dest, int16 x0, int16 y0,
int16 radius, int16 color);
- void clearSurf(SurfaceDesc *dest);
- void drawSprite(SurfaceDesc *source, SurfaceDesc *dest,
+ void clearSurf(SurfaceDesc &dest);
+ void drawSprite(SurfaceDesc &source, SurfaceDesc &dest,
int16 left, int16 top, int16 right, int16 bottom,
int16 x, int16 y, int16 transp);
- void drawSpriteDouble(SurfaceDesc *source, SurfaceDesc *dest,
+ void drawSpriteDouble(SurfaceDesc &source, SurfaceDesc &dest,
int16 left, int16 top, int16 right, int16 bottom, int16 x, int16 y, int16 transp);
void drawLetter(int16 item, int16 x, int16 y, FontDesc *fontDesc,
- int16 color1, int16 color2, int16 transp, SurfaceDesc *dest);
+ int16 color1, int16 color2, int16 transp, SurfaceDesc &dest);
void drawPackedSprite(byte *sprBuf, int16 width, int16 height,
- int16 x, int16 y, int16 transp, SurfaceDesc *dest);
- void drawPackedSprite(const char *path, SurfaceDesc *dest,
+ int16 x, int16 y, int16 transp, SurfaceDesc &dest);
+ void drawPackedSprite(const char *path, SurfaceDesc &dest,
int width = 320);
void setPalColor(byte *pal, byte red, byte green, byte blue) {
@@ -181,7 +184,7 @@ public:
virtual char spriteUncompressor(byte *sprBuf, int16 srcWidth,
int16 srcHeight, int16 x, int16 y, int16 transp,
- SurfaceDesc *destDesc) = 0;
+ SurfaceDesc &destDesc) = 0;
virtual void init() {}
@@ -210,7 +213,7 @@ protected:
class Video_v1 : public Video {
public:
virtual char spriteUncompressor(byte *sprBuf, int16 srcWidth, int16 srcHeight,
- int16 x, int16 y, int16 transp, SurfaceDesc *destDesc);
+ int16 x, int16 y, int16 transp, SurfaceDesc &destDesc);
Video_v1(GobEngine *vm);
virtual ~Video_v1() {}
@@ -219,7 +222,7 @@ public:
class Video_v2 : public Video_v1 {
public:
virtual char spriteUncompressor(byte *sprBuf, int16 srcWidth, int16 srcHeight,
- int16 x, int16 y, int16 transp, SurfaceDesc *destDesc);
+ int16 x, int16 y, int16 transp, SurfaceDesc &destDesc);
Video_v2(GobEngine *vm);
virtual ~Video_v2() {}
@@ -228,9 +231,9 @@ public:
class Video_v6 : public Video_v2 {
public:
virtual char spriteUncompressor(byte *sprBuf, int16 srcWidth, int16 srcHeight,
- int16 x, int16 y, int16 transp, SurfaceDesc *destDesc);
+ int16 x, int16 y, int16 transp, SurfaceDesc &destDesc);
- virtual void fillRect(SurfaceDesc *dest, int16 left, int16 top,
+ virtual void fillRect(SurfaceDesc &dest, int16 left, int16 top,
int16 right, int16 bottom, int16 color);
virtual void init();
@@ -245,13 +248,13 @@ private:
void buildPalLUT();
- void shadeRect(SurfaceDesc *dest,
+ void shadeRect(SurfaceDesc &dest,
int16 left, int16 top, int16 right, int16 bottom, byte color, byte strength);
- void drawPacked(const byte *sprBuf, int16 x, int16 y, SurfaceDesc *surfDesc);
- void drawYUVData(const byte *srcData, SurfaceDesc *destDesc,
+ void drawPacked(const byte *sprBuf, int16 x, int16 y, SurfaceDesc &surfDesc);
+ void drawYUVData(const byte *srcData, SurfaceDesc &destDesc,
int16 width, int16 height, int16 x, int16 y);
- void drawYUV(SurfaceDesc *destDesc, int16 x, int16 y,
+ void drawYUV(SurfaceDesc &destDesc, int16 x, int16 y,
int16 dataWidth, int16 dataHeight, int16 width, int16 height,
const byte *dataY, const byte *dataU, const byte *dataV);
};
@@ -260,13 +263,13 @@ class VideoDriver {
public:
VideoDriver() {}
virtual ~VideoDriver() {}
- virtual void drawSprite(SurfaceDesc *source, SurfaceDesc *dest, int16 left, int16 top, int16 right, int16 bottom, int16 x, int16 y, int16 transp) = 0;
- virtual void drawSpriteDouble(SurfaceDesc *source, SurfaceDesc *dest, int16 left, int16 top, int16 right, int16 bottom, int16 x, int16 y, int16 transp) = 0;
- virtual void fillRect(SurfaceDesc *dest, int16 left, int16 top, int16 right, int16 bottom, byte color) = 0;
- virtual void putPixel(int16 x, int16 y, byte color, SurfaceDesc *dest) = 0;
- virtual void drawLetter(unsigned char item, int16 x, int16 y, Video::FontDesc *fontDesc, byte color1, byte color2, byte transp, SurfaceDesc *dest) = 0;
- virtual void drawLine(SurfaceDesc *dest, int16 x0, int16 y0, int16 x1, int16 y1, byte color) = 0;
- virtual void drawPackedSprite(byte *sprBuf, int16 width, int16 height, int16 x, int16 y, byte transp, SurfaceDesc *dest) = 0;
+ virtual void drawSprite(SurfaceDesc &source, SurfaceDesc &dest, int16 left, int16 top, int16 right, int16 bottom, int16 x, int16 y, int16 transp) = 0;
+ virtual void drawSpriteDouble(SurfaceDesc &source, SurfaceDesc &dest, int16 left, int16 top, int16 right, int16 bottom, int16 x, int16 y, int16 transp) = 0;
+ virtual void fillRect(SurfaceDesc &dest, int16 left, int16 top, int16 right, int16 bottom, byte color) = 0;
+ virtual void putPixel(int16 x, int16 y, byte color, SurfaceDesc &dest) = 0;
+ virtual void drawLetter(unsigned char item, int16 x, int16 y, Video::FontDesc *fontDesc, byte color1, byte color2, byte transp, SurfaceDesc &dest) = 0;
+ virtual void drawLine(SurfaceDesc &dest, int16 x0, int16 y0, int16 x1, int16 y1, byte color) = 0;
+ virtual void drawPackedSprite(byte *sprBuf, int16 width, int16 height, int16 x, int16 y, byte transp, SurfaceDesc &dest) = 0;
};
} // End of namespace Gob