-#############################################################################
+##########################################################################
#
-# Copyright 2008 Tungsten Graphics, Inc.
+# Copyright 2008-2009 VMware, Inc.
+# All Rights Reserved.
#
-# This program is free software: you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published
-# by the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License for more details.
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
#
-# You should have received a copy of the GNU Lesser General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
#
-#############################################################################
+##########################################################################/
"""d3dtypes.h"""
-from windows import *
-from ddraw import *
+from winapi import *
D3DVALUE = Float
LPD3DVALUE = Pointer(Float)
D3DFIXED = LONG
-LPD3DVALIDATECALLBACK = LPVOID
-LPD3DENUMTEXTUREFORMATSCALLBACK = LPVOID
-LPD3DENUMPIXELFORMATSCALLBACK = LPVOID
+LPD3DVALIDATECALLBACK = Opaque("LPD3DVALIDATECALLBACK")
+LPD3DENUMTEXTUREFORMATSCALLBACK = Opaque("LPD3DENUMTEXTUREFORMATSCALLBACK")
+LPD3DENUMPIXELFORMATSCALLBACK = Opaque("LPD3DENUMPIXELFORMATSCALLBACK")
D3DCOLOR = DWORD
LPD3DCOLOR = Pointer(D3DCOLOR)
LPD3DVERTEX = Pointer(D3DVERTEX)
D3DMATRIX = Struct("D3DMATRIX", [
- (D3DVALUE, "m[4][4]"),
+ (D3DVALUE, "_%u" % index) for index in [
+ 11, 12, 13, 14,
+ 21, 22, 23, 24,
+ 31, 32, 33, 34,
+ 41, 42, 43, 44
+ ]
])
-LPD3DMATRIX = Pointer(D3DMATRIX)
+LPD3DMATRIX = Alias("LPD3DMATRIX", Pointer(D3DMATRIX))
D3DVIEWPORT = Struct("D3DVIEWPORT", [
(DWORD, "dwSize"),
"D3DLIGHT_DIRECTIONAL",
"D3DLIGHT_PARALLELPOINT",
"D3DLIGHT_GLSPOT",
- "D3DLIGHT_FORCE_DWORD",
])
D3DLIGHT = Struct("D3DLIGHT", [
"D3DOP_BRANCHFORWARD",
"D3DOP_SPAN",
"D3DOP_SETSTATUS",
- "D3DOP_FORCE_DWORD",
])
D3DINSTRUCTION = Struct("D3DINSTRUCTION", [
"D3DSHADE_FLAT",
"D3DSHADE_GOURAUD",
"D3DSHADE_PHONG",
- "D3DSHADE_FORCE_DWORD",
])
D3DFILLMODE = Enum("D3DFILLMODE", [
"D3DFILL_POINT",
"D3DFILL_WIREFRAME",
"D3DFILL_SOLID",
- "D3DFILL_FORCE_DWORD",
])
D3DLINEPATTERN = Struct("D3DLINEPATTERN", [
"D3DFILTER_MIPLINEAR",
"D3DFILTER_LINEARMIPNEAREST",
"D3DFILTER_LINEARMIPLINEAR",
- "D3DFILTER_FORCE_DWORD",
])
D3DBLEND = Enum("D3DBLEND", [
"D3DBLEND_SRCALPHASAT",
"D3DBLEND_BOTHSRCALPHA",
"D3DBLEND_BOTHINVSRCALPHA",
- "D3DBLEND_FORCE_DWORD",
])
D3DTEXTUREBLEND = Enum("D3DTEXTUREBLEND", [
"D3DTBLEND_MODULATEMASK",
"D3DTBLEND_COPY",
"D3DTBLEND_ADD",
- "D3DTBLEND_FORCE_DWORD",
])
D3DTEXTUREADDRESS = Enum("D3DTEXTUREADDRESS", [
"D3DTADDRESS_MIRROR",
"D3DTADDRESS_CLAMP",
"D3DTADDRESS_BORDER",
- "D3DTADDRESS_FORCE_DWORD",
])
D3DCULL = Enum("D3DCULL", [
"D3DCULL_NONE",
"D3DCULL_CW",
"D3DCULL_CCW",
- "D3DCULL_FORCE_DWORD",
])
D3DCMPFUNC = Enum("D3DCMPFUNC", [
"D3DCMP_NOTEQUAL",
"D3DCMP_GREATEREQUAL",
"D3DCMP_ALWAYS",
- "D3DCMP_FORCE_DWORD",
])
D3DSTENCILOP = Enum("D3DSTENCILOP", [
"D3DSTENCILOP_INVERT",
"D3DSTENCILOP_INCR",
"D3DSTENCILOP_DECR",
- "D3DSTENCILOP_FORCE_DWORD",
])
D3DFOGMODE = Enum("D3DFOGMODE", [
"D3DFOG_EXP",
"D3DFOG_EXP2",
"D3DFOG_LINEAR",
- "D3DFOG_FORCE_DWORD",
])
D3DZBUFFERTYPE = Enum("D3DZBUFFERTYPE", [
"D3DZB_FALSE",
"D3DZB_TRUE",
"D3DZB_USEW",
- "D3DZB_FORCE_DWORD",
])
D3DANTIALIASMODE = Enum("D3DANTIALIASMODE", [
"D3DANTIALIAS_NONE",
"D3DANTIALIAS_SORTDEPENDENT",
"D3DANTIALIAS_SORTINDEPENDENT",
- "D3DANTIALIAS_FORCE_DWORD",
])
D3DVERTEXTYPE = Enum("D3DVERTEXTYPE", [
"D3DVT_VERTEX",
"D3DVT_LVERTEX",
"D3DVT_TLVERTEX",
- "D3DVT_FORCE_DWORD",
])
D3DPRIMITIVETYPE = Enum("D3DPRIMITIVETYPE", [
"D3DPT_TRIANGLELIST",
"D3DPT_TRIANGLESTRIP",
"D3DPT_TRIANGLEFAN",
- "D3DPT_FORCE_DWORD",
])
D3DTRANSFORMSTATETYPE = Enum("D3DTRANSFORMSTATETYPE", [
"D3DTRANSFORMSTATE_TEXTURE5",
"D3DTRANSFORMSTATE_TEXTURE6",
"D3DTRANSFORMSTATE_TEXTURE7",
- "D3DTRANSFORMSTATE_FORCE_DWORD",
])
D3DLIGHTSTATETYPE = Enum("D3DLIGHTSTATETYPE", [
"D3DLIGHTSTATE_FOGEND",
"D3DLIGHTSTATE_FOGDENSITY",
"D3DLIGHTSTATE_COLORVERTEX",
- "D3DLIGHTSTATE_FORCE_DWORD",
])
D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [
"D3DRENDERSTATE_STIPPLEPATTERN29",
"D3DRENDERSTATE_STIPPLEPATTERN30",
"D3DRENDERSTATE_STIPPLEPATTERN31",
- "D3DRENDERSTATE_FOGTABLESTART",
- "D3DRENDERSTATE_FOGTABLEEND",
- "D3DRENDERSTATE_FOGTABLEDENSITY",
])
D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", [
(D3DTRANSFORMSTATETYPE, "dtstTransformStateType"),
(D3DLIGHTSTATETYPE, "dlstLightStateType"),
(D3DRENDERSTATETYPE, "drstRenderStateType"),
- (DWORD, "dwArg[1]"),
- (D3DVALUE, "dvArg[1]"),
+ (Array(DWORD, "1"), "dwArg"),
+ (Array(D3DVALUE, "1"), "dvArg"),
])
D3DMATRIXLOAD = Struct("D3DMATRIXLOAD", [
"D3DTSS_BUMPENVLSCALE",
"D3DTSS_BUMPENVLOFFSET",
"D3DTSS_TEXTURETRANSFORMFLAGS",
- "D3DTSS_FORCE_DWORD",
])
D3DTSS_TCI = Flags(DWORD, [
"D3DTFG_FLATCUBIC",
"D3DTFG_GAUSSIANCUBIC",
"D3DTFG_ANISOTROPIC",
- "D3DTFG_FORCE_DWORD",
])
D3DTEXTUREMINFILTER = Enum("D3DTEXTUREMINFILTER", [
"D3DTFN_POINT",
"D3DTFN_LINEAR",
"D3DTFN_ANISOTROPIC",
- "D3DTFN_FORCE_DWORD",
])
D3DTEXTUREMIPFILTER = Enum("D3DTEXTUREMIPFILTER", [
"D3DTFP_NONE",
"D3DTFP_POINT",
"D3DTFP_LINEAR",
- "D3DTFP_FORCE_DWORD",
])
D3DTRIFLAG = Flags(DWORD, [
(D3DDP_PTRSTRIDE, "normal"),
(D3DDP_PTRSTRIDE, "diffuse"),
(D3DDP_PTRSTRIDE, "specular"),
- (D3DDP_PTRSTRIDE, "textureCoords[D3DDP_MAXTEXCOORD]"),
+ (Array(D3DDP_PTRSTRIDE, "D3DDP_MAXTEXCOORD"), "textureCoords"),
])
LPD3DDRAWPRIMITIVESTRIDEDDATA = Pointer(D3DDRAWPRIMITIVESTRIDEDDATA)
"D3DSBT_ALL",
"D3DSBT_PIXELSTATE",
"D3DSBT_VERTEXSTATE",
- "D3DSBT_FORCE_DWORD",
])
D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", [
"D3DTTFF_COUNT3",
"D3DTTFF_COUNT4",
"D3DTTFF_PROJECTED",
- "D3DTTFF_FORCE_DWORD",
])