Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

blit_dx.h

Go to the documentation of this file.
00001 #ifndef header_blit_dx
00002 #define header_blit_dx
00003 
00004 #include "../Generic/blitters.h"
00005 #include "displaycard_directdraw.h"
00006 
00007 class CL_Blit_AlphaMask_RLE;
00008 
00009 class CL_Blit_DX :
00010         public CL_Blit_NoClip,
00011         public CL_Blit_Clip,
00012         public CL_Blit_Scale_NoClip,
00013         public CL_Blit_Scale_Clip
00014 {
00015 public:
00016         CL_Blit_DX(CL_DisplayCard_DirectDraw *target, CL_SurfaceProvider *provider);
00017         virtual ~CL_Blit_DX();
00018 
00019         bool init_surface(CL_Blitters *blitters);
00020 
00021         virtual void blt_noclip(
00022                 CL_Target *target,
00023                 int x,
00024                 int y,
00025                 int spr_no);
00026 
00027         virtual void blt_clip(
00028                 CL_Target *target,
00029                 int x,
00030                 int y,
00031                 int spr_no,
00032                 const CL_ClipRect &clip);
00033         
00034         virtual void blt_scale_noclip(
00035                 CL_Target *target,
00036                 int x,
00037                 int y,
00038                 int dest_width,
00039                 int dest_height,
00040                 int spr_no);
00041 
00042         virtual void blt_scale_clip(
00043                 CL_Target *target,
00044                 int x,
00045                 int y,
00046                 int dest_width,
00047                 int dest_height,
00048                 int spr_no,
00049                 const CL_ClipRect &clip);
00050 
00051         static void reload_all_surfaces();
00052         static void release_all_surfaces();
00053         static void create_all_surfaces();
00054 
00055 private:
00056         CL_DisplayCard_DirectDraw *m_target;
00057         CL_SurfaceProvider *m_provider;
00058         bool m_transparent;
00059         unsigned int m_width, m_height;
00060 
00061         CL_Blit_AlphaMask_RLE *m_alphablitter;
00062 
00063         LPDIRECTDRAWSURFACE m_surface;
00064 
00065         bool reload(bool lock_provider, bool create_surface);
00066 
00067         static std::list<CL_Blit_DX*> m_loaded_surfaces;
00068 };
00069 
00070 #endif

Generated at Wed Apr 4 19:53:58 2001 for ClanLib by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001