📄 d3dmapping.h
字号:
#ifndef __D3DMAPPING_H__
#define __D3DMAPPING_H__
#ifndef __D3D8PREREQUISITES_H__
# include "DX8Prerequisites.h"
#endif
#ifndef __VISUALSYSOPTIONS_H__
# include "../../Main/QVisualSysOptions.h"
#endif
#ifndef __BLENDMODE_H__
# include "../../Main/QBlendMode.h"
#endif
namespace QGE
{
namespace VISUAL
{
class _D3D8Export D3DMapping
{
public:
static DWORD Get(LayerBlendOperationEx lbo,D3DCAPS8* caps)
{
switch( lbo )
{
case LBX_SOURCE1:
return D3DTOP_SELECTARG1;
case LBX_SOURCE2:
return D3DTOP_SELECTARG2;
case LBX_MODULATE:
return D3DTOP_MODULATE;
case LBX_MODULATE_X2:
return D3DTOP_MODULATE2X;
case LBX_MODULATE_X4:
return D3DTOP_MODULATE4X;
case LBX_ADD:
return D3DTOP_ADD;
case LBX_ADD_SIGNED:
return D3DTOP_ADDSIGNED;
case LBX_ADD_SMOOTH:
return D3DTOP_ADDSMOOTH;
case LBX_SUBTRACT:
return D3DTOP_SUBTRACT;
case LBX_BLEND_DIFFUSE_ALPHA:
return D3DTOP_BLENDDIFFUSEALPHA;
case LBX_BLEND_TEXTURE_ALPHA:
return D3DTOP_BLENDTEXTUREALPHA;
case LBX_BLEND_CURRENT_ALPHA:
return D3DTOP_BLENDCURRENTALPHA;
case LBX_BLEND_MANUAL:
return D3DTOP_BLENDFACTORALPHA;
case LBX_DOTPRODUCT:
if( caps->TextureOpCaps & D3DTEXOPCAPS_DOTPRODUCT3 )
return D3DTOP_DOTPRODUCT3;
else
return D3DTOP_MODULATE;
default:
return 0;
}
}
static D3DLIGHTTYPE Get(LightType lt)
{
switch( lt )
{
case LT_POINT:
return D3DLIGHT_POINT;
case LT_DIRECTIONAL:
return D3DLIGHT_DIRECTIONAL;
case LT_SPOT:
return D3DLIGHT_SPOT;
default:
return D3DLIGHT_FORCE_DWORD;
}
}
static DWORD Get(LayerBlendSource lbs)
{
switch( lbs )
{
case LBS_CURRENT:
return D3DTA_COMPLEMENT;
case LBS_TEXTURE:
return D3DTA_TEXTURE;
case LBS_DIFFUSE:
return D3DTA_DIFFUSE;
case LBS_SPECULAR:
return D3DTA_SPECULAR;
case LBS_MANUAL:
return D3DTA_TFACTOR;
default:
return 0;
}
}
static DWORD Get(ShadingOptions so)
{
switch( so )
{
case SO_FLAT:
return D3DSHADE_FLAT;
case SO_GOURAUD:
return D3DSHADE_GOURAUD;
case SO_PHONG:
return D3DSHADE_PHONG;
default:
return 0;
}
}
static DWORD Get(CullingMode cm)
{
switch( cm )
{
case CULL_NONE:
return D3DCULL_NONE;
case CULL_CLOCKWISE:
return D3DCULL_CW;
case CULL_ANTICLOCKWISE:
return D3DCULL_CCW;
default:
return 0;
}
}
static DWORD Get(CompareFunction cf)
{
switch( cf )
{
case CMPF_ALWAYS_FAIL:
return D3DCMP_NEVER;
case CMPF_ALWAYS_PASS:
return D3DCMP_ALWAYS;
case CMPF_EQUAL:
return D3DCMP_EQUAL;
case CMPF_GREATER:
return D3DCMP_GREATER;
case CMPF_GREATER_EQUAL:
return D3DCMP_GREATEREQUAL;
case CMPF_LESS:
return D3DCMP_LESS;
case CMPF_LESS_EQUAL:
return D3DCMP_LESSEQUAL;
case CMPF_NOT_EQUAL:
return D3DCMP_NOTEQUAL;
default:
return 0;
}
}
static DWORD Get(StencilOperation so)
{
switch(so)
{
case SOP_KEEP:
return D3DSTENCILOP_KEEP;
case SOP_ZERO:
return D3DSTENCILOP_ZERO;
case SOP_REPLACE:
return D3DSTENCILOP_REPLACE;
case SOP_INCREMENT:
return D3DSTENCILOP_INCRSAT;
case SOP_DECREMENT:
return D3DSTENCILOP_DECRSAT;
case SOP_INVERT:
return D3DSTENCILOP_INVERT;
default:
return 0;
}
}
static DWORD Get(SceneDetailLevel sdl)
{
switch(sdl)
{
case SDL_POINTS:
return D3DFILL_POINT;
case SDL_WIREFRAME:
return D3DFILL_WIREFRAME;
case SDL_SOLID:
return D3DFILL_SOLID;
default:
return 0;
}
}
static DWORD Get(ClearMode cm)
{
switch( cm )
{
case CLEAR_TARGET:
return D3DCLEAR_TARGET;
case CLEAR_STENCIL:
return D3DCLEAR_STENCIL;
case CLEAR_ZBUFFER:
return D3DCLEAR_ZBUFFER;
case CLEAR_TARGET_ZBUFFER:
return D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER;
case CLEAR_TARGET_STENCIL:
return D3DCLEAR_TARGET|D3DCLEAR_STENCIL;
default:
return D3DCLEAR_TARGET;
}
}
static void Get(VertexDeclarationType vdt ,DWORD& vertexRegister,DWORD& type)
{
switch(vdt)
{
case VDT_POSITION:
vertexRegister = D3DVSDE_POSITION;
type = D3DVSDT_FLOAT3;
break;
case VDT_DIFFUSE:
vertexRegister = D3DVSDE_DIFFUSE;
type = D3DVSDT_D3DCOLOR;
break;
case VDT_BLENDWEIGHT:
vertexRegister = D3DVSDE_BLENDWEIGHT;
type = D3DVSDT_FLOAT1;
break;
case VDT_TEXCOOR0:
vertexRegister = D3DVSDE_TEXCOORD0;
type = D3DVSDT_FLOAT2;
break;
case VDT_TEXCOOR1:
vertexRegister = D3DVSDE_TEXCOORD1;
type = D3DVSDT_FLOAT2;
break;
case VDT_TEXCOOR2:
vertexRegister = D3DVSDE_TEXCOORD2;
type = D3DVSDT_FLOAT2;
break;
case VDT_TEXCOOR3:
vertexRegister = D3DVSDE_TEXCOORD3;
type = D3DVSDT_FLOAT2;
break;
default:
vertexRegister = 0;
type =0;
}
}
};
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -