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

📄 directx8visualsystem.h

📁 game code对于游戏地图的编辑代码
💻 H
字号:
// QGEngine


#ifndef __DIRECTX8VISUALSYSTEM_H__
#define __DIRECTX8VISUALSYSTEM_H__


// Include files
#ifndef __WINDOWS_H__
#	include <windows.h>
#	define __WINDOWS_H__
#endif
#ifndef __D3D8PREREQUISITES_H__
#	include "DX8Prerequisites.h"
#endif
#ifndef __VISUALSYS_H__
#	include "../../Main/IVisualSys.h"
#endif

namespace QGE
{
	namespace VISUAL
	{
		class DX8Enumeration;
		class D3D8Texture;
		class _D3D8Export DirectX8VisualSystem : public IVisualSys
		{
		public:
			DirectX8VisualSystem(HINSTANCE);
			virtual ~DirectX8VisualSystem();
	
			Bool Initialize();
			void   Destroy();

			virtual VisualSysType GetVisualSysType(void) const { return VS_DIRECTX8;} 
			virtual LPDIRECT3DDEVICE8 GetDevice(void) const { return m_pd3dDevice; }
			/************************************************************************/
			/* 画布                                                                 */
			/************************************************************************/
//			void CreateCanvasPainter();
//			CanvasPainter& GetCanvasPainter(){ return *m_pCanvasPainter; }
			void LoadSettings(DX8Enumeration*);
			/************************************************************************/
			/* 灯光设置                                                             */
			/************************************************************************/
			void EnableLighting(Bool able);
			void SetAmbientLight(Color color);
			void _addLight(Light*);
			void RemoveLight(String& name,Light** pLightOut);
			void RemoveAllLights(void);
			void _modifyLight(Light* lt);
			void _setD3D8Light(Int32,Light*);

			/************************************************************************/
			/* 矩阵设置                                                             */
			/************************************************************************/
			void SetWorldMatrix(const Matrix4& mx);
			void SetProjectionMatrix(const Matrix4& mx);
			void SetProjectionMatrix(Real32 FOV,Real32 aspect,Real32 fz,Real32 bz);
			void SetViewMatrix(const Matrix4& mx);
			void SetViewMatrix(Vector3 from,Vector3 lookat,Vector3 up);

			/************************************************************************/
			/* 贴图设置                                                             */
			/************************************************************************/
			void _setTexture(Int32 stage,const String& texName,Bool enable);
			void _setTextureBlendMode(Int32 stage,LayerBlendModeEx mode);
			void _setTextureFilter(Int32 stage,TexFilterOptions tfo);

			void SetCullingMode(CullingMode cm);

			void SetShadingType(ShadingOptions os);

			void _setMaterial(Material* material);
			/************************************************************************/
			/* 模版设置				                                                */
			/************************************************************************/
			void _setStencilCheckEnabled(Bool enable);
			void _setStencilBufferFunction(CompareFunction func) ;
			void _setStencilBufferReferenceValue(Int32 refvalue );
			void _setStencilMask(Int32 mask);
			void _setStencilBufferFailOperation(StencilOperation op) ;
	        void _setStencilBufferDepthFailOperation(StencilOperation op);
			void _setStencilBufferPassOperation(StencilOperation op) ;

			/************************************************************************/
			/* 深度缓冲设置                                                         */
			/************************************************************************/
			void _setDepthBufferCheckEnabled(Bool enable);
			void _setDepthBufferWriteEnabled(Bool enable);
			void _setDepthTestFunc(CompareFunction depthFunc = CMPF_LESS_EQUAL);
			void _setDepthBias(Int16 bias);

			/************************************************************************/
			/* 视口设置																*/
			/************************************************************************/
			Bool SetViewPort(ViewPort* vp);
			ViewPort* SetViewPort(void) const;

			/************************************************************************/
			/* 渲染操作																*/
			/************************************************************************/
			void BeginFrame(void);
			void EndFrame(void);
			void Clear(ClearMode clearmode=CLEAR_TARGET_ZBUFFER,Rect* rect=0,Color color=0,Real32 Z = 1.0f,Int32 stencil=0);

			Bool _softwareVertexBlend(RenderOperation* ro, Matrix4* pMatrices);
			Bool Render(RenderOperation* ro);
			Bool Present(Rect* src=0,Rect* dest=0);

			void _setRasteriseMode(SceneDetailLevel sl);

		private:
			HINSTANCE	m_HInst;
			LPDIRECT3D8	m_pd3d;
			LPDIRECT3DDEVICE8 m_pd3dDevice;
			enum{ MAX_TEXTURE_LAYERS=8 };
			struct 
			{
				D3D8Texture* pTex;
				TextureType  textype;
			}m_TexStageDesc[MAX_TEXTURE_LAYERS];

			D3DCAPS8	m_Caps;
		};// END CLASS DEFINITION DirectX8VisualSystem
	} // VISUALSYSTEM
}

#endif // __DIRECTX8VISUALSYSTEM_H__

⌨️ 快捷键说明

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