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