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

📄 display.h

📁 冰人引擎,本2d游戏引擎定位于游戏次中层引擎。他不像CDX等引擎那样
💻 H
字号:
//			Icer Game Engine v1.0
//						Http://www.ngame2000.com
//
//Author:杨冰(源代码之光)
//			E-mail:	iceryeah2000@163.com
//			QQ :	7746642
//
//Module:图形设备类
//
//Create:2003-2-6
//Updata:2003-3-5
//
//Describe:提供32bit显示图形设备的功能函数,比如创建图形引擎等函数。
//Remark:	2003-2-6:		Preparatory step is complete
//			2003-2-15:	Completing static picture function
//			2003-3-5:	Release v1.0 alpha
#pragma once

class CDisplay
{
public:
	~CDisplay(void);

	static CDisplay* Instance();								//单件设计模式

	//创建图形引擎
	//创建窗口模式,指定的长宽是窗口客户区域长宽,不是整个窗口的长宽
	bool Create(HWND hWnd,bool isFullScreen = false,DWORD Width = 640, DWORD Height = 480,DWORD ScreenColor = 32);
	void Destroy(void);											//销毁图形引擎
	
	void ClearScreen(DWORD Color = 0);							//清屏
	void ClearBackBuffer(DWORD Color = 0);						//清背景缓冲

	void UpdataDisplay(void);									//更新图形设备

public:
	LPDIRECTDRAW7 GetDDraw(void)				{return m_pDraw;}

	LPDIRECTDRAWSURFACE7 GetMainSurface(void)	{return m_pMainBuffer;}	//获得主表面
	LPDIRECTDRAWSURFACE7 GetBackSurface(void)	{return m_pBackBuffer;}	//获得缓冲表面

	DWORD* GetEngineBuffer(void)		{return m_pEngineBuffer;}		//获得引擎背景缓冲
	DWORD GetEngineBufferPitch(void)	{return m_dwEngineBufferPitch;}	//获得背景缓冲Pitch

	DWORD GetScreenWidth(void)			{return m_dwScreenWidth;}	//获得窗口/屏幕宽
	DWORD GetScreenHeight(void)			{return m_dwScreenHeight;}	//获得窗口/屏幕高

	void SetFPSState(bool state)		{m_dwFPSState = state;}		//FPS开关设置
	bool GetFPSState(void)				{return m_dwFPSState;}		//FPS开关状态

private:
	//各种状态
	bool m_bFullScreen;		//窗口状态
	
	DWORD m_dwWinX;			//窗口矩形(位置、大小)
	DWORD m_dwWinY;
	DWORD m_dwWinWidth;
	DWORD m_dwWinHeight;

	bool					m_dwFPSState;		//FPS开关
	DWORD					m_dwTimer;

private:
	static CDisplay*	 m_Instance;
	CDisplay(void);

	HWND m_hWnd;

private:
	LPDIRECTDRAW7			m_pDraw;							//DirectDraw7接口
	LPDIRECTDRAWSURFACE7	m_pMainBuffer;						//主缓冲表面
	LPDIRECTDRAWSURFACE7	m_pBackBuffer;						//后台缓冲表面
	LPDIRECTDRAWCLIPPER		m_pClipper;

	DWORD					m_dwScreenWidth;					//屏幕宽度
	DWORD					m_dwScreenHeight;					//屏幕高度
	DWORD					m_dwScreenColor;					//屏幕色彩模式

	DWORD*					m_pEngineBuffer;					//自定义缓冲
	DWORD					m_dwEngineBufferPitch;				//自定义缓冲Pitch
};

⌨️ 快捷键说明

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