📄 directdraw.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 + -