 
   
           


Ϸ֮:ͼDirectXDraw
Ŀǰwin95±ȽϳõͼDirectX,ϱȽ,ҸƼ<<WINDOWSͼ>>Ȿ,Ҳһ. 
ǵϷ,ĿǰʹõҲDirectX,ϼйDirectXļ򻯽ӿڵĶ,ûʹù,֪,ԼЩ,Щ. 
ͼϷе,ʾģʽ,һͼ,ʾ 
Ļ. 
  
ͼ: 
class DirectDrawWin 
{ 
 HWND hWnd; 
 BOOL IsUse; 
 int  winWidth,winHeight; 
 LPDIRECTDRAW2 ddraw2; 
 LPDIRECTDRAWSURFACE primsurf; 
 LPDIRECTDRAWPALETTE palette; 
 CDirectPAGE bakDirectPAGE;//,CPICPAGEļ̳жCDirectPAGEʵ 
 LPDIRECTDRAWCLIPPER clipper; 
 RECT displayrect; 
 int displaydepth; 
 WORD loREDbit, numREDbits; 
 WORD loGREENbit, numGREENbits; 
 WORD loBLUEbit, numBLUEbits; 
public: 
 DirectDrawWin(); 
 ~DirectDrawWin(); 
 BOOL IsWorking(void); 
 int OnCreate(HWND _hWnd,BOOL IsFullWin=FALSE,int colors=16,int 
width=640,int height=480); 
 void DrawScene(); 
  BOOL ClearSurface( LPDIRECTDRAWSURFACE surf, DWORD clr, RECT* rect=0 ); 
  BOOL ClearSurface( LPDIRECTDRAWSURFACE surf, DWORD r, DWORD g, DWORD b,RECT* rect=0 ); 
 BOOL BltSurface(LPDIRECTDRAWSURFACE destsurf,LPDIRECTDRAWSURFACE srcsurf, int   srcInX, 
             int srcInY,DWORD flap, RECT *DecView=NULL,RECT *souRectBlt=NULL,//ԴͼƬĿ 
             RECT *lpFillRect=NULL); 
 CPICPAGE  *GetDecDrawPage(void); 
 LPDIRECTDRAWSURFACE CreateSurface( DWORD w, DWORD h ); 
 HRESULT SetColorKey(IDirectDrawSurface *pdds, COLORREF rgb); 
//====================================================================== 
  
private: 
 void SetHWnd(HWND _hWnd); 
 HWND GetSafeHwnd(){return hWnd;}; 
 BOOL CreateFlippingSurfaces(); 
 void OnDestroy(); 
 DWORD RGBtoPixel(DWORD r, DWORD g, DWORD b); 
 void GetSurfaceRect(LPDIRECTDRAWSURFACE surf,RECT *lpRc); 
 DWORD ColorMatch(IDirectDrawSurface *pdds, COLORREF rgb); 
 BOOL GetSurfaceRect( LPDIRECTDRAWSURFACE surf, RECT& rect); 
////////////////////////////////////////////////////////////////////// 
 WORD LowBitPos( DWORD dword ); 
 WORD HighBitPos( DWORD dword ); 
 BOOL StorePixelFormatData(); 
 BOOL DetectDisplayMode(); 
}; 
  
ҿԿ,Ľӿ,ҪǳʼOnCreate,ĻDrawScene,ȻǱCreateSurfaceͼClearSurface,BltSurface; ʼOnCreate():ʼDrectX,ʾģʽ,ǰ,.ڼʱϷ,Ϊ˼ӿٶ,Խõñʾ,ʱֻҪֲĻ,DrawSceneʱʼλü.ûʹ,ǵϵͳԭ֮һ:ü,ϵͳٶ,Ǿֲ,ԭǼɵӦΧһ.ϵͳҪͨ. 
  
ɺͼһCPICPAGEͨͼҳ,CPICPAGEһλͼʽͳһ,Ϸڽͼʱ,ֱDirectXͼ򽻵,CPICPAGEչDirectXͼ,alphaͨBLT,ԼȵBLT,ֱӶԱLine,DrawTxt.BltSurface()һöλĺ. 
  
ڴģʽµDrawScene,Ϊ˱Ļͼ˺,ôֱͬˢͬظĻ,Ϊ˼ٴ˹̵ĵȴʱ,ʹö̼߳. 
  Ϊ˼ӿϷʾٶ,ʹDirectXھļ. 
    йDirectXĲҲϸ,һ,ɲ<<WINDOWSͼ>>һ,ǵĻϼ򻯶,ҪⲿԴѿϵ. 
  
  

 