📄 cdraw.h
字号:
// |//////////////////////////////梦幻水晶游戏程序 V1.0///////////////////////////////|
// || ;;;;;; ;; ;; ;; ;,;; ;; <; ;; ;; ||
// || ;. ;; ;, ;; ;, ,; ;; ;, ;; ||
// || .;;;;; ,, ; ;. ;; ;.;; ; ;. ||
// || ;; ;; ;. ;; .;;; ;. ||
// || .. ,, ,; ,. ;; ;; ,; ||
// || ;, ;;;;;; ., ;;;, ;; <; ., ||
// |//////////////////////////////////////////////////////////////////////////////////|
//庞大的DDraw 封装
//感谢 SoftBoy 云风 鹏博 微软
//By Flysky
#pragma once
#define DDS_NUM 8
//8个表面
#define DDS_Primary 0 //主表面
#define DDS_Buffer 1 //后台表面
#define DDS_Back 2 //背景表面
#define DDS_Mouse 3 //鼠标表面
#define DDS_Map 4 //地图表面
#define DDS_Alpha 5 //Alpha表面
#define DDS_Temp 6 //临时表面
#define DDS_Temp1 7 //临时表面
extern LPDIRECTDRAW7 lpDD;
extern LPDIRECTDRAWSURFACE7 lpDDS[DDS_NUM];
extern DDSURFACEDESC2 ddsd;
extern WORD *GraphBuffer; // 绘图缓冲区
extern int GraphPitch; // 缓冲区跨度
extern int GraphWidth; //页面宽度
extern int GraphHeight; //页面高度
extern bool Is555; //是否为555格式
#define SrcKey DDBLTFAST_SRCCOLORKEY | DDBLTFAST_WAIT //有颜色键
#define NoKey DDBLTFAST_NOCOLORKEY | DDBLTFAST_WAIT //无颜色键
#define RGBto565(r, g, b) (((WORD)r<<8)&0xf800)|(((WORD)g<<3)&0x07e0)|((WORD)b>>3) //转换为565
#define RGBto555(r, g, b) (((WORD)r<<7)&0x7c00)|(((WORD)g<<2)&0x03e0)|((WORD)b>>3) //转换为555
BOOL InitDDraw(HWND Hwnd,int WindowS); //建立DDraw
BOOL CreateClipper();//创建一个GDI裁减器
bool CreateSurface(LPDIRECTDRAWSURFACE7 &tmpS,char *FileName,int Width,int Height);
void FreeDDraw(); //关闭DDraw
void RestoreSurface(); //恢复页面
void FlipSurface(); //翻页
void SetColorKey(COLORREF rgb); //社定颜色键
void BltFast(LPDIRECTDRAWSURFACE7 SS,int x,int y,LPDIRECTDRAWSURFACE7 DS,LPRECT rcRect,DWORD Flag);//快速位图拷贝
void BltFast_MMX(LPDIRECTDRAWSURFACE7 SS,int x,int y,LPDIRECTDRAWSURFACE7 DS,LPRECT rcRect,DWORD Flag);//MMX位图拷贝
void Blt(LPDIRECTDRAWSURFACE7 SS,int x,int y,LPDIRECTDRAWSURFACE7 DS,RECT rcRect,DWORD Flag);//位图拷贝
void Clrscr(LPDIRECTDRAWSURFACE7 surf,WORD color ); //清屏
BOOL SBlt(LPDIRECTDRAWSURFACE7 SS,RECT sr,LPDIRECTDRAWSURFACE7 DS,RECT dr,BOOL Flag); //带缩放的位图拷贝
bool BeginDraw(LPDIRECTDRAWSURFACE7 lpSur);//Open Lock
bool EndDraw(LPDIRECTDRAWSURFACE7 lpSur); //Close Lock
WORD RGB16(WORD r, WORD g, WORD b);
WORD RGB16(DWORD color); //24B to 16B
void PixFormat(LPDIRECTDRAWSURFACE7 LpDD);
void FillSurface(LPDIRECTDRAWSURFACE7 surf, WORD color);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -