File: Wm5Dx9Mapping.cpp

package info (click to toggle)
libwildmagic 5.17%2Bcleaned1-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 90,124 kB
  • sloc: cpp: 215,940; csh: 637; sh: 91; makefile: 40
file content (219 lines) | stat: -rw-r--r-- 9,087 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
// Geometric Tools, LLC
// Copyright (c) 1998-2014
// Distributed under the Boost Software License, Version 1.0.
// http://www.boost.org/LICENSE_1_0.txt
// http://www.geometrictools.com/License/Boost/LICENSE_1_0.txt
//
// File Version: 5.0.0 (2010/01/01)

#include "Wm5GraphicsPCH.h"
#include "Wm5Dx9Mapping.h"

namespace Wm5
{

BYTE gDX9AttributeType[VertexFormat::AT_QUANTITY] =
{
    255,                        // AT_NONE (unsupported)
    D3DDECLTYPE_FLOAT1,         // AT_FLOAT1
    D3DDECLTYPE_FLOAT2,         // AT_FLOAT2
    D3DDECLTYPE_FLOAT3,         // AT_FLOAT3
    D3DDECLTYPE_FLOAT4,         // AT_FLOAT4
    255,                        // AT_HALF1 (unsupported)
    D3DDECLTYPE_FLOAT16_2,      // AT_HALF2
    255,                        // AT_HALF3 (unsupported)
    D3DDECLTYPE_FLOAT16_4,      // AT_HALF4
    D3DDECLTYPE_D3DCOLOR,       // AT_UBYTE4
    255,                        // AT_SHORT1 (unsupported)
    D3DDECLTYPE_SHORT2,         // AT_SHORT2
    D3DDECLTYPE_SHORT4          // AT_SHORT4
};

BYTE gDX9AttributeUsage[VertexFormat::AU_QUANTITY] =
{
    255,                        // AU_NONE (unsupported)
    D3DDECLUSAGE_POSITION,      // AU_POSITION
    D3DDECLUSAGE_NORMAL,        // AU_NORMAL
    D3DDECLUSAGE_TANGENT,       // AU_TANGENT
    D3DDECLUSAGE_BINORMAL,      // AU_BINORMAL
    D3DDECLUSAGE_TEXCOORD,      // AU_TEXCOORD
    D3DDECLUSAGE_COLOR,         // AU_COLOR
    D3DDECLUSAGE_BLENDINDICES,  // AU_BLENDINDICES
    D3DDECLUSAGE_BLENDWEIGHT,   // AU_BLENDWEIGHT
    D3DDECLUSAGE_TESSFACTOR,    // AU_FOGCOORD
    D3DDECLUSAGE_PSIZE          // AU_PSIZE
};

DWORD gDX9BufferUsage[Buffer::BU_QUANTITY] =
{
    D3DUSAGE_WRITEONLY,         // BU_STATIC
    D3DUSAGE_DYNAMIC,           // BU_DYNAMIC
    D3DUSAGE_RENDERTARGET,      // BU_RENDERTARGET
    D3DUSAGE_DEPTHSTENCIL,      // BU_DEPTHSTENCIL
    0                           // BU_TEXTURE
};

DWORD gDX9BufferLocking[Buffer::BL_QUANTITY] =
{
    D3DLOCK_READONLY,           // BL_READ_ONLY
    0,                          // BL_WRITE_ONLY
    0                           // BL_READ_WRITE
};

D3DFORMAT gDX9TextureFormat[Texture::TF_QUANTITY] =
{
    D3DFMT_UNKNOWN,             // TF_NONE
    D3DFMT_R5G6B5,              // TF_R5G6B5
    D3DFMT_A1R5G5B5,            // TF_A1R5G5B5
    D3DFMT_A4R4G4B4,            // TF_A4R4G4B4
    D3DFMT_A8,                  // TF_A8
    D3DFMT_L8,                  // TF_L8
    D3DFMT_A8L8,                // TF_A8L8
    D3DFMT_R8G8B8,              // TF_R8G8B8
    D3DFMT_A8R8G8B8,            // TF_A8R8G8B8
    D3DFMT_A8B8G8R8,            // TF_A8B8G8R8
    D3DFMT_L16,                 // TF_L16
    D3DFMT_G16R16,              // TF_G16R16
    D3DFMT_A16B16G16R16,        // TF_A16B16G16R16
    D3DFMT_R16F,                // TF_R16F
    D3DFMT_G16R16F,             // TF_G16R16F
    D3DFMT_A16B16G16R16F,       // TF_A16B16G16R16F
    D3DFMT_R32F,                // TF_R32F
    D3DFMT_G32R32F,             // TF_G32R32F
    D3DFMT_A32B32G32R32F,       // TF_A32B32G32R32F
    D3DFMT_DXT1,                // TF_DXT1
    D3DFMT_DXT3,                // TF_DXT3
    D3DFMT_DXT5,                // TF_DXT5
    D3DFMT_D24S8                // TF_D24S8
};

DWORD gDX9MinFilter[Shader::SF_QUANTITY] =
{
    D3DTEXF_NONE,               // Shader::SF_NONE
    D3DTEXF_POINT,              // Shader::SF_NEAREST
    D3DTEXF_LINEAR,             // Shader::SF_LINEAR
    D3DTEXF_POINT,              // Shader::SF_NEAREST_NEAREST
    D3DTEXF_POINT,              // Shader::SF_NEAREST_LINEAR
    D3DTEXF_LINEAR,             // Shader::SF_LINEAR_NEAREST
    D3DTEXF_LINEAR              // Shader::SF_LINEAR_LINEAR
};

DWORD gDX9MipFilter[Shader::SF_QUANTITY] =
{
    D3DTEXF_NONE,               // Shader::SF_NONE
    D3DTEXF_NONE,               // Shader::SF_NEAREST
    D3DTEXF_NONE,               // Shader::SF_LINEAR
    D3DTEXF_POINT,              // Shader::SF_NEAREST_NEAREST
    D3DTEXF_LINEAR,             // Shader::SF_NEAREST_LINEAR
    D3DTEXF_POINT,              // Shader::SF_LINEAR_NEAREST
    D3DTEXF_LINEAR              // Shader::SF_LINEAR_LINEAR
};

DWORD gDX9WrapMode[Shader::SC_QUANTITY] =
{
    0,                          // Shader::SC_NONE
    D3DTADDRESS_CLAMP,          // Shader::SC_CLAMP
    D3DTADDRESS_WRAP,           // Shader::SC_REPEAT
    D3DTADDRESS_MIRROR,         // Shader::SC_MIRRORED_REPEAT
    D3DTADDRESS_BORDER,         // Shader::SC_CLAMP_BORDER
    D3DTADDRESS_CLAMP           // Shader::SC_CLAMP_EDGE
};

DWORD gDX9AlphaSrcBlend[AlphaState::SBM_QUANTITY] =
{
    D3DBLEND_ZERO,              // AlphaState::SBM_ZERO
    D3DBLEND_ONE,               // AlphaState::SBM_ONE
    D3DBLEND_DESTCOLOR,         // AlphaState::SBM_DST_COLOR
    D3DBLEND_INVDESTCOLOR,      // AlphaState::SBM_ONE_MINUS_DST_COLOR
    D3DBLEND_SRCALPHA,          // AlphaState::SBM_SRC_ALPHA
    D3DBLEND_INVSRCALPHA,       // AlphaState::SBM_ONE_MINUS_SRC_ALPHA
    D3DBLEND_DESTALPHA,         // AlphaState::SBM_DST_ALPHA
    D3DBLEND_INVDESTALPHA,      // AlphaState::SBM_ONE_MINUS_DST_ALPHA
    D3DBLEND_SRCALPHASAT,       // AlphaState::SBM_SRC_ALPHA_SATURATE
    0,                          // AlphaState::SBM_CONSTANT_COLOR
    0,                          // AlphaState::SBM_ONE_MINUS_CONSTANT_COLOR
    0,                          // AlphaState::SBM_CONSTANT_ALPHA
    0                           // AlphaState::SBM_ONE_MINUS_CONSTANT_ALPHA
};

DWORD gDX9AlphaDstBlend[AlphaState::DBM_QUANTITY] =
{
    D3DBLEND_ZERO,              // AlphaState::DBM_ZERO
    D3DBLEND_ONE,               // AlphaState::DBM_ONE
    D3DBLEND_SRCCOLOR,          // AlphaState::DBM_SRC_COLOR
    D3DBLEND_INVSRCCOLOR,       // AlphaState::DBM_ONE_MINUS_SRC_COLOR
    D3DBLEND_SRCALPHA,          // AlphaState::DBM_SRC_ALPHA
    D3DBLEND_INVSRCALPHA,       // AlphaState::DBM_ONE_MINUS_SRC_ALPHA
    D3DBLEND_DESTALPHA,         // AlphaState::DBM_DST_ALPHA
    D3DBLEND_INVDESTALPHA,      // AlphaState::DBM_ONE_MINUS_DST_ALPHA
    0,                          // AlphaState::DBM_CONSTANT_COLOR
    0,                          // AlphaState::DBM_ONE_MINUS_CONSTANT_COLOR
    0,                          // AlphaState::DBM_CONSTANT_ALPHA
    0                           // AlphaState::DBM_ONE_MINUS_CONSTANT_ALPHA
};

DWORD gDX9AlphaCompare[AlphaState::CM_QUANTITY] =
{
    D3DCMP_NEVER,               // AlphaState::CM_NEVER
    D3DCMP_LESS,                // AlphaState::CM_LESS
    D3DCMP_EQUAL,               // AlphaState::CM_EQUAL
    D3DCMP_LESSEQUAL,           // AlphaState::CM_LEQUAL
    D3DCMP_GREATER,             // AlphaState::CM_GREATER
    D3DCMP_NOTEQUAL,            // AlphaState::CM_NOTEQUAL
    D3DCMP_GREATEREQUAL,        // AlphaState::CM_GEQUAL
    D3DCMP_ALWAYS               // AlphaState::CM_ALWAYS
};

DWORD gDX9CullOrder[2] = 
{
    D3DCULL_CCW,                // CullState::mCCWOrder = true
    D3DCULL_CW                  // CullState::mCCWOrder = false
};

DWORD gDX9DepthCompare[DepthState::CM_QUANTITY] = 
{
    D3DCMP_NEVER,               // DepthState::CM_NEVER
    D3DCMP_LESS,                // DepthState::CM_LESS
    D3DCMP_EQUAL,               // DepthState::CM_EQUAL
    D3DCMP_LESSEQUAL,           // DepthState::CM_LEQUAL
    D3DCMP_GREATER,             // DepthState::CM_GREATER
    D3DCMP_NOTEQUAL,            // DepthState::CM_NOTEQUAL
    D3DCMP_GREATEREQUAL,        // DepthState::CM_GEQUAL
    D3DCMP_ALWAYS               // DepthState::CM_ALWAYS
};

DWORD gDX9StencilCompare[StencilState::CM_QUANTITY] = 
{
    D3DCMP_NEVER,               // StencilState::CF_NEVER
    D3DCMP_LESS,                // StencilState::CF_LESS
    D3DCMP_EQUAL,               // StencilState::CF_EQUAL
    D3DCMP_LESSEQUAL,           // StencilState::CF_LEQUAL
    D3DCMP_GREATER,             // StencilState::CF_GREATER
    D3DCMP_NOTEQUAL,            // StencilState::CF_NOTEQUAL
    D3DCMP_GREATEREQUAL,        // StencilState::CF_GEQUAL
    D3DCMP_ALWAYS               // StencilState::CF_ALWAYS
};

DWORD gDX9StencilOperation[StencilState::OT_QUANTITY] =
{
    D3DSTENCILOP_KEEP,          // StencilState::OT_KEEP
    D3DSTENCILOP_ZERO,          // StencilState::OT_ZERO
    D3DSTENCILOP_REPLACE,       // StencilState::OT_REPLACE
    D3DSTENCILOP_INCR,          // StencilState::OT_INCREMENT
    D3DSTENCILOP_DECR,          // StencilState::OT_DECREMENT
    D3DSTENCILOP_INVERT         // StencilState::OT_INVERT
};

D3DPRIMITIVETYPE gDX9PrimitiveType[Visual::PT_MAX_QUANTITY] =
{
    D3DPT_FORCE_DWORD,          // PT_NONE (not used)
    D3DPT_POINTLIST,            // PT_POLYPOINT
    D3DPT_LINELIST,             // PT_POLYSEGMENTS_DISJOINT
    D3DPT_LINESTRIP,            // PT_POLYSEGMENTS_CONTIGUOUS
    D3DPT_FORCE_DWORD,          // PT_TRIANGLES (not used)
    D3DPT_TRIANGLELIST,         // PT_TRIMESH
    D3DPT_TRIANGLESTRIP,        // PT_TRISTRIP
    D3DPT_TRIANGLEFAN           // PT_TRIFAN
};

}