




























// CCanvas 的实现桥接, 主要是为了能适应GDI, GAPI两种图像绘制接口.
class CCanvasImpl
{
public:
virtual void SetCanvasSize(int cx, int cy) = 0;
virtual void BltBitmap(int dstX, int dstY, int dstCX, int dstCY, CBitmap *pBitmap, int srcX, int srcY, int srcCX, int srcCY) = 0;
virtual void TransBltBitmap(int dstX, int dstY, int dstCX, int dstCY, CBitmap *pBitmap, int srcX, int srcY, int srcCX, int srcCY, unsigned int colorKey) = 0;
virtual void BitBltOn(CCanvas &canvas) = 0;
virtual void SetPixel(int x, int y, unsigned int color) = 0;
virtual unsigned int GetPixel(int x, int y) = 0;
virtual void Present() = 0; // 呈现到目标设备屏幕上或窗口HWND上.
};
class CCanvas
{
public:
CCanvas(CCanvasImpl *pCanvasImpl);
~CCanvas();
void SetImplment(CCanvasImpl *pCanvasImpl);
void SetCanvasSize(int cx, int cy);
void BltBitmap(int dstX, int dstY, int dstCX, int dstCY, CBitmap *pBitmap, int srcX, int srcY, int srcCX, int srcCY);
void TransBltBitmap(int dstX, int dstY, int dstCX, int dstCY, CBitmap *pBitmap, int srcX, int srcY, int srcCX, int srcCY, unsigned int colorKey);
void BitBltOn(CCanvas &canvas);
void SetPixel(int x, int y, unsigned int color);
unsigned int GetPixel(int x, int y);
void Present(); // 呈现到目标设备屏幕上或窗口HWND上.
protected:
CCanvasImpl *m_pCanvasImpl;
};
class CSprite
{
public:
virtual void PrepareFrame();
virtual void DrawFrame(CSurface *pDstSurface);
virtual void NextFrame();
};
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。