⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 directdraw.h

📁 里面包含了许多实用的游戏开发包
💻 H
字号:
/*************************[ DirectDraw 模块 ]*************************\
\*************************[      Start      ]*************************/

//	版权(Copyright):
//		Copyright by Verdure programming group.  All Rights Reserved.
//     	新绿软件制作群. 版权所有。
//	模块名(MODULE):
//		DirectDraw.cpp
//	用途(PURPOSE):
//		一些操作DirectDraw的函数
//	平台(PLATFORMS):
//     	运行平台:Windows95 + DirectX 5.0
//		编译平台:Visual C++ 6.0
//	函数(FUNCTIONS):
//	
//	最后更改日期(Update):
//		1999.05.04 12:00:00
//	说明(COMMENTS):
//		DirectX 下的16bit函数



/*----------------------------------------------------------------*\
 函  数:
 		void DirectDrawError(HRESULT hErr)
 功  能:
 		DirectDraw 错误信息显示
 参  数:
 		错误ID
 返回值:
 说明:
  		显示调用DirectDraw函数出现的错误
\*----------------------------------------------------------------*/
void DirectDrawError(char *ModuleName, HRESULT hErr);


/*----------------------------------------------------------------*\
 函  数:
 		void DestroyDirectDraw(void)
 功  能:
 		销毁创建的 DirectDraw 对象
 参  数:
 返回值:
 说明:
\*----------------------------------------------------------------*/
void DestroyDirectDraw(void);


/*----------------------------------------------------------------*\
 函  数:
 		BOOL InitializeDirectDraw(void)
 功  能:
 		初始化 DirectDraw 对象
 参  数:
 返回值:
 		true  - 成功
 		FALSE - 失败
 说明:
\*----------------------------------------------------------------*/
DllExport BOOL InitializeDirectDraw(void);


/*----------------------------------------------------------------*\
 函  数:
 		void GetPixelFormat(void)
 功  能:
 		判断显示卡的点格式是否为555
 参  数:
 返回值:
 说明:
\*----------------------------------------------------------------*/
BOOL GetPixelFormat(void);


/*----------------------------------------------------------------*\
 函  数:
 		IDirectDrawSurface3 * ddCreateSurface(int Width, int Height)
 功  能:
 		创建DirectDraw Surface
 参  数:
 		Width   - 图像面的指针
 		Height  - 透明色
 返回值:
 		!NULL   - 成功,返回图像面的指针
 		NULL    - 失败
\*----------------------------------------------------------------*/
DllExport IDirectDrawSurface3 * ddCreateSurface(int Width, int Height);


/*----------------------------------------------------------------*\
 函  数:
 		BOOL SetDisplayMode(WORD Width, WORD Height, BYTE BPP)
 功  能:
 		设置显示模式
 参  数:
 		Width  - 屏幕宽度
 		Height - 屏幕高度
 		BPP	   - 颜色深度(Bit)
 返回值:
 		TRUE   - 成功
 		FALSE  - 失败
 说明:
  		该函数必须在DirectDraw初始化成功后才能调用
\*----------------------------------------------------------------*/
DllExport BOOL ddSetDisplayMode(WORD Width, WORD Height);


/*----------------------------------------------------------------*\
 函  数:
 		void ddUpdateVideo(void)
 功  能:
 		更新屏幕
 参  数:
 返回值:
 说明: 		
\*----------------------------------------------------------------*/
DllExport void ddUpdateVideo(void);

/*----------------------------------------------------------------*\
 函  数:
 		HRESULT ddSetColorKey(IDirectDrawSurface3 *pdds, COLORREF rgb)
 功  能:
 		设置图像面的透明色
 参  数:
 		pdds   - 图像面的指针
 		rgb    - 透明色
 返回值:
 		true  - 成功
 		false - 失败
\*----------------------------------------------------------------*/
DllExport BOOL ddSetColorKey(IDirectDrawSurface3 *pdds, COLORREF rgb);



							
/*----------------------------------------------------------------*\
|  函  数:DirectDraw系统函数 -- DDRAW.DLL						   |
\*----------------------------------------------------------------*/
/*----------------------------------------------------------------*\
IDirectDraw2::CreateSurface         // 创建DirectDraw对象
HRESULT CreateSurface(
  LPDDSURFACEDESC lpDDSurfaceDesc,  		// 图像面属性 结构       
  LPDIRECTDRAWSURFACE FAR *lplpDDSurface,   // 图像面指针
  IUnknown FAR *pUnkOuter                 	// 必须NULL 
);
          
IDirectDraw2::SetCooperativeLevel   // 设置协作层
HRESULT SetCooperativeLevel(
  HWND hWnd,                        	// 父窗口句柄
  DWORD dwFlags                         // 控制标志
);

IDirectDraw2::SetDisplayMode        // 设置显示模式
HRESULT SetDisplayMode(
  DWORD dwWidth,                    	// 宽度
  DWORD dwHeight,                       // 高度
  DWORD dwBPP,                          // 颜色
  DWORD dwRefreshRate,                  // 刷新率,缺省为0
  DWORD dwFlags                         // 0
);


IDirectDrawSurface3::Blt  			// 位图传送
HRESULT Blt(
  LPRECT lpDestRect,            		// 目标 Rect
  LPDIRECTDRAWSURFACE3 lpDDSrcSurface,  // 面指针
  LPRECT lpSrcRect,             		// 源   Rect
  DWORD dwFlags,                        // 操作方式
  LPDDBLTFX lpDDBltFx                   // DDBLTFX指针
);

IDirectDrawSurface3::BltFast    	// 位图传送
HRESULT BltFast(
  DWORD dwX,                             
  DWORD dwY,                    		// 目标坐标(x,y)
  LPDIRECTDRAWSURFACE3 lpDDSrcSurface,  // 面指针
  LPRECT lpSrcRect,                     // 源   Rect
  DWORD dwTrans                         // 操作方式
);

IDirectDrawSurface3::Flip           // 页翻转
HRESULT Flip(
  LPDIRECTDRAWSURFACE3 lpDDSurfaceTargetOverride,  	// 面指针, 缺省为NULL
  DWORD dwFlags                         // 操作方式           
);                                      

IDirectDrawSurface3::GetDC      	// 获取GDI句柄
HRESULT GetDC(
  HDC FAR *lphDC                    	// HDC指针
);                   

IDirectDrawSurface3::ReleaseDC      // 与GetDC配套使用
HRESULT ReleaseDC(
  HDC hDC                               // HDC句柄
);

IDirectDrawSurface3::Lock       	// 获取面内存指针
HRESULT Lock(
  LPRECT lpDestRect,                    // 目的Rect
  LPDDSURFACEDESC lpDDSurfaceDesc,      // DDSURFACEDESC指针
  DWORD dwFlags,                        // 操作方式
  HANDLE hEvent                         // 保留,必须为NULL
);   

IDirectDrawSurface3::Unlock         // 与Lock配套使用
HRESULT Unlock(
  LPVOID lpSurfaceData                  // DDSURFACEDESC指针
);

IDirectDrawSurface3::SetColorKey    // 设置透明色
HRESULT SetColorKey(
  DWORD dwFlags,                    	// 操作方式
  LPDDCOLORKEY lpDDColorKey             // 颜色RGB(红,绿,蓝)
);       


IDirectDrawSurface3::Restore        // 恢复丢失的面
HRESULT Restore(void);
\*----------------------------------------------------------------*/
/*----------------------------------------------------------------*\
|  函  数:DirectDraw系统函数 -- DDRAW.DLL						   |
\*----------------------------------------------------------------*/


/*************************[       End       ]*************************\
\*************************[ DirectDraw 模块 ]*************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -