]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'master' of git://github.com/slavapestov/factor
authorerikc <erikcharlebois@gmail.com>
Wed, 20 Jan 2010 03:31:44 +0000 (19:31 -0800)
committererikc <erikcharlebois@gmail.com>
Wed, 20 Jan 2010 03:31:44 +0000 (19:31 -0800)
207 files changed:
basis/ui/backend/windows/windows.factor
basis/windows/directx/audiodefs/audiodefs.factor [new file with mode: 0644]
basis/windows/directx/audiodefs/authors.txt [new file with mode: 0644]
basis/windows/directx/audiodefs/summary.txt [new file with mode: 0644]
basis/windows/directx/audiodefs/tags.txt [new file with mode: 0644]
basis/windows/directx/d2d1/authors.txt [new file with mode: 0644]
basis/windows/directx/d2d1/d2d1.factor [new file with mode: 0644]
basis/windows/directx/d2d1/summary.txt [new file with mode: 0644]
basis/windows/directx/d2d1/tags.txt [new file with mode: 0644]
basis/windows/directx/d2dbasetypes/authors.txt [new file with mode: 0644]
basis/windows/directx/d2dbasetypes/d2dbasetypes.factor [new file with mode: 0644]
basis/windows/directx/d2dbasetypes/summary.txt [new file with mode: 0644]
basis/windows/directx/d2dbasetypes/tags.txt [new file with mode: 0644]
basis/windows/directx/d2derr/authors.txt [new file with mode: 0644]
basis/windows/directx/d2derr/d2derr.factor [new file with mode: 0644]
basis/windows/directx/d2derr/summary.txt [new file with mode: 0644]
basis/windows/directx/d2derr/tags.txt [new file with mode: 0644]
basis/windows/directx/d3d10/authors.txt [new file with mode: 0644]
basis/windows/directx/d3d10/d3d10.factor [new file with mode: 0644]
basis/windows/directx/d3d10/summary.txt [new file with mode: 0644]
basis/windows/directx/d3d10/tags.txt [new file with mode: 0644]
basis/windows/directx/d3d10_1/authors.txt [new file with mode: 0644]
basis/windows/directx/d3d10_1/d3d10_1.factor [new file with mode: 0644]
basis/windows/directx/d3d10_1/summary.txt [new file with mode: 0644]
basis/windows/directx/d3d10_1/tags.txt [new file with mode: 0644]
basis/windows/directx/d3d10_1shader/authors.txt [new file with mode: 0644]
basis/windows/directx/d3d10_1shader/d3d10_1shader.factor [new file with mode: 0644]
basis/windows/directx/d3d10_1shader/summary.txt [new file with mode: 0644]
basis/windows/directx/d3d10_1shader/tags.txt [new file with mode: 0644]
basis/windows/directx/d3d10effect/authors.txt [new file with mode: 0644]
basis/windows/directx/d3d10effect/d3d10effect.factor [new file with mode: 0644]
basis/windows/directx/d3d10effect/summary.txt [new file with mode: 0644]
basis/windows/directx/d3d10effect/tags.txt [new file with mode: 0644]
basis/windows/directx/d3d10misc/authors.txt [new file with mode: 0644]
basis/windows/directx/d3d10misc/d3d10misc.factor [new file with mode: 0644]
basis/windows/directx/d3d10misc/summary.txt [new file with mode: 0644]
basis/windows/directx/d3d10misc/tags.txt [new file with mode: 0644]
basis/windows/directx/d3d10shader/authors.txt [new file with mode: 0644]
basis/windows/directx/d3d10shader/d3d10shader.factor [new file with mode: 0644]
basis/windows/directx/d3d10shader/summary.txt [new file with mode: 0644]
basis/windows/directx/d3d10shader/tags.txt [new file with mode: 0644]
basis/windows/directx/d3d11/authors.txt [new file with mode: 0644]
basis/windows/directx/d3d11/d3d11.factor [new file with mode: 0644]
basis/windows/directx/d3d11/summary.txt [new file with mode: 0644]
basis/windows/directx/d3d11/tags.txt [new file with mode: 0644]
basis/windows/directx/d3d11shader/authors.txt [new file with mode: 0644]
basis/windows/directx/d3d11shader/d3d11shader.factor [new file with mode: 0644]
basis/windows/directx/d3d11shader/summary.txt [new file with mode: 0644]
basis/windows/directx/d3d11shader/tags.txt [new file with mode: 0644]
basis/windows/directx/d3d9/authors.txt [new file with mode: 0644]
basis/windows/directx/d3d9/d3d9.factor [new file with mode: 0644]
basis/windows/directx/d3d9/summary.txt [new file with mode: 0644]
basis/windows/directx/d3d9/tags.txt [new file with mode: 0644]
basis/windows/directx/d3d9caps/authors.txt [new file with mode: 0644]
basis/windows/directx/d3d9caps/d3d9caps.factor [new file with mode: 0644]
basis/windows/directx/d3d9caps/summary.txt [new file with mode: 0644]
basis/windows/directx/d3d9caps/tags.txt [new file with mode: 0644]
basis/windows/directx/d3d9types/authors.txt [new file with mode: 0644]
basis/windows/directx/d3d9types/d3d9types.factor [new file with mode: 0644]
basis/windows/directx/d3d9types/summary.txt [new file with mode: 0644]
basis/windows/directx/d3d9types/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dcommon/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dcommon/d3dcommon.factor [new file with mode: 0644]
basis/windows/directx/d3dcommon/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dcommon/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dcompiler/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dcompiler/d3dcompiler.factor [new file with mode: 0644]
basis/windows/directx/d3dcompiler/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dcompiler/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dcsx/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dcsx/d3dcsx.factor [new file with mode: 0644]
basis/windows/directx/d3dcsx/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dcsx/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx10/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx10/d3dx10.factor [new file with mode: 0644]
basis/windows/directx/d3dx10/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx10/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx10async/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx10async/d3dx10async.factor [new file with mode: 0644]
basis/windows/directx/d3dx10async/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx10async/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx10core/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx10core/d3dx10core.factor [new file with mode: 0644]
basis/windows/directx/d3dx10core/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx10core/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx10math/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx10math/d3dx10math.factor [new file with mode: 0644]
basis/windows/directx/d3dx10math/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx10math/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx10mesh/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx10mesh/d3dx10mesh.factor [new file with mode: 0644]
basis/windows/directx/d3dx10mesh/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx10mesh/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx10tex/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx10tex/d3dx10tex.factor [new file with mode: 0644]
basis/windows/directx/d3dx10tex/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx10tex/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx11/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx11/d3dx11.factor [new file with mode: 0644]
basis/windows/directx/d3dx11/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx11/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx11async/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx11async/d3dx11async.factor [new file with mode: 0644]
basis/windows/directx/d3dx11async/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx11async/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx11core/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx11core/d3dx11core.factor [new file with mode: 0644]
basis/windows/directx/d3dx11core/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx11core/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx11tex/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx11tex/d3dx11tex.factor [new file with mode: 0644]
basis/windows/directx/d3dx11tex/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx11tex/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx9/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx9/d3dx9.factor [new file with mode: 0644]
basis/windows/directx/d3dx9/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx9/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx9anim/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx9anim/d3dx9anim.factor [new file with mode: 0644]
basis/windows/directx/d3dx9anim/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx9anim/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx9core/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx9core/d3dx9core.factor [new file with mode: 0644]
basis/windows/directx/d3dx9core/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx9core/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx9effect/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx9effect/d3dx9effect.factor [new file with mode: 0644]
basis/windows/directx/d3dx9effect/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx9effect/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx9math/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx9math/d3dx9math.factor [new file with mode: 0644]
basis/windows/directx/d3dx9math/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx9math/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx9mesh/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx9mesh/d3dx9mesh.factor [new file with mode: 0644]
basis/windows/directx/d3dx9mesh/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx9mesh/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx9shader/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx9shader/d3dx9shader.factor [new file with mode: 0644]
basis/windows/directx/d3dx9shader/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx9shader/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx9shape/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx9shape/d3dx9shape.factor [new file with mode: 0644]
basis/windows/directx/d3dx9shape/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx9shape/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx9tex/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx9tex/d3dx9tex.factor [new file with mode: 0644]
basis/windows/directx/d3dx9tex/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx9tex/tags.txt [new file with mode: 0644]
basis/windows/directx/d3dx9xof/authors.txt [new file with mode: 0644]
basis/windows/directx/d3dx9xof/d3dx9xof.factor [new file with mode: 0644]
basis/windows/directx/d3dx9xof/summary.txt [new file with mode: 0644]
basis/windows/directx/d3dx9xof/tags.txt [new file with mode: 0644]
basis/windows/directx/dcommon/authors.txt [new file with mode: 0644]
basis/windows/directx/dcommon/dcommon.factor [new file with mode: 0644]
basis/windows/directx/dcommon/summary.txt [new file with mode: 0644]
basis/windows/directx/dcommon/tags.txt [new file with mode: 0644]
basis/windows/directx/dwrite/authors.txt [new file with mode: 0644]
basis/windows/directx/dwrite/dwrite.factor [new file with mode: 0644]
basis/windows/directx/dwrite/summary.txt [new file with mode: 0644]
basis/windows/directx/dwrite/tags.txt [new file with mode: 0644]
basis/windows/directx/dxfile/authors.txt [new file with mode: 0644]
basis/windows/directx/dxfile/dxfile.factor [new file with mode: 0644]
basis/windows/directx/dxfile/summary.txt [new file with mode: 0644]
basis/windows/directx/dxfile/tags.txt [new file with mode: 0644]
basis/windows/directx/dxgi/authors.txt [new file with mode: 0644]
basis/windows/directx/dxgi/dxgi.factor [new file with mode: 0644]
basis/windows/directx/dxgi/summary.txt [new file with mode: 0644]
basis/windows/directx/dxgi/tags.txt [new file with mode: 0644]
basis/windows/directx/dxgiformat/authors.txt [new file with mode: 0644]
basis/windows/directx/dxgiformat/dxgiformat.factor [new file with mode: 0644]
basis/windows/directx/dxgiformat/summary.txt [new file with mode: 0644]
basis/windows/directx/dxgiformat/tags.txt [new file with mode: 0644]
basis/windows/directx/dxgitype/authors.txt [new file with mode: 0644]
basis/windows/directx/dxgitype/dxgitype.factor [new file with mode: 0644]
basis/windows/directx/dxgitype/summary.txt [new file with mode: 0644]
basis/windows/directx/dxgitype/tags.txt [new file with mode: 0644]
basis/windows/directx/x3daudio/authors.txt [new file with mode: 0644]
basis/windows/directx/x3daudio/summary.txt [new file with mode: 0644]
basis/windows/directx/x3daudio/tags.txt [new file with mode: 0644]
basis/windows/directx/x3daudio/x3daudio.factor [new file with mode: 0644]
basis/windows/directx/xact3/authors.txt [new file with mode: 0644]
basis/windows/directx/xact3/summary.txt [new file with mode: 0644]
basis/windows/directx/xact3/tags.txt [new file with mode: 0644]
basis/windows/directx/xact3/xact3.factor [new file with mode: 0644]
basis/windows/directx/xapo/authors.txt [new file with mode: 0644]
basis/windows/directx/xapo/summary.txt [new file with mode: 0644]
basis/windows/directx/xapo/tags.txt [new file with mode: 0644]
basis/windows/directx/xapo/xapo.factor [new file with mode: 0644]
basis/windows/directx/xapofx/authors.txt [new file with mode: 0644]
basis/windows/directx/xapofx/summary.txt [new file with mode: 0644]
basis/windows/directx/xapofx/tags.txt [new file with mode: 0644]
basis/windows/directx/xapofx/xapofx.factor [new file with mode: 0644]
basis/windows/directx/xaudio2/authors.txt [new file with mode: 0644]
basis/windows/directx/xaudio2/summary.txt [new file with mode: 0644]
basis/windows/directx/xaudio2/tags.txt [new file with mode: 0644]
basis/windows/directx/xaudio2/xaudio2.factor [new file with mode: 0644]
basis/windows/directx/xaudio2fx/authors.txt [new file with mode: 0644]
basis/windows/directx/xaudio2fx/summary.txt [new file with mode: 0644]
basis/windows/directx/xaudio2fx/tags.txt [new file with mode: 0644]
basis/windows/directx/xaudio2fx/xaudio2fx.factor [new file with mode: 0644]
basis/windows/directx/xinput/authors.txt [new file with mode: 0644]
basis/windows/directx/xinput/summary.txt [new file with mode: 0644]
basis/windows/directx/xinput/tags.txt [new file with mode: 0644]
basis/windows/directx/xinput/xinput.factor [new file with mode: 0644]
basis/windows/messages/messages.factor
basis/windows/nt/nt.factor

index a6d73ca80fa57dbe3c30a911d20b71b8bb9b48d1..fdd3c06c29fb4c75bcfb8b808959ad2b47384b3e 100644 (file)
@@ -170,6 +170,8 @@ PRIVATE>
 : lo-word ( wparam -- lo ) <short> *short ; inline
 : hi-word ( wparam -- hi ) -16 shift lo-word ; inline
 : >lo-hi ( WORD -- array ) [ lo-word ] [ hi-word ] bi 2array ;
+: GET_APPCOMMAND_LPARAM ( lParam -- appCommand )
+    hi-word FAPPCOMMAND_MASK lo-word bitnot bitand ; inline
 
 : crlf>lf ( str -- str' )
     CHAR: \r swap remove ;
@@ -495,6 +497,13 @@ SYMBOL: nc-buttons
     ReleaseCapture win32-error=0/f
     mouse-captured off ;
 
+: handle-app-command ( hWnd uMsg wParam lParam -- )
+    GET_APPCOMMAND_LPARAM
+    {
+        { APPCOMMAND_BROWSER_BACKWARD [ pick window left-action send-action ] }
+        { APPCOMMAND_BROWSER_FORWARD [ pick window right-action send-action ] }
+    } case 3drop ;
+    
 : handle-wm-buttondown ( hWnd uMsg wParam lParam -- )
     [
         over set-capture
@@ -571,6 +580,8 @@ H{ } clone wm-handlers set-global
 [ handle-wm-set-focus 0  ] WM_SETFOCUS add-wm-handler
 [ handle-wm-kill-focus 0 ] WM_KILLFOCUS add-wm-handler
 
+[ handle-app-command 0 ] WM_APPCOMMAND add-wm-handler
+
 [ handle-wm-buttondown 0 ] WM_LBUTTONDOWN add-wm-handler
 [ handle-wm-buttondown 0 ] WM_MBUTTONDOWN add-wm-handler
 [ handle-wm-buttondown 0 ] WM_RBUTTONDOWN add-wm-handler
diff --git a/basis/windows/directx/audiodefs/audiodefs.factor b/basis/windows/directx/audiodefs/audiodefs.factor
new file mode 100644 (file)
index 0000000..13e5983
--- /dev/null
@@ -0,0 +1,105 @@
+USING: alien.c-types alien.syntax classes.struct
+windows.kernel32 windows.types ;
+IN: windows.directx.audiodefs
+
+STRUCT: WAVEFORMATEX
+    { wFormatTag      WORD  }
+    { nChannels       WORD  }
+    { nSamplesPerSec  DWORD }
+    { nAvgBytesPerSec DWORD }
+    { nBlockAlign     WORD  }
+    { wBitsPerSample  WORD  }
+    { cbSize          WORD  } ;
+
+TYPEDEF: WAVEFORMATEX* PWAVEFORMATEX
+TYPEDEF: WAVEFORMATEX* NPWAVEFORMATEX
+TYPEDEF: WAVEFORMATEX* LPWAVEFORMATEX
+TYPEDEF: WAVEFORMATEX* PCWAVEFORMATEX
+TYPEDEF: WAVEFORMATEX* LPCWAVEFORMATEX
+
+UNION-STRUCT: WAVEFORMATEXTENSIBLE_UNION
+    { wValidBitsPerSample WORD }
+    { wSamplesPerBlock    WORD }
+    { wReserved           WORD } ;
+
+STRUCT: WAVEFORMATEXTENSIBLE
+    { Format        WAVEFORMATEX               }
+    { Union         WAVEFORMATEXTENSIBLE_UNION }
+    { dwChannelMask DWORD                      }
+    { SubFormat     GUID                       } ;
+
+TYPEDEF: WAVEFORMATEXTENSIBLE* PWAVEFORMATEXTENSIBLE
+TYPEDEF: WAVEFORMATEXTENSIBLE* LPWAVEFORMATEXTENSIBLE
+TYPEDEF: WAVEFORMATEXTENSIBLE* PCWAVEFORMATEXTENSIBLE
+TYPEDEF: WAVEFORMATEXTENSIBLE* LPCWAVEFORMATEXTENSIBLE
+
+STRUCT: WAVEFORMAT
+    { wFormatTag      WORD  }
+    { nChannels       WORD  }
+    { nSamplesPerSec  DWORD }
+    { nAvgBytesPerSec DWORD }
+    { nBlockAlign     WORD  } ;
+TYPEDEF: WAVEFORMAT* PWAVEFORMAT
+TYPEDEF: WAVEFORMAT* NPWAVEFORMAT
+TYPEDEF: WAVEFORMAT* LPWAVEFORMAT
+
+STRUCT: PCMWAVEFORMAT
+    { wf             WAVEFORMAT }
+    { wBitsPerSample WORD       } ;
+TYPEDEF: PCMWAVEFORMAT* PPCMWAVEFORMAT
+TYPEDEF: PCMWAVEFORMAT* NPPCMWAVEFORMAT
+TYPEDEF: PCMWAVEFORMAT* LPPCMWAVEFORMAT
+
+CONSTANT: WAVE_FORMAT_PCM 1
+
+STRUCT: ADPCMCOEFSET
+    { iCoef1 short }
+    { iCoef2 short } ;
+
+STRUCT: ADPCMWAVEFORMAT
+    { wfx              WAVEFORMATEX    }
+    { wSamplesPerBlock WORD            }
+    { wNumCoef         WORD            }
+    { aCoef            ADPCMCOEFSET[7] } ;
+
+CONSTANT: WAVE_FORMAT_ADPCM           2
+CONSTANT: WAVE_FORMAT_UNKNOWN         0
+CONSTANT: WAVE_FORMAT_IEEE_FLOAT      3
+CONSTANT: WAVE_FORMAT_MPEGLAYER3      HEX: 0055
+CONSTANT: WAVE_FORMAT_DOLBY_AC3_SPDIF HEX: 0092
+CONSTANT: WAVE_FORMAT_WMAUDIO2        HEX: 0161
+CONSTANT: WAVE_FORMAT_WMAUDIO3        HEX: 0162
+CONSTANT: WAVE_FORMAT_WMASPDIF        HEX: 0164
+CONSTANT: WAVE_FORMAT_EXTENSIBLE      HEX: FFFE
+
+CONSTANT: SPEAKER_FRONT_LEFT            HEX: 00000001
+CONSTANT: SPEAKER_FRONT_RIGHT           HEX: 00000002
+CONSTANT: SPEAKER_FRONT_CENTER          HEX: 00000004
+CONSTANT: SPEAKER_LOW_FREQUENCY         HEX: 00000008
+CONSTANT: SPEAKER_BACK_LEFT             HEX: 00000010
+CONSTANT: SPEAKER_BACK_RIGHT            HEX: 00000020
+CONSTANT: SPEAKER_FRONT_LEFT_OF_CENTER  HEX: 00000040
+CONSTANT: SPEAKER_FRONT_RIGHT_OF_CENTER HEX: 00000080
+CONSTANT: SPEAKER_BACK_CENTER           HEX: 00000100
+CONSTANT: SPEAKER_SIDE_LEFT             HEX: 00000200
+CONSTANT: SPEAKER_SIDE_RIGHT            HEX: 00000400
+CONSTANT: SPEAKER_TOP_CENTER            HEX: 00000800
+CONSTANT: SPEAKER_TOP_FRONT_LEFT        HEX: 00001000
+CONSTANT: SPEAKER_TOP_FRONT_CENTER      HEX: 00002000
+CONSTANT: SPEAKER_TOP_FRONT_RIGHT       HEX: 00004000
+CONSTANT: SPEAKER_TOP_BACK_LEFT         HEX: 00008000
+CONSTANT: SPEAKER_TOP_BACK_CENTER       HEX: 00010000
+CONSTANT: SPEAKER_TOP_BACK_RIGHT        HEX: 00020000
+CONSTANT: SPEAKER_RESERVED              HEX: 7FFC0000
+CONSTANT: SPEAKER_ALL                   HEX: 80000000
+
+CONSTANT: SPEAKER_MONO             HEX: 00000004
+CONSTANT: SPEAKER_STEREO           HEX: 00000003
+CONSTANT: SPEAKER_2POINT1          HEX: 0000000B
+CONSTANT: SPEAKER_SURROUND         HEX: 00010007
+CONSTANT: SPEAKER_QUAD             HEX: 00028003
+CONSTANT: SPEAKER_4POINT1          HEX: 0002800B
+CONSTANT: SPEAKER_5POINT1          HEX: 0002800F
+CONSTANT: SPEAKER_7POINT1          HEX: 000280CF
+CONSTANT: SPEAKER_5POINT1_SURROUND HEX: 0000060F
+CONSTANT: SPEAKER_7POINT1_SURROUND HEX: 0002860F
diff --git a/basis/windows/directx/audiodefs/authors.txt b/basis/windows/directx/audiodefs/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/audiodefs/summary.txt b/basis/windows/directx/audiodefs/summary.txt
new file mode 100644 (file)
index 0000000..3f80ea1
--- /dev/null
@@ -0,0 +1 @@
+DirectX audio bindings. Corresponds to audiodefs.h.
diff --git a/basis/windows/directx/audiodefs/tags.txt b/basis/windows/directx/audiodefs/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d2d1/authors.txt b/basis/windows/directx/d2d1/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d2d1/d2d1.factor b/basis/windows/directx/d2d1/d2d1.factor
new file mode 100644 (file)
index 0000000..fad8878
--- /dev/null
@@ -0,0 +1,563 @@
+USING: alien.c-types alien.syntax classes.struct windows.com
+windows.com.syntax windows.directx.d3dbasetypes windows.directx.dcommon
+windows.directx.dxgi windows.directx.dxgiformat windows.ole32 windows.types ;
+IN: windows.directx.d2d1
+
+LIBRARY: d2d1
+
+CONSTANT: D2D1_INVALID_TAG HEX: ffffffffffffffff
+CONSTANT: D2D1_DEFAULT_FLATTENING_TOLERANCE 0.25
+
+CONSTANT: D2D1_ALPHA_MODE_UNKNOWN       0
+CONSTANT: D2D1_ALPHA_MODE_PREMULTIPLIED 1
+CONSTANT: D2D1_ALPHA_MODE_STRAIGHT      2
+CONSTANT: D2D1_ALPHA_MODE_IGNORE        3
+CONSTANT: D2D1_ALPHA_MODE_FORCE_DWORD   HEX: ffffffff
+TYPEDEF: int D2D1_ALPHA_MODE
+
+CONSTANT: D2D1_GAMMA_2_2         0
+CONSTANT: D2D1_GAMMA_1_0         1
+CONSTANT: D2D1_GAMMA_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int D2D1_GAMMA
+
+CONSTANT: D2D1_OPACITY_MASK_CONTENT_GRAPHICS            0
+CONSTANT: D2D1_OPACITY_MASK_CONTENT_TEXT_NATURAL        1
+CONSTANT: D2D1_OPACITY_MASK_CONTENT_TEXT_GDI_COMPATIBLE 2
+CONSTANT: D2D1_OPACITY_MASK_CONTENT_FORCE_DWORD         HEX: ffffffff
+TYPEDEF: int D2D1_OPACITY_MASK_CONTENT
+
+CONSTANT: D2D1_EXTEND_MODE_CLAMP       0
+CONSTANT: D2D1_EXTEND_MODE_WRAP        1
+CONSTANT: D2D1_EXTEND_MODE_MIRROR      2
+CONSTANT: D2D1_EXTEND_MODE_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int D2D1_EXTEND_MODE
+
+CONSTANT: D2D1_ANTIALIAS_MODE_PER_PRIMITIVE 0
+CONSTANT: D2D1_ANTIALIAS_MODE_ALIASED       1
+CONSTANT: D2D1_ANTIALIAS_MODE_FORCE_DWORD   HEX: ffffffff
+TYPEDEF: int D2D1_ANTIALIAS_MODE
+
+CONSTANT: D2D1_TEXT_ANTIALIAS_MODE_DEFAULT     0
+CONSTANT: D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE   1
+CONSTANT: D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE   2
+CONSTANT: D2D1_TEXT_ANTIALIAS_MODE_ALIASED     3
+CONSTANT: D2D1_TEXT_ANTIALIAS_MODE_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int D2D1_TEXT_ANTIALIAS_MODE
+
+CONSTANT: D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR 0
+CONSTANT: D2D1_BITMAP_INTERPOLATION_MODE_LINEAR           1
+CONSTANT: D2D1_BITMAP_INTERPOLATION_MODE_FORCE_DWORD      HEX: ffffffff
+TYPEDEF: int D2D1_BITMAP_INTERPOLATION_MODE
+
+CONSTANT: D2D1_DRAW_TEXT_OPTIONS_NO_SNAP     HEX: 00000001
+CONSTANT: D2D1_DRAW_TEXT_OPTIONS_CLIP        HEX: 00000002
+CONSTANT: D2D1_DRAW_TEXT_OPTIONS_NONE        HEX: 00000000
+CONSTANT: D2D1_DRAW_TEXT_OPTIONS_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int D2D1_DRAW_TEXT_OPTIONS
+
+STRUCT: D2D1_PIXEL_FORMAT
+    { format    DXGI_FORMAT     }
+    { alphaMode D2D1_ALPHA_MODE } ;
+
+TYPEDEF: D2D_POINT_2U D2D1_POINT_2U
+TYPEDEF: D2D_POINT_2F D2D1_POINT_2F
+TYPEDEF: D2D_RECT_F D2D1_RECT_F
+TYPEDEF: D2D_RECT_U D2D1_RECT_U
+TYPEDEF: D2D_SIZE_F D2D1_SIZE_F
+TYPEDEF: D2D_SIZE_U D2D1_SIZE_U
+TYPEDEF: D2D_COLOR_F D2D1_COLOR_F
+TYPEDEF: D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F
+TYPEDEF: UINT64 D2D1_TAG
+
+STRUCT: D2D1_BITMAP_PROPERTIES
+    { pixelFormat D2D1_PIXEL_FORMAT }
+    { dpiX        FLOAT             }
+    { dpiY        FLOAT             } ;
+
+STRUCT: D2D1_GRADIENT_STOP
+    { position FLOAT        }
+    { color    D2D1_COLOR_F } ;
+
+STRUCT: D2D1_BRUSH_PROPERTIES
+    { opacity   FLOAT             }
+    { transform D2D1_MATRIX_3X2_F } ;
+
+STRUCT: D2D1_BITMAP_BRUSH_PROPERTIES
+    { extendModeX       D2D1_EXTEND_MODE               }
+    { extendModeY       D2D1_EXTEND_MODE               }
+    { interpolationMode D2D1_BITMAP_INTERPOLATION_MODE } ;
+
+STRUCT: D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES
+    { startPoint D2D1_POINT_2F }
+    { endPoint   D2D1_POINT_2F } ;
+
+STRUCT: D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES
+    { center               D2D1_POINT_2F }
+    { gradientOriginOffset D2D1_POINT_2F }
+    { radiusX              FLOAT         }
+    { radiusY              FLOAT         } ;
+
+CONSTANT: D2D1_ARC_SIZE_SMALL 0
+CONSTANT: D2D1_ARC_SIZE_LARGE 1
+CONSTANT: D2D1_ARC_SIZE_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int D2D1_ARC_SIZE
+
+CONSTANT: D2D1_CAP_STYLE_FLAT        0
+CONSTANT: D2D1_CAP_STYLE_SQUARE      1
+CONSTANT: D2D1_CAP_STYLE_ROUND       2
+CONSTANT: D2D1_CAP_STYLE_TRIANGLE    3
+CONSTANT: D2D1_CAP_STYLE_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int D2D1_CAP_STYLE
+
+CONSTANT: D2D1_DASH_STYLE_SOLID        0
+CONSTANT: D2D1_DASH_STYLE_DASH         1
+CONSTANT: D2D1_DASH_STYLE_DOT          2
+CONSTANT: D2D1_DASH_STYLE_DASH_DOT     3
+CONSTANT: D2D1_DASH_STYLE_DASH_DOT_DOT 4
+CONSTANT: D2D1_DASH_STYLE_CUSTOM       5
+CONSTANT: D2D1_DASH_STYLE_FORCE_DWORD  HEX: ffffffff
+TYPEDEF: int D2D1_DASH_STYLE
+
+CONSTANT: D2D1_LINE_JOIN_MITER          0
+CONSTANT: D2D1_LINE_JOIN_BEVEL          1
+CONSTANT: D2D1_LINE_JOIN_ROUND          2
+CONSTANT: D2D1_LINE_JOIN_MITER_OR_BEVEL 3
+CONSTANT: D2D1_LINE_JOIN_FORCE_DWORD    HEX: ffffffff
+TYPEDEF: int D2D1_LINE_JOIN
+
+CONSTANT: D2D1_COMBINE_MODE_UNION       0
+CONSTANT: D2D1_COMBINE_MODE_INTERSECT   1
+CONSTANT: D2D1_COMBINE_MODE_XOR         2
+CONSTANT: D2D1_COMBINE_MODE_EXCLUDE     3
+CONSTANT: D2D1_COMBINE_MODE_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int D2D1_COMBINE_MODE
+
+CONSTANT: D2D1_GEOMETRY_RELATION_UNKNOWN      0
+CONSTANT: D2D1_GEOMETRY_RELATION_DISJOINT     1
+CONSTANT: D2D1_GEOMETRY_RELATION_IS_CONTAINED 2
+CONSTANT: D2D1_GEOMETRY_RELATION_CONTAINS     3
+CONSTANT: D2D1_GEOMETRY_RELATION_OVERLAP      4
+CONSTANT: D2D1_GEOMETRY_RELATION_FORCE_DWORD  HEX: ffffffff
+TYPEDEF: int D2D1_GEOMETRY_RELATION
+
+CONSTANT: D2D1_GEOMETRY_SIMPLIFICATION_OPTION_CUBICS_AND_LINES 0
+CONSTANT: D2D1_GEOMETRY_SIMPLIFICATION_OPTION_LINES            1
+CONSTANT: D2D1_GEOMETRY_SIMPLIFICATION_OPTION_FORCE_DWORD      HEX: ffffffff
+TYPEDEF: int D2D1_GEOMETRY_SIMPLIFICATION_OPTION
+
+CONSTANT: D2D1_FIGURE_BEGIN_FILLED      0
+CONSTANT: D2D1_FIGURE_BEGIN_HOLLOW      1
+CONSTANT: D2D1_FIGURE_BEGIN_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int D2D1_FIGURE_BEGIN
+
+CONSTANT: D2D1_FIGURE_END_OPEN        0
+CONSTANT: D2D1_FIGURE_END_CLOSED      1
+CONSTANT: D2D1_FIGURE_END_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int D2D1_FIGURE_END
+
+STRUCT: D2D1_BEZIER_SEGMENT
+    { point1 D2D1_POINT_2F }
+    { point2 D2D1_POINT_2F }
+    { point3 D2D1_POINT_2F } ;
+
+STRUCT: D2D1_TRIANGLE
+    { point1 D2D1_POINT_2F }
+    { point2 D2D1_POINT_2F }
+    { point3 D2D1_POINT_2F } ;
+
+CONSTANT: D2D1_PATH_SEGMENT_NONE                  HEX: 00000000
+CONSTANT: D2D1_PATH_SEGMENT_FORCE_UNSTROKED       HEX: 00000001
+CONSTANT: D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN HEX: 00000002
+CONSTANT: D2D1_PATH_SEGMENT_FORCE_DWORD           HEX: ffffffff
+TYPEDEF: int D2D1_PATH_SEGMENT
+
+CONSTANT: D2D1_SWEEP_DIRECTION_COUNTER_CLOCKWISE 0
+CONSTANT: D2D1_SWEEP_DIRECTION_CLOCKWISE         1
+CONSTANT: D2D1_SWEEP_DIRECTION_FORCE_DWORD       HEX: ffffffff
+TYPEDEF: int D2D1_SWEEP_DIRECTION
+
+CONSTANT: D2D1_FILL_MODE_ALTERNATE   0
+CONSTANT: D2D1_FILL_MODE_WINDING     1
+CONSTANT: D2D1_FILL_MODE_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int D2D1_FILL_MODE
+
+STRUCT: D2D1_ARC_SEGMENT
+    { point          D2D1_POINT_2F        }
+    { size           D2D1_SIZE_F          }
+    { rotationAngle  FLOAT                }
+    { sweepDirection D2D1_SWEEP_DIRECTION }
+    { arcSize        D2D1_ARC_SIZE        } ;
+
+STRUCT: D2D1_QUADRATIC_BEZIER_SEGMENT
+    { point1 D2D1_POINT_2F }
+    { point2 D2D1_POINT_2F } ;
+
+STRUCT: D2D1_ELLIPSE
+    { point   D2D1_POINT_2F }
+    { radiusX FLOAT         }
+    { radiusY FLOAT         } ;
+
+STRUCT: D2D1_ROUNDED_RECT
+    { rect    D2D1_RECT_F }
+    { radiusX FLOAT       }
+    { radiusY FLOAT       } ;
+
+STRUCT: D2D1_STROKE_STYLE_PROPERTIES
+    { startCap   D2D1_CAP_STYLE  }
+    { endCap     D2D1_CAP_STYLE  }
+    { dashCap    D2D1_CAP_STYLE  }
+    { lineJoin   D2D1_LINE_JOIN  }
+    { miterLimit FLOAT           }
+    { dashStyle  D2D1_DASH_STYLE }
+    { dashOffset FLOAT           } ;
+
+CONSTANT: D2D1_LAYER_OPTIONS_NONE                     HEX: 00000000
+CONSTANT: D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE HEX: 00000001
+CONSTANT: D2D1_LAYER_OPTIONS_FORCE_DWORD              HEX: ffffffff
+TYPEDEF: int D2D1_LAYER_OPTIONS
+
+C-TYPE: ID2D1Geometry
+C-TYPE: ID2D1Brush
+C-TYPE: ID2D1RenderTarget
+
+STRUCT: D2D1_LAYER_PARAMETERS
+    { contentBounds     D2D1_RECT_F         }
+    { geometricMask     ID2D1Geometry*      }
+    { maskAntialiasMode D2D1_ANTIALIAS_MODE }
+    { maskTransform     D2D1_MATRIX_3X2_F   }
+    { opacity           FLOAT               }
+    { opacityBrush      ID2D1Brush*         }
+    { layerOptions      D2D1_LAYER_OPTIONS  } ;
+
+CONSTANT: D2D1_WINDOW_STATE_NONE        HEX: 00000000
+CONSTANT: D2D1_WINDOW_STATE_OCCLUDED    HEX: 00000001
+CONSTANT: D2D1_WINDOW_STATE_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int D2D1_WINDOW_STATE
+
+CONSTANT: D2D1_RENDER_TARGET_TYPE_DEFAULT     0
+CONSTANT: D2D1_RENDER_TARGET_TYPE_SOFTWARE    1
+CONSTANT: D2D1_RENDER_TARGET_TYPE_HARDWARE    2
+CONSTANT: D2D1_RENDER_TARGET_TYPE_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int D2D1_RENDER_TARGET_TYPE
+
+CONSTANT: D2D1_FEATURE_LEVEL_DEFAULT     0
+CONSTANT: D2D1_FEATURE_LEVEL_9           HEX: 9100
+CONSTANT: D2D1_FEATURE_LEVEL_10          HEX: a000
+CONSTANT: D2D1_FEATURE_LEVEL_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int D2D1_FEATURE_LEVEL
+
+CONSTANT: D2D1_RENDER_TARGET_USAGE_NONE                  HEX: 00000000
+CONSTANT: D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING HEX: 00000001
+CONSTANT: D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE        HEX: 00000002
+CONSTANT: D2D1_RENDER_TARGET_USAGE_FORCE_DWORD           HEX: ffffffff
+TYPEDEF: int D2D1_RENDER_TARGET_USAGE
+
+CONSTANT: D2D1_PRESENT_OPTIONS_NONE            HEX: 00000000
+CONSTANT: D2D1_PRESENT_OPTIONS_RETAIN_CONTENTS HEX: 00000001
+CONSTANT: D2D1_PRESENT_OPTIONS_IMMEDIATELY     HEX: 00000002
+CONSTANT: D2D1_PRESENT_OPTIONS_FORCE_DWORD     HEX: ffffffff
+TYPEDEF: int D2D1_PRESENT_OPTIONS
+
+STRUCT: D2D1_RENDER_TARGET_PROPERTIES
+    { type        D2D1_RENDER_TARGET_TYPE  }
+    { pixelFormat D2D1_PIXEL_FORMAT        }
+    { dpiX        FLOAT                    }
+    { dpiY        FLOAT                    }
+    { usage       D2D1_RENDER_TARGET_USAGE }
+    { minLevel    D2D1_FEATURE_LEVEL       } ;
+
+STRUCT: D2D1_HWND_RENDER_TARGET_PROPERTIES
+    { hwnd           HWND                 }
+    { pixelSize      D2D1_SIZE_U          }
+    { presentOptions D2D1_PRESENT_OPTIONS } ;
+
+CONSTANT: D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE           HEX: 00000000
+CONSTANT: D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE HEX: 00000001
+CONSTANT: D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_FORCE_DWORD    HEX: ffffffff
+TYPEDEF: int D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS
+
+STRUCT: D2D1_DRAWING_STATE_DESCRIPTION
+    { antialiasMode     D2D1_ANTIALIAS_MODE      }
+    { textAntialiasMode D2D1_TEXT_ANTIALIAS_MODE }
+    { tag1              D2D1_TAG                 }
+    { tag2              D2D1_TAG                 }
+    { transform         D2D1_MATRIX_3X2_F        } ;
+
+CONSTANT: D2D1_DC_INITIALIZE_MODE_COPY        0
+CONSTANT: D2D1_DC_INITIALIZE_MODE_CLEAR       1
+CONSTANT: D2D1_DC_INITIALIZE_MODE_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int D2D1_DC_INITIALIZE_MODE
+
+CONSTANT: D2D1_DEBUG_LEVEL_NONE        0
+CONSTANT: D2D1_DEBUG_LEVEL_ERROR       1
+CONSTANT: D2D1_DEBUG_LEVEL_WARNING     2
+CONSTANT: D2D1_DEBUG_LEVEL_INFORMATION 3
+CONSTANT: D2D1_DEBUG_LEVEL_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int D2D1_DEBUG_LEVEL
+
+CONSTANT: D2D1_FACTORY_TYPE_SINGLE_THREADED 0
+CONSTANT: D2D1_FACTORY_TYPE_MULTI_THREADED  1
+CONSTANT: D2D1_FACTORY_TYPE_FORCE_DWORD     HEX: ffffffff
+TYPEDEF: int D2D1_FACTORY_TYPE
+
+STRUCT: D2D1_FACTORY_OPTIONS
+    { debugLevel D2D1_DEBUG_LEVEL } ;
+
+COM-INTERFACE: ID2D1Resource IUnknown {2cd90691-12e2-11dc-9fed-001143a055f9}
+    void GetFactory ( ID2D1Factory** factory ) ;
+
+COM-INTERFACE: ID2D1Bitmap ID2D1Resource {a2296057-ea42-4099-983b-539fb6505426}
+    D2D1_SIZE_F GetSize ( )
+    D2D1_SIZE_U GetPixelSize ( )
+    D2D1_PIXEL_FORMAT GetPixelFormat ( )
+    void GetDpi ( FLOAT* dpiX, FLOAT* dpiY )
+    HRESULT CopyFromBitmap ( D2D1_POINT_2U* destPoint, ID2D1Bitmap* bitmap, D2D1_RECT_U* srcRect )
+    HRESULT CopyFromRenderTarget ( D2D1_POINT_2U* destPoint, ID2D1RenderTarget* renderTarget, D2D1_RECT_U* srcRect )
+    HRESULT CopyFromMemory ( D2D1_RECT_U* dstRect, void* srcData, UINT32 pitch ) ;
+
+COM-INTERFACE: ID2D1GradientStopCollection ID2D1Resource {2cd906a7-12e2-11dc-9fed-001143a055f9}
+    UINT32 GetGradientStopCount ( )
+    void GetGradientStops ( D2D1_GRADIENT_STOP* gradientStops, UINT gradientStopsCount )
+    D2D1_GAMMA GetColorInterpolationGamma ( )
+    D2D1_EXTEND_MODE GetExtendMode ( ) ;
+
+COM-INTERFACE: ID2D1Brush ID2D1Resource {2cd906a8-12e2-11dc-9fed-001143a055f9}
+    void SetOpacity ( FLOAT opacity )
+    void SetTransform ( D2D1_MATRIX_3X2_F* transform )
+    FLOAT GetOpacity ( )
+    void GetTransform ( D2D1_MATRIX_3X2_F* transform ) ;
+
+COM-INTERFACE: ID2D1BitmapBrush ID2D1Brush {2cd906aa-12e2-11dc-9fed-001143a055f9}
+    void SetExtendModeX ( D2D1_EXTEND_MODE extendModeX )
+    void SetExtendModeY ( D2D1_EXTEND_MODE extendModeY )
+    void SetInterpolationMode ( D2D1_BITMAP_INTERPOLATION_MODE interpolationMode )
+    void SetBitmap ( ID2D1Bitmap* bitmap )
+    D2D1_EXTEND_MODE GetExtendModeX ( )
+    D2D1_EXTEND_MODE GetExtendModeY ( )
+    D2D1_BITMAP_INTERPOLATION_MODE GetInterpolationMode ( )
+    void GetBitmap ( ID2D1Bitmap** bitmap ) ;
+
+COM-INTERFACE: ID2D1SolidColorBrush ID2D1Brush {2cd906a9-12e2-11dc-9fed-001143a055f9}
+    void SetColor ( D2D1_COLOR_F* color )
+    D2D1_COLOR_F GetColor ( ) ;
+
+COM-INTERFACE: ID2D1LinearGradientBrush ID2D1Brush {2cd906ab-12e2-11dc-9fed-001143a055f9}
+    void SetStartPoint ( D2D1_POINT_2F startPoint )
+    void SetEndPoint ( D2D1_POINT_2F endPoint )
+    D2D1_POINT_2F GetStartPoint ( )
+    D2D1_POINT_2F GetEndPoint ( )
+    void GetGradientStopCollection ( ID2D1GradientStopCollection** gradientStopCollection ) ;
+
+COM-INTERFACE: ID2D1RadialGradientBrush ID2D1Brush {2cd906ac-12e2-11dc-9fed-001143a055f9}
+    void SetCenter ( D2D1_POINT_2F center )
+    void SetGradientOriginOffset ( D2D1_POINT_2F gradientOriginOffset )
+    void SetRadiusX ( FLOAT radiusX )
+    void SetRadiusY ( FLOAT radiusY )
+    D2D1_POINT_2F GetCenter ( )
+    D2D1_POINT_2F GetGradientOriginOffset ( )
+    FLOAT GetRadiusX ( )
+    FLOAT GetRadiusY ( )
+    void GetGradientStopCollection ( ID2D1GradientStopCollection** gradientStopCollection ) ;
+
+COM-INTERFACE: ID2D1StrokeStyle ID2D1Resource {2cd9069d-12e2-11dc-9fed-001143a055f9}
+    D2D1_CAP_STYLE GetStartCap ( )
+    D2D1_CAP_STYLE GetEndCap ( )
+    D2D1_CAP_STYLE GetDashCap ( )
+    FLOAT GetMiterLimit ( )
+    D2D1_LINE_JOIN GetLineJoin ( )
+    FLOAT GetDashOffset ( )
+    D2D1_DASH_STYLE GetDashStyle ( )
+    UINT32 GetDashesCount ( )
+    void GetDashes ( FLOAT* dashes, UINT dashesCount ) ;
+
+C-TYPE: ID2D1SimplifiedGeometrySink
+C-TYPE: ID2D1TessellationSink
+
+COM-INTERFACE: ID2D1Geometry ID2D1Resource {2cd906a1-12e2-11dc-9fed-001143a055f9}
+    HRESULT GetBounds ( D2D1_MATRIX_3X2_F* worldTransform, D2D1_RECT_F* bounds )
+    HRESULT GetWidenedBounds ( FLOAT strokeWidth, ID2D1StrokeStyle* strokeStyle, D2D1_MATRIX_3X2_F* worldTransform, FLOAT flatteningTolerance, D2D1_RECT_F* bounds )
+    HRESULT StrokeContainsPoint ( D2D1_POINT_2F point, FLOAT strokeWidth, ID2D1StrokeStyle* strokeStyle, D2D1_MATRIX_3X2_F* worldTransform, FLOAT flatteningTolerance, BOOL* contains )
+    HRESULT FillContainsPoint ( D2D1_POINT_2F point, D2D1_MATRIX_3X2_F* worldTransform, FLOAT flatteningTolerance, BOOL* contains )
+    HRESULT CompareWithGeometry ( ID2D1Geometry* inputGeometry, D2D1_MATRIX_3X2_F* inputGeometryTransform, FLOAT flatteningTolerance, D2D1_GEOMETRY_RELATION* relation )
+    HRESULT Simplify ( D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_MATRIX_3X2_F* worldTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink* geometrySink )
+    HRESULT Tessellate ( D2D1_MATRIX_3X2_F* worldTransform, FLOAT flatteningTolerance, ID2D1TessellationSink* tessellationSink )
+    HRESULT CombineWithGeometry ( ID2D1Geometry* inputGeometry, D2D1_COMBINE_MODE combineMode, D2D1_MATRIX_3X2_F* inputGeometryTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink* geometrySink )
+    HRESULT Outline ( D2D1_MATRIX_3X2_F* worldTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink* geometrySink )
+    HRESULT ComputeArea ( D2D1_MATRIX_3X2_F* worldTransform, FLOAT flatteningTolerance, FLOAT* area )
+    HRESULT ComputeLength ( D2D1_MATRIX_3X2_F* worldTransform, FLOAT flatteningTolerance, FLOAT* length )
+    HRESULT ComputePointAtLength ( FLOAT length, D2D1_MATRIX_3X2_F* worldTransform, FLOAT flatteningTolerance, D2D1_POINT_2F* point, D2D1_POINT_2F* unitTangentVector )
+    HRESULT Widen ( FLOAT strokeWidth, ID2D1StrokeStyle* strokeStyle, D2D1_MATRIX_3X2_F* worldTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink* geometrySink ) ;
+
+COM-INTERFACE: ID2D1RectangleGeometry ID2D1Geometry {2cd906a2-12e2-11dc-9fed-001143a055f9}
+    void GetRect ( D2D1_RECT_F* rect ) ;
+
+COM-INTERFACE: ID2D1RoundedRectangleGeometry ID2D1Geometry {2cd906a3-12e2-11dc-9fed-001143a055f9}
+    void GetRoundedRect ( D2D1_ROUNDED_RECT* roundedRect ) ;
+
+COM-INTERFACE: ID2D1EllipseGeometry ID2D1Geometry {2cd906a4-12e2-11dc-9fed-001143a055f9}
+    void GetEllipse ( D2D1_ELLIPSE* ellipse ) ;
+
+COM-INTERFACE: ID2D1GeometryGroup ID2D1Geometry {2cd906a6-12e2-11dc-9fed-001143a055f9}
+    D2D1_FILL_MODE GetFillMode ( )
+    UINT32 GetSourceGeometryCount ( )
+    void GetSourceGeometries ( ID2D1Geometry** geometries, UINT geometriesCount ) ;
+
+COM-INTERFACE: ID2D1TransformedGeometry ID2D1Geometry {2cd906bb-12e2-11dc-9fed-001143a055f9}
+    void GetSourceGeometry ( ID2D1Geometry** sourceGeometry )
+    void GetTransform ( D2D1_MATRIX_3X2_F* transform ) ;
+
+COM-INTERFACE: ID2D1SimplifiedGeometrySink IUnknown {2cd9069e-12e2-11dc-9fed-001143a055f9}
+    void SetFillMode ( D2D1_FILL_MODE fillMode )
+    void SetSegmentFlags ( D2D1_PATH_SEGMENT vertexFlags )
+    void BeginFigure ( D2D1_POINT_2F startPoint, D2D1_FIGURE_BEGIN figureBegin )
+    void AddLines ( D2D1_POINT_2F* points, UINT pointsCount )
+    void AddBeziers ( D2D1_BEZIER_SEGMENT* beziers, UINT beziersCount )
+    void EndFigure ( D2D1_FIGURE_END figureEnd )
+    HRESULT Close ( ) ;
+
+COM-INTERFACE: ID2D1GeometrySink ID2D1SimplifiedGeometrySink {2cd9069f-12e2-11dc-9fed-001143a055f9}
+    void AddLine ( D2D1_POINT_2F point )
+    void AddBezier ( D2D1_BEZIER_SEGMENT* bezier )
+    void AddQuadraticBezier ( D2D1_QUADRATIC_BEZIER_SEGMENT* bezier )
+    void AddQuadraticBeziers ( D2D1_QUADRATIC_BEZIER_SEGMENT* beziers, UINT beziersCount )
+    void AddArc ( D2D1_ARC_SEGMENT* arc ) ;
+
+COM-INTERFACE: ID2D1TessellationSink IUnknown {2cd906c1-12e2-11dc-9fed-001143a055f9}
+    void AddTriangles ( D2D1_TRIANGLE* triangles, UINT trianglesCount )
+    HRESULT Close ( ) ;
+
+COM-INTERFACE: ID2D1PathGeometry ID2D1Geometry {2cd906a5-12e2-11dc-9fed-001143a055f9}
+    HRESULT Open ( ID2D1GeometrySink** geometrySink )
+    HRESULT Stream ( ID2D1GeometrySink* geometrySink )
+    HRESULT GetSegmentCount ( UINT32* count )
+    HRESULT GetFigureCount ( UINT32* count ) ;
+
+COM-INTERFACE: ID2D1Mesh ID2D1Resource {2cd906c2-12e2-11dc-9fed-001143a055f9}
+    HRESULT Open ( ID2D1TessellationSink** tessellationSink ) ;
+
+COM-INTERFACE: ID2D1Layer ID2D1Resource {2cd9069b-12e2-11dc-9fed-001143a055f9}
+    D2D1_SIZE_F GetSize ( ) ;
+
+C-TYPE: IDWriteRenderingParams
+
+COM-INTERFACE: ID2D1DrawingStateBlock ID2D1Resource {28506e39-ebf6-46a1-bb47-fd85565ab957}
+    void GetDescription ( D2D1_DRAWING_STATE_DESCRIPTION* stateDescription )
+    void SetDescription ( D2D1_DRAWING_STATE_DESCRIPTION* stateDescription )
+    void SetTextRenderingParams ( IDWriteRenderingParams* textRenderingParams )
+    void GetTextRenderingParams ( IDWriteRenderingParams** textRenderingParams ) ;
+
+C-TYPE: IWICBitmapSource
+C-TYPE: IWICBitmap
+C-TYPE: IDWriteTextFormat
+C-TYPE: IDWriteTextLayout
+C-TYPE: DWRITE_GLYPH_RUN
+
+COM-INTERFACE: ID2D1RenderTarget ID2D1Resource {2cd90694-12e2-11dc-9fed-001143a055f9}
+    HRESULT CreateBitmap ( D2D1_SIZE_U size, void* srcData, UINT32 pitch, D2D1_BITMAP_PROPERTIES* bitmapProperties, ID2D1Bitmap** bitmap )
+    HRESULT CreateBitmapFromWicBitmap ( IWICBitmapSource* wicBitmapSource, D2D1_BITMAP_PROPERTIES* bitmapProperties, ID2D1Bitmap** bitmap )
+    HRESULT CreateSharedBitmap ( REFIID riid, void* data, D2D1_BITMAP_PROPERTIES* bitmapProperties, ID2D1Bitmap** bitmap )
+    HRESULT CreateBitmapBrush ( ID2D1Bitmap* bitmap, D2D1_BITMAP_BRUSH_PROPERTIES* bitmapBrushProperties, D2D1_BRUSH_PROPERTIES* brushProperties, ID2D1BitmapBrush** bitmapBrush )
+    HRESULT CreateSolidColorBrush ( D2D1_COLOR_F* color, D2D1_BRUSH_PROPERTIES* brushProperties, ID2D1SolidColorBrush** solidColorBrush )
+    HRESULT CreateGradientStopCollection ( D2D1_GRADIENT_STOP* gradientStops, UINT gradientStopsCount, D2D1_GAMMA colorInterpolationGamma, D2D1_EXTEND_MODE extendMode, ID2D1GradientStopCollection** gradientStopCollection )
+    HRESULT CreateLinearGradientBrush ( D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES* linearGradientBrushProperties, D2D1_BRUSH_PROPERTIES* brushProperties, ID2D1GradientStopCollection* gradientStopCollection, ID2D1LinearGradientBrush** linearGradientBrush )
+    HRESULT CreateRadialGradientBrush ( D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES* radialGradientBrushProperties, D2D1_BRUSH_PROPERTIES* brushProperties, ID2D1GradientStopCollection* gradientStopCollection, ID2D1RadialGradientBrush** radialGradientBrush )
+    HRESULT CreateCompatibleRenderTarget ( D2D1_SIZE_F* desiredSize, D2D1_SIZE_U* desiredPixelSize, D2D1_PIXEL_FORMAT* desiredFormat, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, ID2D1BitmapRenderTarget** bitmapRenderTarget )
+    HRESULT CreateLayer ( D2D1_SIZE_F* size, ID2D1Layer** layer )
+    HRESULT CreateMesh ( ID2D1Mesh** mesh )
+    void DrawLine ( D2D1_POINT_2F point0, D2D1_POINT_2F point1, ID2D1Brush* brush, FLOAT strokeWidth, ID2D1StrokeStyle* strokeStyle )
+    void DrawRectangle ( D2D1_RECT_F* rect, ID2D1Brush* brush, FLOAT strokeWidth, ID2D1StrokeStyle* strokeStyle )
+    void FillRectangle ( D2D1_RECT_F* rect, ID2D1Brush* brush )
+    void DrawRoundedRectangle ( D2D1_ROUNDED_RECT* roundedRect, ID2D1Brush* brush, FLOAT strokeWidth, ID2D1StrokeStyle* strokeStyle )
+    void FillRoundedRectangle ( D2D1_ROUNDED_RECT* roundedRect, ID2D1Brush* brush )
+    void DrawEllipse ( D2D1_ELLIPSE* ellipse, ID2D1Brush* brush, FLOAT strokeWidth, ID2D1StrokeStyle* strokeStyle )
+    void FillEllipse ( D2D1_ELLIPSE* ellipse, ID2D1Brush* brush )
+    void DrawGeometry ( ID2D1Geometry* geometry, ID2D1Brush* brush, FLOAT strokeWidth, ID2D1StrokeStyle* strokeStyle )
+    void FillGeometry ( ID2D1Geometry* geometry, ID2D1Brush* brush, ID2D1Brush* opacityBrush )
+    void FillMesh ( ID2D1Mesh* mesh, ID2D1Brush* brush )
+    void FillOpacityMask ( ID2D1Bitmap* opacityMask, ID2D1Brush* brush, D2D1_OPACITY_MASK_CONTENT content, D2D1_RECT_F* destinationRectangle, D2D1_RECT_F* sourceRectangle )
+    void DrawBitmap ( ID2D1Bitmap* bitmap, D2D1_RECT_F* destinationRectangle, FLOAT opacity, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode, D2D1_RECT_F* sourceRectangle )
+    void DrawText ( WCHAR* string, UINT stringLength, IDWriteTextFormat* textFormat, D2D1_RECT_F* layoutRect, ID2D1Brush* defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options, DWRITE_MEASURING_MODE measuringMode )
+    void DrawTextLayout ( D2D1_POINT_2F origin, IDWriteTextLayout* textLayout, ID2D1Brush* defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options )
+    void DrawGlyphRun ( D2D1_POINT_2F baselineOrigin, DWRITE_GLYPH_RUN* glyphRun, ID2D1Brush* foregroundBrush, DWRITE_MEASURING_MODE measuringMode )
+    void SetTransform ( D2D1_MATRIX_3X2_F* transform )
+    void GetTransform ( D2D1_MATRIX_3X2_F* transform )
+    void SetAntialiasMode ( D2D1_ANTIALIAS_MODE antialiasMode )
+    D2D1_ANTIALIAS_MODE GetAntialiasMode ( )
+    void SetTextAntialiasMode ( D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode )
+    D2D1_TEXT_ANTIALIAS_MODE GetTextAntialiasMode ( )
+    void SetTextRenderingParams ( IDWriteRenderingParams* textRenderingParams )
+    void GetTextRenderingParams ( IDWriteRenderingParams** textRenderingParams )
+    void SetTags ( D2D1_TAG tag1, D2D1_TAG tag2 )
+    void GetTags ( D2D1_TAG* tag1, D2D1_TAG* tag2 )
+    void PushLayer ( D2D1_LAYER_PARAMETERS* layerParameters, ID2D1Layer* layer )
+    void PopLayer ( )
+    HRESULT Flush ( D2D1_TAG* tag1, D2D1_TAG* tag2 )
+    void SaveDrawingState ( ID2D1DrawingStateBlock* drawingStateBlock )
+    void RestoreDrawingState ( ID2D1DrawingStateBlock* drawingStateBlock )
+    void PushAxisAlignedClip ( D2D1_RECT_F* clipRect, D2D1_ANTIALIAS_MODE antialiasMode )
+    void PopAxisAlignedClip ( )
+    void Clear ( D2D1_COLOR_F* clearColor )
+    void BeginDraw ( )
+    HRESULT EndDraw ( D2D1_TAG* tag1, D2D1_TAG* tag2 )
+    D2D1_PIXEL_FORMAT GetPixelFormat ( )
+    void SetDpi ( FLOAT dpiX, FLOAT dpiY )
+    void GetDpi ( FLOAT* dpiX, FLOAT* dpiY )
+    D2D1_SIZE_F GetSize ( )
+    D2D1_SIZE_U GetPixelSize ( )
+    UINT32 GetMaximumBitmapSize ( )
+    BOOL IsSupported ( D2D1_RENDER_TARGET_PROPERTIES* renderTargetProperties ) ;
+
+COM-INTERFACE: ID2D1BitmapRenderTarget ID2D1RenderTarget {2cd90695-12e2-11dc-9fed-001143a055f9}
+    HRESULT GetBitmap ( ID2D1Bitmap** bitmap ) ;
+
+COM-INTERFACE: ID2D1HwndRenderTarget ID2D1RenderTarget {2cd90698-12e2-11dc-9fed-001143a055f9}
+    D2D1_WINDOW_STATE CheckWindowState ( )
+    HRESULT Resize ( D2D1_SIZE_U* pixelSize )
+    HWND GetHwnd ( ) ;
+
+COM-INTERFACE: ID2D1GdiInteropRenderTarget IUnknown {e0db51c3-6f77-4bae-b3d5-e47509b35838}
+    HRESULT GetDC ( D2D1_DC_INITIALIZE_MODE mode, HDC* hdc )
+    HRESULT ReleaseDC ( RECT* update ) ;
+
+COM-INTERFACE: ID2D1DCRenderTarget ID2D1RenderTarget {1c51bc64-de61-46fd-9899-63a5d8f03950}
+    HRESULT BindDC ( HDC hDC, RECT* pSubRect ) ;
+
+COM-INTERFACE: ID2D1Factory IUnknown {06152247-6f50-465a-9245-118bfd3b6007}
+    HRESULT ReloadSystemMetrics ( )
+    void GetDesktopDpi ( FLOAT* dpiX, FLOAT* dpiY )
+    HRESULT CreateRectangleGeometry ( D2D1_RECT_F* rectangle, ID2D1RectangleGeometry** rectangleGeometry )
+    HRESULT CreateRoundedRectangleGeometry ( D2D1_ROUNDED_RECT* roundedRectangle, ID2D1RoundedRectangleGeometry** roundedRectangleGeometry )
+    HRESULT CreateEllipseGeometry ( D2D1_ELLIPSE* ellipse, ID2D1EllipseGeometry** ellipseGeometry )
+    HRESULT CreateGeometryGroup ( D2D1_FILL_MODE fillMode, ID2D1Geometry** geometries, UINT geometriesCount, ID2D1GeometryGroup** geometryGroup )
+    HRESULT CreateTransformedGeometry ( ID2D1Geometry* sourceGeometry, D2D1_MATRIX_3X2_F* transform, ID2D1TransformedGeometry** transformedGeometry )
+    HRESULT CreatePathGeometry ( ID2D1PathGeometry** pathGeometry )
+    HRESULT CreateStrokeStyle ( D2D1_STROKE_STYLE_PROPERTIES* strokeStyleProperties, FLOAT* dashes, UINT dashesCount, ID2D1StrokeStyle** strokeStyle )
+    HRESULT CreateDrawingStateBlock ( D2D1_DRAWING_STATE_DESCRIPTION* drawingStateDescription, IDWriteRenderingParams* textRenderingParams, ID2D1DrawingStateBlock** drawingStateBlock )
+    HRESULT CreateWicBitmapRenderTarget ( IWICBitmap* target, D2D1_RENDER_TARGET_PROPERTIES* renderTargetProperties, ID2D1RenderTarget** renderTarget )
+    HRESULT CreateHwndRenderTarget ( D2D1_RENDER_TARGET_PROPERTIES* renderTargetProperties, D2D1_HWND_RENDER_TARGET_PROPERTIES* hwndRenderTargetProperties, ID2D1HwndRenderTarget** hwndRenderTarget )
+    HRESULT CreateDxgiSurfaceRenderTarget ( IDXGISurface* dxgiSurface, D2D1_RENDER_TARGET_PROPERTIES* renderTargetProperties, ID2D1RenderTarget** renderTarget )
+    HRESULT CreateDCRenderTarget ( D2D1_RENDER_TARGET_PROPERTIES* renderTargetProperties, ID2D1DCRenderTarget** dcRenderTarget ) ;
+
+FUNCTION: HRESULT D2D1CreateFactory (
+        D2D1_FACTORY_TYPE     factoryType,
+        REFIID                riid,
+        D2D1_FACTORY_OPTIONS* pFactoryOptions,
+        void**                ppIFactory ) ;
+
+FUNCTION: void D2D1MakeRotateMatrix (
+        FLOAT              angle,
+        D2D1_POINT_2F      center,
+        D2D1_MATRIX_3X2_F* matrix ) ;
+
+FUNCTION: void D2D1MakeSkewMatrix (
+        FLOAT              angleX,
+        FLOAT              angleY,
+        D2D1_POINT_2F      center,
+        D2D1_MATRIX_3X2_F* matrix ) ;
+
+FUNCTION: BOOL D2D1IsMatrixInvertible (
+        D2D1_MATRIX_3X2_F* matrix ) ;
+
+FUNCTION: BOOL D2D1InvertMatrix (
+        D2D1_MATRIX_3X2_F* matrix ) ;
+
diff --git a/basis/windows/directx/d2d1/summary.txt b/basis/windows/directx/d2d1/summary.txt
new file mode 100644 (file)
index 0000000..de9706e
--- /dev/null
@@ -0,0 +1 @@
+Direct2D bindings. Corresponds to d2d1.h.
diff --git a/basis/windows/directx/d2d1/tags.txt b/basis/windows/directx/d2d1/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d2dbasetypes/authors.txt b/basis/windows/directx/d2dbasetypes/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d2dbasetypes/d2dbasetypes.factor b/basis/windows/directx/d2dbasetypes/d2dbasetypes.factor
new file mode 100644 (file)
index 0000000..00f84e9
--- /dev/null
@@ -0,0 +1,46 @@
+USING: alien.syntax classes.struct windows.types ;
+IN: windows.directx.d3dbasetypes
+
+STRUCT: D3DCOLORVALUE
+    { r FLOAT } 
+    { g FLOAT }
+    { b FLOAT }
+    { a FLOAT } ;
+
+STRUCT: D2D_POINT_2U
+    { x UINT32 }
+    { y UINT32 } ;
+
+STRUCT: D2D_POINT_2F
+    { x FLOAT }
+    { y FLOAT } ;
+
+STRUCT: D2D_RECT_F
+    { left   FLOAT }
+    { top    FLOAT }
+    { right  FLOAT }
+    { bottom FLOAT } ;
+
+STRUCT: D2D_RECT_U
+    { left   UINT32 }
+    { top    UINT32 }
+    { right  UINT32 }
+    { bottom UINT32 } ;
+
+STRUCT: D2D_SIZE_F
+    { width  FLOAT }
+    { height FLOAT } ;
+
+STRUCT: D2D_SIZE_U
+    { width  UINT32 }
+    { height UINT32 } ;
+
+TYPEDEF: D3DCOLORVALUE D2D_COLOR_F
+
+STRUCT: D2D_MATRIX_3X2_F
+    { _11 FLOAT }
+    { _12 FLOAT }
+    { _21 FLOAT }
+    { _22 FLOAT }
+    { _31 FLOAT }
+    { _32 FLOAT } ;
diff --git a/basis/windows/directx/d2dbasetypes/summary.txt b/basis/windows/directx/d2dbasetypes/summary.txt
new file mode 100644 (file)
index 0000000..e40000d
--- /dev/null
@@ -0,0 +1 @@
+Direct2D bindings. Corresponds to d2dbasetypes.h.
diff --git a/basis/windows/directx/d2dbasetypes/tags.txt b/basis/windows/directx/d2dbasetypes/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d2derr/authors.txt b/basis/windows/directx/d2derr/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d2derr/d2derr.factor b/basis/windows/directx/d2derr/d2derr.factor
new file mode 100644 (file)
index 0000000..1e5d891
--- /dev/null
@@ -0,0 +1,34 @@
+USING: ;
+IN: windows.directx.d2derr
+
+CONSTANT: D2DERR_UNSUPPORTED_PIXEL_FORMAT            HEX: 88982f80
+CONSTANT: D2DERR_INSUFFICIENT_BUFFER                 HEX: 80007007a
+CONSTANT: D2DERR_WRONG_STATE                         HEX: 88990001
+CONSTANT: D2DERR_NOT_INITIALIZED                     HEX: 88990002
+CONSTANT: D2DERR_UNSUPPORTED_OPERATION               HEX: 88990003
+CONSTANT: D2DERR_SCANNER_FAILED                      HEX: 88990004
+CONSTANT: D2DERR_SCREEN_ACCESS_DENIED                HEX: 88990005
+CONSTANT: D2DERR_DISPLAY_STATE_INVALID               HEX: 88990006
+CONSTANT: D2DERR_ZERO_VECTOR                         HEX: 88990007
+CONSTANT: D2DERR_INTERNAL_ERROR                      HEX: 88990008
+CONSTANT: D2DERR_DISPLAY_FORMAT_NOT_SUPPORTED        HEX: 88990009
+CONSTANT: D2DERR_INVALID_CALL                        HEX: 8899000A
+CONSTANT: D2DERR_NO_HARDWARE_DEVICE                  HEX: 8899000B
+CONSTANT: D2DERR_RECREATE_TARGET                     HEX: 8899000C
+CONSTANT: D2DERR_TOO_MANY_SHADER_ELEMENTS            HEX: 8899000D
+CONSTANT: D2DERR_SHADER_COMPILE_FAILED               HEX: 8899000E
+CONSTANT: D2DERR_MAX_TEXTURE_SIZE_EXCEEDED           HEX: 8899000F
+CONSTANT: D2DERR_UNSUPPORTED_VERSION                 HEX: 88990010
+CONSTANT: D2DERR_BAD_NUMBER                          HEX: 88990011
+CONSTANT: D2DERR_WRONG_FACTORY                       HEX: 88990012
+CONSTANT: D2DERR_LAYER_ALREADY_IN_USE                HEX: 88990013
+CONSTANT: D2DERR_POP_CALL_DID_NOT_MATCH_PUSH         HEX: 88990014
+CONSTANT: D2DERR_WRONG_RESOURCE_DOMAIN               HEX: 88990015
+CONSTANT: D2DERR_PUSH_POP_UNBALANCED                 HEX: 88990016
+CONSTANT: D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT HEX: 88990017
+CONSTANT: D2DERR_INCOMPATIBLE_BRUSH_TYPES            HEX: 88990018
+CONSTANT: D2DERR_WIN32_ERROR                         HEX: 88990019
+CONSTANT: D2DERR_TARGET_NOT_GDI_COMPATIBLE           HEX: 8899001A
+CONSTANT: D2DERR_TEXT_EFFECT_IS_WRONG_TYPE           HEX: 8899001B
+CONSTANT: D2DERR_TEXT_RENDERER_NOT_RELEASED          HEX: 8899001C
+CONSTANT: D2DERR_EXCEEDS_MAX_BITMAP_SIZE             HEX: 8899001D
diff --git a/basis/windows/directx/d2derr/summary.txt b/basis/windows/directx/d2derr/summary.txt
new file mode 100644 (file)
index 0000000..a86f192
--- /dev/null
@@ -0,0 +1 @@
+Direct2D bindings. Corresponds to d2derr.h.
diff --git a/basis/windows/directx/d2derr/tags.txt b/basis/windows/directx/d2derr/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3d10/authors.txt b/basis/windows/directx/d3d10/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3d10/d3d10.factor b/basis/windows/directx/d3d10/d3d10.factor
new file mode 100644 (file)
index 0000000..561aa47
--- /dev/null
@@ -0,0 +1,1051 @@
+USING: alien.syntax alien.c-types classes.struct windows.types
+windows.directx.dxgiformat windows.com.syntax windows.com windows.ole32
+windows.directx.dxgitype ;
+IN: windows.directx.d3d10
+
+LIBRARY: d3d10
+
+CONSTANT: D3D10_16BIT_INDEX_STRIP_CUT_VALUE                                    HEX: ffff
+CONSTANT: D3D10_32BIT_INDEX_STRIP_CUT_VALUE                                    HEX: ffffffff
+CONSTANT: D3D10_8BIT_INDEX_STRIP_CUT_VALUE                                     HEX: ff
+CONSTANT: D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT                             9
+CONSTANT: D3D10_CLIP_OR_CULL_DISTANCE_COUNT                                    8
+CONSTANT: D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT                            2
+CONSTANT: D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT                    14
+CONSTANT: D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS                        4
+CONSTANT: D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT               32
+CONSTANT: D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT                     15
+CONSTANT: D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS               4
+CONSTANT: D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT                    15
+CONSTANT: D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST           1
+CONSTANT: D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS               1
+CONSTANT: D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT                         64
+CONSTANT: D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS     4
+CONSTANT: D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT          1
+CONSTANT: D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST 1
+CONSTANT: D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS     1
+CONSTANT: D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT               32
+CONSTANT: D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS                1
+CONSTANT: D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT                     128
+CONSTANT: D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST            1
+CONSTANT: D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS                1
+CONSTANT: D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT                         128
+CONSTANT: D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS                       1
+CONSTANT: D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT                            16
+CONSTANT: D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST                   1
+CONSTANT: D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS                       1
+CONSTANT: D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT                                16
+CONSTANT: D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT                          32
+CONSTANT: D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS                          4
+CONSTANT: D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT                 32
+CONSTANT: D3D10_COMMONSHADER_TEMP_REGISTER_COUNT                               4096
+CONSTANT: D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST                      3
+CONSTANT: D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS                          3
+CONSTANT: D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX                      10
+CONSTANT: D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN                      -10
+CONSTANT: D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE                         -8
+CONSTANT: D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE                         7
+CONSTANT: D3D10_DEFAULT_BLEND_FACTOR_ALPHA                                     1.0
+CONSTANT: D3D10_DEFAULT_BLEND_FACTOR_BLUE                                      1.0
+CONSTANT: D3D10_DEFAULT_BLEND_FACTOR_GREEN                                     1.0
+CONSTANT: D3D10_DEFAULT_BLEND_FACTOR_RED                                       1.0
+CONSTANT: D3D10_DEFAULT_BORDER_COLOR_COMPONENT                                 0.0
+CONSTANT: D3D10_DEFAULT_DEPTH_BIAS                                             0
+CONSTANT: D3D10_DEFAULT_DEPTH_BIAS_CLAMP                                       0.0
+CONSTANT: D3D10_DEFAULT_MAX_ANISOTROPY                                         16.0
+CONSTANT: D3D10_DEFAULT_MIP_LOD_BIAS                                           0.0
+CONSTANT: D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX                              0
+CONSTANT: D3D10_DEFAULT_SAMPLE_MASK                                            HEX: ffffffff
+CONSTANT: D3D10_DEFAULT_SCISSOR_ENDX                                           0
+CONSTANT: D3D10_DEFAULT_SCISSOR_ENDY                                           0
+CONSTANT: D3D10_DEFAULT_SCISSOR_STARTX                                         0
+CONSTANT: D3D10_DEFAULT_SCISSOR_STARTY                                         0
+CONSTANT: D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS                                0.0
+CONSTANT: D3D10_DEFAULT_STENCIL_READ_MASK                                      HEX: ff
+CONSTANT: D3D10_DEFAULT_STENCIL_REFERENCE                                      0
+CONSTANT: D3D10_DEFAULT_STENCIL_WRITE_MASK                                     HEX: ff
+CONSTANT: D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX                         0
+CONSTANT: D3D10_DEFAULT_VIEWPORT_HEIGHT                                        0
+CONSTANT: D3D10_DEFAULT_VIEWPORT_MAX_DEPTH                                     0.0
+CONSTANT: D3D10_DEFAULT_VIEWPORT_MIN_DEPTH                                     0.0
+CONSTANT: D3D10_DEFAULT_VIEWPORT_TOPLEFTX                                      0
+CONSTANT: D3D10_DEFAULT_VIEWPORT_TOPLEFTY                                      0
+CONSTANT: D3D10_DEFAULT_VIEWPORT_WIDTH                                         0
+CONSTANT: D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP                                 0.6
+CONSTANT: D3D10_FLOAT32_MAX                                                    3.402823466e+38
+CONSTANT: D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP                            0.6
+CONSTANT: D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR                             2.4
+CONSTANT: D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR                               1.0
+CONSTANT: D3D10_FLOAT_TO_SRGB_OFFSET                                           0.055
+CONSTANT: D3D10_FLOAT_TO_SRGB_SCALE_1                                          12.92
+CONSTANT: D3D10_FLOAT_TO_SRGB_SCALE_2                                          1.055
+CONSTANT: D3D10_FLOAT_TO_SRGB_THRESHOLD                                        0.0031308
+CONSTANT: D3D10_FTOI_INSTRUCTION_MAX_INPUT                                     2147483647.999
+CONSTANT: D3D10_FTOI_INSTRUCTION_MIN_INPUT                                     -2147483648.999
+CONSTANT: D3D10_FTOU_INSTRUCTION_MAX_INPUT                                     4294967295.999
+CONSTANT: D3D10_FTOU_INSTRUCTION_MIN_INPUT                                     0.0
+CONSTANT: D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS                        1
+CONSTANT: D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT               32
+CONSTANT: D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT                             1
+CONSTANT: D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST                    2
+CONSTANT: D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS                        1
+CONSTANT: D3D10_GS_INPUT_REGISTER_COMPONENTS                                   4
+CONSTANT: D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          32
+CONSTANT: D3D10_GS_INPUT_REGISTER_COUNT                                        16
+CONSTANT: D3D10_GS_INPUT_REGISTER_READS_PER_INST                               2
+CONSTANT: D3D10_GS_INPUT_REGISTER_READ_PORTS                                   1
+CONSTANT: D3D10_GS_INPUT_REGISTER_VERTICES                                     6
+CONSTANT: D3D10_GS_OUTPUT_ELEMENTS                                             32
+CONSTANT: D3D10_GS_OUTPUT_REGISTER_COMPONENTS                                  4
+CONSTANT: D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         32
+CONSTANT: D3D10_GS_OUTPUT_REGISTER_COUNT                                       32
+CONSTANT: D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES                        0
+CONSTANT: D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY                                  0
+CONSTANT: D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES                       0
+CONSTANT: D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT                             1
+CONSTANT: D3D10_IA_INSTANCE_ID_BIT_COUNT                                       32
+CONSTANT: D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT                                32
+CONSTANT: D3D10_IA_PRIMITIVE_ID_BIT_COUNT                                      32
+CONSTANT: D3D10_IA_VERTEX_ID_BIT_COUNT                                         32
+CONSTANT: D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT                            16
+CONSTANT: D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS                  64
+CONSTANT: D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT                        16
+CONSTANT: D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT                                HEX: ffffffff
+CONSTANT: D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER                               HEX: ffffffff
+CONSTANT: D3D10_LINEAR_GAMMA                                                   1.0
+CONSTANT: D3D10_MAX_BORDER_COLOR_COMPONENT                                     1.0
+CONSTANT: D3D10_MAX_DEPTH                                                      1.0
+CONSTANT: D3D10_MAX_MAXANISOTROPY                                              16
+CONSTANT: D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT                                   32
+CONSTANT: D3D10_MAX_POSITION_VALUE                                             3.402823466e+34
+CONSTANT: D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP                                 17
+CONSTANT: D3D10_MIN_BORDER_COLOR_COMPONENT                                     0.0
+CONSTANT: D3D10_MIN_DEPTH                                                      0.0
+CONSTANT: D3D10_MIN_MAXANISOTROPY                                              0
+CONSTANT: D3D10_MIP_LOD_BIAS_MAX                                               15.99
+CONSTANT: D3D10_MIP_LOD_BIAS_MIN                                               -16.0
+CONSTANT: D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT                                   6
+CONSTANT: D3D10_MIP_LOD_RANGE_BIT_COUNT                                        8
+CONSTANT: D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH                               1.4
+CONSTANT: D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT                     0
+CONSTANT: D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT                                  13
+CONSTANT: D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT                      15
+CONSTANT: D3D10_PS_FRONTFACING_DEFAULT_VALUE                                   HEX: ffffffff
+CONSTANT: D3D10_PS_FRONTFACING_FALSE_VALUE                                     0
+CONSTANT: D3D10_PS_FRONTFACING_TRUE_VALUE                                      HEX: ffffffff
+CONSTANT: D3D10_PS_INPUT_REGISTER_COMPONENTS                                   4
+CONSTANT: D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          32
+CONSTANT: D3D10_PS_INPUT_REGISTER_COUNT                                        32
+CONSTANT: D3D10_PS_INPUT_REGISTER_READS_PER_INST                               2
+CONSTANT: D3D10_PS_INPUT_REGISTER_READ_PORTS                                   1
+CONSTANT: D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT                    0.0
+CONSTANT: D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS                            1
+CONSTANT: D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT                   32
+CONSTANT: D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT                                 1
+CONSTANT: D3D10_PS_OUTPUT_REGISTER_COMPONENTS                                  4
+CONSTANT: D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         32
+CONSTANT: D3D10_PS_OUTPUT_REGISTER_COUNT                                       8
+CONSTANT: D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT                           0.5
+CONSTANT: D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT                             4096
+CONSTANT: D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP                       27
+CONSTANT: D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT                              4096
+CONSTANT: D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT                     4096
+CONSTANT: D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP                           32
+CONSTANT: D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP                                 32
+CONSTANT: D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION                8192
+CONSTANT: D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT                 1024
+CONSTANT: D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT                    4096
+CONSTANT: D3D10_REQ_MAXANISOTROPY                                              16
+CONSTANT: D3D10_REQ_MIP_LEVELS                                                 14
+CONSTANT: D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES                      2048
+CONSTANT: D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT                        4096
+CONSTANT: D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH                              8192
+CONSTANT: D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES                                 128
+CONSTANT: D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP                   20
+CONSTANT: D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT                           4096
+CONSTANT: D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION                             512
+CONSTANT: D3D10_REQ_TEXTURE1D_U_DIMENSION                                      8192
+CONSTANT: D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION                             512
+CONSTANT: D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION                                 8192
+CONSTANT: D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION                               2048
+CONSTANT: D3D10_REQ_TEXTURECUBE_DIMENSION                                      8192
+CONSTANT: D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL                   0
+CONSTANT: D3D10_SHADER_MAJOR_VERSION                                           4
+CONSTANT: D3D10_SHADER_MINOR_VERSION                                           0
+CONSTANT: D3D10_SHIFT_INSTRUCTION_PAD_VALUE                                    0
+CONSTANT: D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT                        5
+CONSTANT: D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT                               8
+CONSTANT: D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES                                  2048
+CONSTANT: D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES                            256
+CONSTANT: D3D10_SO_BUFFER_SLOT_COUNT                                           4
+CONSTANT: D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP                             HEX: ffffffff
+CONSTANT: D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER                         1
+CONSTANT: D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT                               64
+CONSTANT: D3D10_SRGB_GAMMA                                                     2.2
+CONSTANT: D3D10_SRGB_TO_FLOAT_DENOMINATOR_1                                    12.92
+CONSTANT: D3D10_SRGB_TO_FLOAT_DENOMINATOR_2                                    1.055
+CONSTANT: D3D10_SRGB_TO_FLOAT_EXPONENT                                         2.4
+CONSTANT: D3D10_SRGB_TO_FLOAT_OFFSET                                           0.055
+CONSTANT: D3D10_SRGB_TO_FLOAT_THRESHOLD                                        0.04045
+CONSTANT: D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP                                 0.5
+CONSTANT: D3D10_STANDARD_COMPONENT_BIT_COUNT                                   32
+CONSTANT: D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED                           64
+CONSTANT: D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE               4
+CONSTANT: D3D10_STANDARD_PIXEL_COMPONENT_COUNT                                 128
+CONSTANT: D3D10_STANDARD_PIXEL_ELEMENT_COUNT                                   32
+CONSTANT: D3D10_STANDARD_VECTOR_SIZE                                           4
+CONSTANT: D3D10_STANDARD_VERTEX_ELEMENT_COUNT                                  16
+CONSTANT: D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT                          64
+CONSTANT: D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT                                  8
+CONSTANT: D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT                                  6
+CONSTANT: D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT                                  18
+CONSTANT: D3D10_UNBOUND_MEMORY_ACCESS_RESULT                                   0
+CONSTANT: D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX                             15
+CONSTANT: D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE             16
+CONSTANT: D3D10_VIEWPORT_BOUNDS_MAX                                            16383
+CONSTANT: D3D10_VIEWPORT_BOUNDS_MIN                                            -16384
+CONSTANT: D3D10_VS_INPUT_REGISTER_COMPONENTS                                   4
+CONSTANT: D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          32
+CONSTANT: D3D10_VS_INPUT_REGISTER_COUNT                                        16
+CONSTANT: D3D10_VS_INPUT_REGISTER_READS_PER_INST                               2
+CONSTANT: D3D10_VS_INPUT_REGISTER_READ_PORTS                                   1
+CONSTANT: D3D10_VS_OUTPUT_REGISTER_COMPONENTS                                  4
+CONSTANT: D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         32
+CONSTANT: D3D10_VS_OUTPUT_REGISTER_COUNT                                       16
+CONSTANT: D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT                          10
+CONSTANT: D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP                          25
+CONSTANT: D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP                                25
+CONSTANT: D3D_MAJOR_VERSION                                                    10
+CONSTANT: D3D_MINOR_VERSION                                                    0
+CONSTANT: D3D_SPEC_DATE_DAY                                                    8
+CONSTANT: D3D_SPEC_DATE_MONTH                                                  8
+CONSTANT: D3D_SPEC_DATE_YEAR                                                   2006
+CONSTANT: D3D_SPEC_VERSION                                                     1.050005
+
+CONSTANT: D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT 16
+CONSTANT: D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT     16
+
+CONSTANT: _FACD3D10      HEX: 879
+CONSTANT: _FACD3D10DEBUG HEX: 87A
+
+CONSTANT: D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS HEX: 88790001
+CONSTANT: D3D10_ERROR_FILE_NOT_FOUND                HEX: 88790002
+
+CONSTANT: D3D10_INPUT_PER_VERTEX_DATA   0
+CONSTANT: D3D10_INPUT_PER_INSTANCE_DATA 1
+TYPEDEF: int D3D10_INPUT_CLASSIFICATION
+
+CONSTANT: D3D10_APPEND_ALIGNED_ELEMENT HEX: ffffffff
+
+STRUCT: D3D10_INPUT_ELEMENT_DESC
+    { SemanticName         LPCSTR                     }
+    { SemanticIndex        UINT                       }
+    { Format               DXGI_FORMAT                }
+    { InputSlot            UINT                       }
+    { AlignedByteOffset    UINT                       }
+    { InputSlotClass       D3D10_INPUT_CLASSIFICATION }
+    { InstanceDataStepRate UINT                       } ;
+
+CONSTANT: D3D10_FILL_WIREFRAME 2
+CONSTANT: D3D10_FILL_SOLID     3
+TYPEDEF: int D3D10_FILL_MODE
+
+CONSTANT: D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED         0
+CONSTANT: D3D10_PRIMITIVE_TOPOLOGY_POINTLIST         1
+CONSTANT: D3D10_PRIMITIVE_TOPOLOGY_LINELIST          2
+CONSTANT: D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP         3
+CONSTANT: D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST      4
+CONSTANT: D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP     5
+CONSTANT: D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ      10
+CONSTANT: D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ     11
+CONSTANT: D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ  12
+CONSTANT: D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ 13
+TYPEDEF: int D3D10_PRIMITIVE_TOPOLOGY
+
+CONSTANT: D3D10_PRIMITIVE_UNDEFINED    0
+CONSTANT: D3D10_PRIMITIVE_POINT        1
+CONSTANT: D3D10_PRIMITIVE_LINE         2
+CONSTANT: D3D10_PRIMITIVE_TRIANGLE     3
+CONSTANT: D3D10_PRIMITIVE_LINE_ADJ     6
+CONSTANT: D3D10_PRIMITIVE_TRIANGLE_ADJ 7
+TYPEDEF: int D3D10_PRIMITIVE
+
+CONSTANT: D3D10_CULL_NONE  1
+CONSTANT: D3D10_CULL_FRONT 2
+CONSTANT: D3D10_CULL_BACK  3
+TYPEDEF: int D3D10_CULL_MODE
+
+STRUCT: D3D10_SO_DECLARATION_ENTRY
+    { SemanticName   LPCSTR }
+    { SemanticIndex  UINT   }
+    { StartComponent BYTE   }
+    { ComponentCount BYTE   }
+    { OutputSlot     BYTE   } ;
+
+STRUCT: D3D10_VIEWPORT
+    { TopLeftX INT   }
+    { TopLeftY INT   }
+    { Width    UINT  }
+    { Height   UINT  }
+    { MinDepth FLOAT }
+    { MaxDepth FLOAT } ;
+
+CONSTANT: D3D10_RESOURCE_DIMENSION_UNKNOWN   0
+CONSTANT: D3D10_RESOURCE_DIMENSION_BUFFER    1
+CONSTANT: D3D10_RESOURCE_DIMENSION_TEXTURE1D 2
+CONSTANT: D3D10_RESOURCE_DIMENSION_TEXTURE2D 3
+CONSTANT: D3D10_RESOURCE_DIMENSION_TEXTURE3D 4
+TYPEDEF: int D3D10_RESOURCE_DIMENSION
+
+CONSTANT: D3D10_SRV_DIMENSION_UNKNOWN          0
+CONSTANT: D3D10_SRV_DIMENSION_BUFFER           1
+CONSTANT: D3D10_SRV_DIMENSION_TEXTURE1D        2
+CONSTANT: D3D10_SRV_DIMENSION_TEXTURE1DARRAY   3
+CONSTANT: D3D10_SRV_DIMENSION_TEXTURE2D        4
+CONSTANT: D3D10_SRV_DIMENSION_TEXTURE2DARRAY   5
+CONSTANT: D3D10_SRV_DIMENSION_TEXTURE2DMS      6
+CONSTANT: D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY 7
+CONSTANT: D3D10_SRV_DIMENSION_TEXTURE3D        8
+CONSTANT: D3D10_SRV_DIMENSION_TEXTURECUBE      9
+TYPEDEF: int D3D10_SRV_DIMENSION
+
+CONSTANT: D3D10_DSV_DIMENSION_UNKNOWN          0
+CONSTANT: D3D10_DSV_DIMENSION_TEXTURE1D        1
+CONSTANT: D3D10_DSV_DIMENSION_TEXTURE1DARRAY   2
+CONSTANT: D3D10_DSV_DIMENSION_TEXTURE2D        3
+CONSTANT: D3D10_DSV_DIMENSION_TEXTURE2DARRAY   4
+CONSTANT: D3D10_DSV_DIMENSION_TEXTURE2DMS      5
+CONSTANT: D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY 6
+TYPEDEF: int D3D10_DSV_DIMENSION
+
+CONSTANT: D3D10_RTV_DIMENSION_UNKNOWN          0
+CONSTANT: D3D10_RTV_DIMENSION_BUFFER           1
+CONSTANT: D3D10_RTV_DIMENSION_TEXTURE1D        2
+CONSTANT: D3D10_RTV_DIMENSION_TEXTURE1DARRAY   3
+CONSTANT: D3D10_RTV_DIMENSION_TEXTURE2D        4
+CONSTANT: D3D10_RTV_DIMENSION_TEXTURE2DARRAY   5
+CONSTANT: D3D10_RTV_DIMENSION_TEXTURE2DMS      6
+CONSTANT: D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY 7
+CONSTANT: D3D10_RTV_DIMENSION_TEXTURE3D        8
+TYPEDEF: int D3D10_RTV_DIMENSION
+
+CONSTANT: D3D10_USAGE_DEFAULT   0
+CONSTANT: D3D10_USAGE_IMMUTABLE 1
+CONSTANT: D3D10_USAGE_DYNAMIC   2
+CONSTANT: D3D10_USAGE_STAGING   3
+TYPEDEF: int D3D10_USAGE
+
+CONSTANT: D3D10_BIND_VERTEX_BUFFER   HEX: 1
+CONSTANT: D3D10_BIND_INDEX_BUFFER    HEX: 2
+CONSTANT: D3D10_BIND_CONSTANT_BUFFER HEX: 4
+CONSTANT: D3D10_BIND_SHADER_RESOURCE HEX: 8
+CONSTANT: D3D10_BIND_STREAM_OUTPUT   HEX: 10
+CONSTANT: D3D10_BIND_RENDER_TARGET   HEX: 20
+CONSTANT: D3D10_BIND_DEPTH_STENCIL   HEX: 40
+TYPEDEF: int D3D10_BIND_FLAG
+
+CONSTANT: D3D10_CPU_ACCESS_WRITE HEX: 10000
+CONSTANT: D3D10_CPU_ACCESS_READ  HEX: 20000
+TYPEDEF: int D3D10_CPU_ACCESS_FLAG
+
+CONSTANT: D3D10_RESOURCE_MISC_GENERATE_MIPS     HEX: 1
+CONSTANT: D3D10_RESOURCE_MISC_SHARED            HEX: 2
+CONSTANT: D3D10_RESOURCE_MISC_TEXTURECUBE       HEX: 4
+CONSTANT: D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX HEX: 10
+CONSTANT: D3D10_RESOURCE_MISC_GDI_COMPATIBLE    HEX: 20
+TYPEDEF: int D3D10_RESOURCE_MISC_FLAG
+
+CONSTANT: D3D10_MAP_READ               1
+CONSTANT: D3D10_MAP_WRITE              2
+CONSTANT: D3D10_MAP_READ_WRITE         3
+CONSTANT: D3D10_MAP_WRITE_DISCARD      4
+CONSTANT: D3D10_MAP_WRITE_NO_OVERWRITE 5
+TYPEDEF: int D3D10_MAP
+
+CONSTANT: D3D10_MAP_FLAG_DO_NOT_WAIT HEX: 100000
+TYPEDEF: int D3D10_MAP_FLAG
+
+CONSTANT: D3D10_RAISE_FLAG_DRIVER_INTERNAL_ERROR HEX: 1
+TYPEDEF: int D3D10_RAISE_FLAG
+
+CONSTANT: D3D10_CLEAR_DEPTH   HEX: 1
+CONSTANT: D3D10_CLEAR_STENCIL HEX: 2
+TYPEDEF: int D3D10_CLEAR_FLAG
+
+TYPEDEF: RECT D3D10_RECT
+
+STRUCT: D3D10_BOX
+    { left   UINT }
+    { top    UINT }
+    { front  UINT }
+    { right  UINT }
+    { bottom UINT }
+    { back   UINT } ;
+
+COM-INTERFACE: ID3D10DeviceChild IUnknown {9B7E4C00-342C-4106-A19F-4F2704F689F0}
+    void GetDevice ( ID3D10Device** ppDevice )
+    HRESULT GetPrivateData ( LPGUID guid, UINT* pDataSize, void* pData )
+    HRESULT SetPrivateData ( LPGUID guid, UINT DataSize, void* pData )
+    HRESULT SetPrivateDataInterface ( LPGUID guid, IUnknown* pData ) ;
+
+CONSTANT: D3D10_COMPARISON_NEVER         1
+CONSTANT: D3D10_COMPARISON_LESS          2
+CONSTANT: D3D10_COMPARISON_EQUAL         3
+CONSTANT: D3D10_COMPARISON_LESS_EQUAL    4
+CONSTANT: D3D10_COMPARISON_GREATER       5
+CONSTANT: D3D10_COMPARISON_NOT_EQUAL     6
+CONSTANT: D3D10_COMPARISON_GREATER_EQUAL 7
+CONSTANT: D3D10_COMPARISON_ALWAYS        8
+TYPEDEF: int D3D10_COMPARISON_FUNC
+
+CONSTANT: D3D10_DEPTH_WRITE_MASK_ZERO 0
+CONSTANT: D3D10_DEPTH_WRITE_MASK_ALL  1
+TYPEDEF: int D3D10_DEPTH_WRITE_MASK
+
+CONSTANT: D3D10_STENCIL_OP_KEEP     1
+CONSTANT: D3D10_STENCIL_OP_ZERO     2
+CONSTANT: D3D10_STENCIL_OP_REPLACE  3
+CONSTANT: D3D10_STENCIL_OP_INCR_SAT 4
+CONSTANT: D3D10_STENCIL_OP_DECR_SAT 5
+CONSTANT: D3D10_STENCIL_OP_INVERT   6
+CONSTANT: D3D10_STENCIL_OP_INCR     7
+CONSTANT: D3D10_STENCIL_OP_DECR     8
+TYPEDEF: int D3D10_STENCIL_OP
+
+STRUCT: D3D10_DEPTH_STENCILOP_DESC
+    { StencilFailOp      D3D10_STENCIL_OP      }
+    { StencilDepthFailOp D3D10_STENCIL_OP      }
+    { StencilPassOp      D3D10_STENCIL_OP      }
+    { StencilFunc        D3D10_COMPARISON_FUNC } ;
+
+STRUCT: D3D10_DEPTH_STENCIL_DESC
+    { DepthEnable      BOOL                       }
+    { DepthWriteMask   D3D10_DEPTH_WRITE_MASK     }
+    { DepthFunc        D3D10_COMPARISON_FUNC      }
+    { StencilEnable    BOOL                       }
+    { StencilReadMask  BYTE                       }
+    { StencilWriteMask BYTE                       }
+    { FrontFace        D3D10_DEPTH_STENCILOP_DESC }
+    { BackFace         D3D10_DEPTH_STENCILOP_DESC } ;
+
+COM-INTERFACE: ID3D10DepthStencilState ID3D10DeviceChild {2B4B1CC8-A4AD-41f8-8322-CA86FC3EC675}
+    void GetDesc ( D3D10_DEPTH_STENCIL_DESC* pDesc ) ;
+
+CONSTANT: D3D10_BLEND_ZERO             1
+CONSTANT: D3D10_BLEND_ONE              2
+CONSTANT: D3D10_BLEND_SRC_COLOR        3
+CONSTANT: D3D10_BLEND_INV_SRC_COLOR    4
+CONSTANT: D3D10_BLEND_SRC_ALPHA        5
+CONSTANT: D3D10_BLEND_INV_SRC_ALPHA    6
+CONSTANT: D3D10_BLEND_DEST_ALPHA       7
+CONSTANT: D3D10_BLEND_INV_DEST_ALPHA   8
+CONSTANT: D3D10_BLEND_DEST_COLOR       9
+CONSTANT: D3D10_BLEND_INV_DEST_COLOR   10
+CONSTANT: D3D10_BLEND_SRC_ALPHA_SAT    11
+CONSTANT: D3D10_BLEND_BLEND_FACTOR     14
+CONSTANT: D3D10_BLEND_INV_BLEND_FACTOR 15
+CONSTANT: D3D10_BLEND_SRC1_COLOR       16
+CONSTANT: D3D10_BLEND_INV_SRC1_COLOR   17
+CONSTANT: D3D10_BLEND_SRC1_ALPHA       18
+CONSTANT: D3D10_BLEND_INV_SRC1_ALPHA   19
+TYPEDEF: int D3D10_BLEND
+
+CONSTANT: D3D10_BLEND_OP_ADD          1
+CONSTANT: D3D10_BLEND_OP_SUBTRACT     2
+CONSTANT: D3D10_BLEND_OP_REV_SUBTRACT 3
+CONSTANT: D3D10_BLEND_OP_MIN          4
+CONSTANT: D3D10_BLEND_OP_MAX          5
+TYPEDEF: int D3D10_BLEND_OP
+
+CONSTANT: D3D10_COLOR_WRITE_ENABLE_RED   1
+CONSTANT: D3D10_COLOR_WRITE_ENABLE_GREEN 2
+CONSTANT: D3D10_COLOR_WRITE_ENABLE_BLUE  4
+CONSTANT: D3D10_COLOR_WRITE_ENABLE_ALPHA 8
+CONSTANT: D3D10_COLOR_WRITE_ENABLE_ALL   15
+TYPEDEF: int D3D10_COLOR_WRITE_ENABLE
+
+STRUCT: D3D10_BLEND_DESC
+    { AlphaToCoverageEnable BOOL           }
+    { BlendEnable           BOOL[8]        }
+    { SrcBlend              D3D10_BLEND    }
+    { DestBlend             D3D10_BLEND    }
+    { BlendOp               D3D10_BLEND_OP }
+    { SrcBlendAlpha         D3D10_BLEND    }
+    { DestBlendAlpha        D3D10_BLEND    }
+    { BlendOpAlpha          D3D10_BLEND_OP }
+    { RenderTargetWriteMask BYTE[8]        } ;
+
+COM-INTERFACE: ID3D10BlendState ID3D10DeviceChild {EDAD8D19-8A35-4d6d-8566-2EA276CDE161}
+    void GetDesc ( D3D10_BLEND_DESC* pDesc ) ;
+
+STRUCT: D3D10_RASTERIZER_DESC
+    { FillMode              D3D10_FILL_MODE }
+    { CullMode              D3D10_CULL_MODE }
+    { FrontCounterClockwise BOOL            }
+    { DepthBias             INT             }
+    { DepthBiasClamp        FLOAT           }
+    { SlopeScaledDepthBias  FLOAT           }
+    { DepthClipEnable       BOOL            }
+    { ScissorEnable         BOOL            }
+    { MultisampleEnable     BOOL            }
+    { AntialiasedLineEnable BOOL            } ;
+
+COM-INTERFACE: ID3D10RasterizerState ID3D10DeviceChild {A2A07292-89AF-4345-BE2E-C53D9FBB6E9F}
+    void GetDesc ( D3D10_RASTERIZER_DESC* pDesc ) ;
+
+STRUCT: D3D10_SUBRESOURCE_DATA
+    { pSysMem          void* }
+    { SysMemPitch      UINT  }
+    { SysMemSlicePitch UINT  } ;
+
+
+COM-INTERFACE: ID3D10Resource ID3D10DeviceChild {9B7E4C01-342C-4106-A19F-4F2704F689F0}
+    void GetType ( D3D10_RESOURCE_DIMENSION* rType )
+    void SetEvictionPriority ( UINT EvictionPriority )
+    UINT GetEvictionPriority ( ) ;
+
+STRUCT: D3D10_BUFFER_DESC
+    { ByteWidth      UINT        }
+    { Usage          D3D10_USAGE }
+    { BindFlags      UINT        }
+    { CPUAccessFlags UINT        }
+    { MiscFlags      UINT        } ;
+
+COM-INTERFACE: ID3D10Buffer ID3D10Resource {9B7E4C02-342C-4106-A19F-4F2704F689F0}
+    HRESULT Map ( D3D10_MAP MapType, UINT MapFlags, void** ppData )
+    void Unmap ( )
+    void GetDesc ( D3D10_BUFFER_DESC* pDesc ) ;
+
+STRUCT: D3D10_TEXTURE1D_DESC
+    { Width          UINT        }
+    { MipLevels      UINT        }
+    { ArraySize      UINT        }
+    { Format         DXGI_FORMAT }
+    { Usage          D3D10_USAGE }
+    { BindFlags      UINT        }
+    { CPUAccessFlags UINT        }
+    { MiscFlags      UINT        } ;
+
+COM-INTERFACE: ID3D10Texture1D ID3D10Resource {9B7E4C03-342C-4106-A19F-4F2704F689F0}
+    HRESULT Map ( UINT Subresource, D3D10_MAP MapType, UINT MapFlags, void** ppData )
+    void Unmap ( UINT Subresource )
+    void GetDesc ( D3D10_TEXTURE1D_DESC* pDesc ) ;
+
+STRUCT: D3D10_TEXTURE2D_DESC
+    { Width          UINT             }
+    { Height         UINT             }
+    { MipLevels      UINT             }
+    { ArraySize      UINT             }
+    { Format         DXGI_FORMAT      }
+    { SampleDesc     DXGI_SAMPLE_DESC }
+    { Usage          D3D10_USAGE      }
+    { BindFlags      UINT             }
+    { CPUAccessFlags UINT             }
+    { MiscFlags      UINT             } ;
+
+STRUCT: D3D10_MAPPED_TEXTURE2D
+    { pData    void* }
+    { RowPitch UINT  } ;
+
+COM-INTERFACE: ID3D10Texture2D ID3D10Resource {9B7E4C04-342C-4106-A19F-4F2704F689F0}
+    HRESULT Map ( UINT Subresource, D3D10_MAP MapType, UINT MapFlags, D3D10_MAPPED_TEXTURE2D* pMappedTex2D )
+    void Unmap ( UINT Subresource )
+    void GetDesc ( D3D10_TEXTURE2D_DESC* pDesc ) ;
+
+STRUCT: D3D10_TEXTURE3D_DESC
+    { Width          UINT        }
+    { Height         UINT        }
+    { Depth          UINT        }
+    { MipLevels      UINT        }
+    { Format         DXGI_FORMAT }
+    { Usage          D3D10_USAGE }
+    { BindFlags      UINT        }
+    { CPUAccessFlags UINT        }
+    { MiscFlags      UINT        } ;
+
+STRUCT: D3D10_MAPPED_TEXTURE3D
+    { pData      void* }
+    { RowPitch   UINT  }
+    { DepthPitch UINT  } ;
+
+COM-INTERFACE: ID3D10Texture3D ID3D10Resource {9B7E4C05-342C-4106-A19F-4F2704F689F0}
+    HRESULT Map ( UINT Subresource, D3D10_MAP MapType, UINT MapFlags, D3D10_MAPPED_TEXTURE3D* pMappedTex3D )
+    void Unmap ( UINT Subresource )
+    void GetDesc ( D3D10_TEXTURE3D_DESC* pDesc ) ;
+
+CONSTANT: D3D10_TEXTURECUBE_FACE_POSITIVE_X 0
+CONSTANT: D3D10_TEXTURECUBE_FACE_NEGATIVE_X 1
+CONSTANT: D3D10_TEXTURECUBE_FACE_POSITIVE_Y 2
+CONSTANT: D3D10_TEXTURECUBE_FACE_NEGATIVE_Y 3
+CONSTANT: D3D10_TEXTURECUBE_FACE_POSITIVE_Z 4
+CONSTANT: D3D10_TEXTURECUBE_FACE_NEGATIVE_Z 5
+TYPEDEF: int D3D10_TEXTURECUBE_FACE
+
+COM-INTERFACE: ID3D10View ID3D10DeviceChild {C902B03F-60A7-49BA-9936-2A3AB37A7E33}
+    void GetResource ( ID3D10Resource** ppResource ) ;
+
+UNION-STRUCT: D3D10_BUFFER_SRV_UNION1
+    { FirstElement  UINT }
+    { ElementOffset UINT } ;
+
+UNION-STRUCT: D3D10_BUFFER_SRV_UNION2
+    { NumElements UINT }
+    { ElementWith UINT } ;
+
+STRUCT: D3D10_BUFFER_SRV
+    { First  D3D10_BUFFER_SRV_UNION1 }
+    { Second D3D10_BUFFER_SRV_UNION2 } ;
+
+STRUCT: D3D10_TEX1D_SRV
+    { MostDetailedMip UINT }
+    { MipLevels       UINT } ;
+
+STRUCT: D3D10_TEX1D_ARRAY_SRV
+    { MostDetailedMip UINT }
+    { MipLevels       UINT }
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+STRUCT: D3D10_TEX2D_SRV
+    { MostDetailedMip UINT }
+    { MipLevels       UINT } ;
+
+STRUCT: D3D10_TEX2D_ARRAY_SRV
+    { MostDetailedMip UINT }
+    { MipLevels       UINT }
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+STRUCT: D3D10_TEX3D_SRV
+    { MostDetailedMip UINT }
+    { MipLevels       UINT } ;
+
+STRUCT: D3D10_TEXCUBE_SRV
+    { MostDetailedMip UINT }
+    { MipLevels       UINT } ;
+
+STRUCT: D3D10_TEX2DMS_SRV
+    { UnusedField_NothingToDefine UINT } ;
+
+STRUCT: D3D10_TEX2DMS_ARRAY_SRV
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+UNION-STRUCT: D3D10_SHADER_RESOURCE_VIEW_DESC_UNION
+    { Buffer           D3D10_BUFFER_SRV        }
+    { Texture1D        D3D10_TEX1D_SRV         }
+    { Texture1DArray   D3D10_TEX1D_ARRAY_SRV   }
+    { Texture2D        D3D10_TEX2D_SRV         }
+    { Texture2DArray   D3D10_TEX2D_ARRAY_SRV   }
+    { Texture2DMS      D3D10_TEX2DMS_SRV       }
+    { Texture2DMSArray D3D10_TEX2DMS_ARRAY_SRV }
+    { Texture3D        D3D10_TEX3D_SRV         }
+    { TextureCube      D3D10_TEXCUBE_SRV       } ;
+
+STRUCT: D3D10_SHADER_RESOURCE_VIEW_DESC
+    { Format        DXGI_FORMAT                           }
+    { ViewDimension D3D10_SRV_DIMENSION                   }
+    { View          D3D10_SHADER_RESOURCE_VIEW_DESC_UNION } ;
+
+COM-INTERFACE: ID3D10ShaderResourceView ID3D10View {9B7E4C07-342C-4106-A19F-4F2704F689F0}
+    void GetDesc ( D3D10_SHADER_RESOURCE_VIEW_DESC* pDesc ) ;
+
+UNION-STRUCT: D3D10_BUFFER_RTV_UNION1
+    { FirstElement  UINT }
+    { ElementOffset UINT } ;
+
+UNION-STRUCT: D3D10_BUFFER_RTV_UNION2
+    { NumElements  UINT }
+    { ElementWidth UINT } ;
+
+STRUCT: D3D10_BUFFER_RTV
+    { First  D3D10_BUFFER_RTV_UNION1 }
+    { Second D3D10_BUFFER_RTV_UNION2 } ;
+
+STRUCT: D3D10_TEX1D_RTV
+    { MipSlice UINT } ;
+
+STRUCT: D3D10_TEX1D_ARRAY_RTV
+    { MipSlice        UINT }
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+STRUCT: D3D10_TEX2D_RTV
+    { MipSlice UINT } ;
+
+STRUCT: D3D10_TEX2DMS_RTV
+    { UnusedField_NothingToDefine UINT } ;
+
+STRUCT: D3D10_TEX2D_ARRAY_RTV
+    { MipSlice        UINT }
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+    
+STRUCT: D3D10_TEX2DMS_ARRAY_RTV
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+STRUCT: D3D10_TEX3D_RTV
+    { MipSlice    UINT }
+    { FirstWSlice UINT }
+    { WSize       UINT } ;
+
+UNION-STRUCT: D3D10_RENDER_TARGET_VIEW_DESC_UNION
+    { Buffer           D3D10_BUFFER_RTV        }
+    { Texture1D        D3D10_TEX1D_RTV         }
+    { Texture1DArray   D3D10_TEX1D_ARRAY_RTV   }
+    { Texture2D        D3D10_TEX2D_RTV         }
+    { Texture2DArray   D3D10_TEX2D_ARRAY_RTV   }
+    { Texture2DMS      D3D10_TEX2DMS_RTV       }
+    { Texture2DMSArray D3D10_TEX2DMS_ARRAY_RTV }
+    { Texture3D        D3D10_TEX3D_RTV         } ;
+
+STRUCT: D3D10_RENDER_TARGET_VIEW_DESC
+    { Format        DXGI_FORMAT                         }
+    { ViewDimension D3D10_RTV_DIMENSION                 }
+    { View          D3D10_RENDER_TARGET_VIEW_DESC_UNION } ;
+
+COM-INTERFACE: ID3D10RenderTargetView ID3D10View {9B7E4C08-342C-4106-A19F-4F2704F689F0}
+    void GetDesc ( D3D10_RENDER_TARGET_VIEW_DESC* pDesc ) ;
+
+STRUCT: D3D10_TEX1D_DSV
+    { MipSlice UINT } ;
+
+STRUCT: D3D10_TEX1D_ARRAY_DSV
+    { MipSlice        UINT }
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+STRUCT: D3D10_TEX2D_DSV
+    { MipSlice UINT } ;
+
+STRUCT: D3D10_TEX2D_ARRAY_DSV
+    { MipSlice        UINT }
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+STRUCT: D3D10_TEX2DMS_DSV
+    { UnusedField_NothingToDefine UINT } ;
+
+STRUCT: D3D10_TEX2DMS_ARRAY_DSV
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+UNION-STRUCT: D3D10_DEPTH_STENCIL_VIEW_DESC_UNION
+    { Texture1D        D3D10_TEX1D_DSV         }
+    { Texture1DArray   D3D10_TEX1D_ARRAY_DSV   }
+    { Texture2D        D3D10_TEX2D_DSV         }
+    { Texture2DArray   D3D10_TEX2D_ARRAY_DSV   }
+    { Texture2DMS      D3D10_TEX2DMS_DSV       }
+    { Texture2DMSArray D3D10_TEX2DMS_ARRAY_DSV } ;
+
+STRUCT: D3D10_DEPTH_STENCIL_VIEW_DESC
+    { Format        DXGI_FORMAT                         }
+    { ViewDimension D3D10_DSV_DIMENSION                 }
+    { Union         D3D10_DEPTH_STENCIL_VIEW_DESC_UNION } ;
+
+COM-INTERFACE: ID3D10DepthStencilView ID3D10View {9B7E4C09-342C-4106-A19F-4F2704F689F0}
+    void GetDesc ( D3D10_DEPTH_STENCIL_VIEW_DESC* pDesc ) ;
+
+COM-INTERFACE: ID3D10VertexShader ID3D10DeviceChild {9B7E4C0A-342C-4106-A19F-4F2704F689F0} ;
+
+COM-INTERFACE: ID3D10GeometryShader ID3D10DeviceChild {16BE88-54CD-4040-AB44-20461BC81F68} ;
+
+COM-INTERFACE: ID3D10PixelShader ID3D10DeviceChild {68B601-9D00-4cde-8346-8E7F675819B6} ;
+
+COM-INTERFACE: ID3D10InputLayout ID3D10DeviceChild {7E4C0B-342C-4106-A19F-4F2704F689F0} ;
+
+CONSTANT: D3D10_FILTER_MIN_MAG_MIP_POINT                          0
+CONSTANT: D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR                   HEX: 1
+CONSTANT: D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT             HEX: 4
+CONSTANT: D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR                   HEX: 5
+CONSTANT: D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT                   HEX: 10
+CONSTANT: D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR            HEX: 11
+CONSTANT: D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT                   HEX: 14
+CONSTANT: D3D10_FILTER_MIN_MAG_MIP_LINEAR                         HEX: 15
+CONSTANT: D3D10_FILTER_ANISOTROPIC                                HEX: 55
+CONSTANT: D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT               HEX: 80
+CONSTANT: D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR        HEX: 81
+CONSTANT: D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT  HEX: 84
+CONSTANT: D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR        HEX: 85
+CONSTANT: D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT        HEX: 90
+CONSTANT: D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR HEX: 91
+CONSTANT: D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT        HEX: 94
+CONSTANT: D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR              HEX: 95
+CONSTANT: D3D10_FILTER_COMPARISON_ANISOTROPIC                     HEX: d5
+CONSTANT: D3D10_FILTER_TEXT_1BIT                                  HEX: 80000000
+TYPEDEF: int D3D10_FILTER
+
+CONSTANT: D3D10_FILTER_TYPE_POINT  0
+CONSTANT: D3D10_FILTER_TYPE_LINEAR 1
+TYPEDEF: int D3D10_FILTER_TYPE
+
+CONSTANT: D3D10_FILTER_TYPE_MASK          HEX: 3
+CONSTANT: D3D10_MIN_FILTER_SHIFT          4
+CONSTANT: D3D10_MAG_FILTER_SHIFT          2
+CONSTANT: D3D10_MIP_FILTER_SHIFT          0
+CONSTANT: D3D10_COMPARISON_FILTERING_BIT  HEX: 80
+CONSTANT: D3D10_ANISOTROPIC_FILTERING_BIT HEX: 40
+CONSTANT: D3D10_TEXT_1BIT_BIT             HEX: 80000000
+
+CONSTANT: D3D10_TEXTURE_ADDRESS_WRAP        1
+CONSTANT: D3D10_TEXTURE_ADDRESS_MIRROR      2
+CONSTANT: D3D10_TEXTURE_ADDRESS_CLAMP       3
+CONSTANT: D3D10_TEXTURE_ADDRESS_BORDER      4
+CONSTANT: D3D10_TEXTURE_ADDRESS_MIRROR_ONCE 5
+TYPEDEF: int D3D10_TEXTURE_ADDRESS_MODE
+
+STRUCT: D3D10_SAMPLER_DESC
+    { Filter         D3D10_FILTER               }
+    { AddressU       D3D10_TEXTURE_ADDRESS_MODE }
+    { AddressV       D3D10_TEXTURE_ADDRESS_MODE }
+    { AddressW       D3D10_TEXTURE_ADDRESS_MODE }
+    { MipLODBias     FLOAT                      }
+    { MaxAnisotropy  UINT                       }
+    { ComparisonFunc D3D10_COMPARISON_FUNC      }
+    { BorderColor    FLOAT[4]                   }
+    { MinLOD         FLOAT                      }
+    { MaxLOD         FLOAT                      } ;
+TYPEDEF: D3D10_SAMPLER_DESC D3D10SAMPLER_DESC
+
+COM-INTERFACE: ID3D10SamplerState ID3D10DeviceChild {9B7E4C0C-342C-4106-A19F-4F2704F689F0}
+    void GetDesc ( D3D10SAMPLER_DESC* pDesc ) ;
+
+CONSTANT: D3D10_FORMAT_SUPPORT_BUFFER                   HEX: 1
+CONSTANT: D3D10_FORMAT_SUPPORT_IA_VERTEX_BUFFER         HEX: 2
+CONSTANT: D3D10_FORMAT_SUPPORT_IA_INDEX_BUFFER          HEX: 4
+CONSTANT: D3D10_FORMAT_SUPPORT_SO_BUFFER                HEX: 8
+CONSTANT: D3D10_FORMAT_SUPPORT_TEXTURE1D                HEX: 10
+CONSTANT: D3D10_FORMAT_SUPPORT_TEXTURE2D                HEX: 20
+CONSTANT: D3D10_FORMAT_SUPPORT_TEXTURE3D                HEX: 40
+CONSTANT: D3D10_FORMAT_SUPPORT_TEXTURECUBE              HEX: 80
+CONSTANT: D3D10_FORMAT_SUPPORT_SHADER_LOAD              HEX: 100
+CONSTANT: D3D10_FORMAT_SUPPORT_SHADER_SAMPLE            HEX: 200
+CONSTANT: D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON HEX: 400
+CONSTANT: D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT  HEX: 800
+CONSTANT: D3D10_FORMAT_SUPPORT_MIP                      HEX: 1000
+CONSTANT: D3D10_FORMAT_SUPPORT_MIP_AUTOGEN              HEX: 2000
+CONSTANT: D3D10_FORMAT_SUPPORT_RENDER_TARGET            HEX: 4000
+CONSTANT: D3D10_FORMAT_SUPPORT_BLENDABLE                HEX: 8000
+CONSTANT: D3D10_FORMAT_SUPPORT_DEPTH_STENCIL            HEX: 10000
+CONSTANT: D3D10_FORMAT_SUPPORT_CPU_LOCKABLE             HEX: 20000
+CONSTANT: D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE      HEX: 40000
+CONSTANT: D3D10_FORMAT_SUPPORT_DISPLAY                  HEX: 80000
+CONSTANT: D3D10_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT   HEX: 100000
+CONSTANT: D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET HEX: 200000
+CONSTANT: D3D10_FORMAT_SUPPORT_MULTISAMPLE_LOAD         HEX: 400000
+CONSTANT: D3D10_FORMAT_SUPPORT_SHADER_GATHER            HEX: 800000
+CONSTANT: D3D10_FORMAT_SUPPORT_BACK_BUFFER_CAST         HEX: 100000
+TYPEDEF: int D3D10_FORMAT_SUPPORT
+
+COM-INTERFACE: ID3D10Asynchronous ID3D10DeviceChild {9B7E4C0D-342C-4106-A19F-4F2704F689F0}
+    void Begin ( )
+    void End ( )
+    HRESULT GetData ( void* pData, UINT DataSize, UINT GetDataFlags )
+    UINT GetDataSize ( ) ;
+
+CONSTANT: D3D10_ASYNC_GETDATA_DONOTFLUSH 1
+TYPEDEF: int D3D10_ASYNC_GETDATA_FLAG
+
+CONSTANT: D3D10_QUERY_EVENT                 0
+CONSTANT: D3D10_QUERY_OCCLUSION             1
+CONSTANT: D3D10_QUERY_TIMESTAMP             2
+CONSTANT: D3D10_QUERY_TIMESTAMP_DISJOINT    3
+CONSTANT: D3D10_QUERY_PIPELINE_STATISTICS   4
+CONSTANT: D3D10_QUERY_OCCLUSION_PREDICATE   5
+CONSTANT: D3D10_QUERY_SO_STATISTICS         6
+CONSTANT: D3D10_QUERY_SO_OVERFLOW_PREDICATE 7
+TYPEDEF: int D3D10_QUERY
+
+CONSTANT: D3D10_QUERY_MISC_PREDICATEHINT 1
+TYPEDEF: int D3D10_QUERY_MISC_FLAG
+
+STRUCT: D3D10_QUERY_DESC
+    { Query     D3D10_QUERY }
+    { MiscFlags UINT        } ;
+
+COM-INTERFACE: ID3D10Query ID3D10Asynchronous {9B7E4C0E-342C-4106-A19F-4F2704F689F0}
+    void GetDesc ( D3D10_QUERY_DESC* pDesc ) ;
+
+COM-INTERFACE: ID3D10Predicate ID3D10Query {9B7E4C10-342C-4106-A19F-4F2704F689F0} ;
+
+STRUCT: D3D10_QUERY_DATA_TIMESTAMP_DISJOINT
+    { Frequency UINT64 }
+    { Disjoint  BOOL   } ;
+
+STRUCT: D3D10_QUERY_DATA_PIPELINE_STATISTICS
+    { IAVertices    UINT64 }
+    { IAPrimitives  UINT64 }
+    { VSInvocations UINT64 }
+    { GSInvocations UINT64 }
+    { GSPrimitives  UINT64 }
+    { CInvocations  UINT64 }
+    { CPrimitives   UINT64 }
+    { PSInvocations UINT64 } ;
+
+STRUCT: D3D10_QUERY_DATA_SO_STATISTICS
+    { NumPrimitivesWritten    UINT64 }
+    { PrimitivesStorageNeeded UINT64 } ;
+
+CONSTANT: D3D10_COUNTER_GPU_IDLE                              0
+CONSTANT: D3D10_COUNTER_VERTEX_PROCESSING                     1
+CONSTANT: D3D10_COUNTER_GEOMETRY_PROCESSING                   2
+CONSTANT: D3D10_COUNTER_PIXEL_PROCESSING                      3
+CONSTANT: D3D10_COUNTER_OTHER_GPU_PROCESSING                  4
+CONSTANT: D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION    5
+CONSTANT: D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION    6
+CONSTANT: D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION         7
+CONSTANT: D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION 8
+CONSTANT: D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION       9
+CONSTANT: D3D10_COUNTER_VS_MEMORY_LIMITED                     10
+CONSTANT: D3D10_COUNTER_VS_COMPUTATION_LIMITED                11
+CONSTANT: D3D10_COUNTER_GS_MEMORY_LIMITED                     12
+CONSTANT: D3D10_COUNTER_GS_COMPUTATION_LIMITED                13
+CONSTANT: D3D10_COUNTER_PS_MEMORY_LIMITED                     14
+CONSTANT: D3D10_COUNTER_PS_COMPUTATION_LIMITED                15
+CONSTANT: D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE         16
+CONSTANT: D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE                17
+CONSTANT: D3D10_COUNTER_DEVICE_DEPENDENT_0                    HEX: 40000000
+TYPEDEF: int D3D10_COUNTER
+
+CONSTANT: D3D10_COUNTER_TYPE_FLOAT32 0
+CONSTANT: D3D10_COUNTER_TYPE_UINT16  1
+CONSTANT: D3D10_COUNTER_TYPE_UINT32  2
+CONSTANT: D3D10_COUNTER_TYPE_UINT64  3
+TYPEDEF: int D3D10_COUNTER_TYPE
+
+STRUCT: D3D10_COUNTER_DESC
+    { Counter   D3D10_COUNTER }
+    { MiscFlags UINT          } ;
+
+STRUCT: D3D10_COUNTER_INFO
+    { LastDeviceDependentCounter D3D10_COUNTER }
+    { NumSimultaneousCounters    UINT          }
+    { NumDetectableParallelUnits BYTE          } ;
+
+COM-INTERFACE: ID3D10Counter ID3D10Asynchronous {9B7E4C11-342C-4106-A19F-4F2704F689F0}
+    void GetDesc ( D3D10_COUNTER_DESC* pDesc ) ;
+
+COM-INTERFACE: ID3D10Device IUnknown {9B7E4C0F-342C-4106-A19F-4F2704F689F0}
+    void VSSetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D10Buffer** ppConstantBuffers )
+    void PSSetShaderResources ( UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView** ppShaderResourceView )
+    void PSSetShader ( ID3D10PixelShader* pPixelShader )
+    void PSSetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D10SamplerState** ppSamplers )
+    void VSSetShader ( ID3D10VertexShader* pVertexShader )
+    void DrawIndexed ( UINT IndexCount, UINT StartIndexLocation, INT BaseVertexLocation )
+    void Draw ( UINT VertexCount, UINT StartVertexLocation )
+    void PSSetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D10Buffer** ppConstantBuffers )
+    void IASetInputLayout ( ID3D10InputLayout* pInputLayout )
+    void IASetVertexBuffers ( UINT StartSlot, UINT NumBuffers, ID3D10Buffer** ppVertexBuffers, UINT* pStrides, UINT* pOffsets )
+    void IASetIndexBuffer ( ID3D10Buffer* pIndexBuffer, DXGI_FORMAT Format, UINT Offset )
+    void DrawIndexedInstanced ( UINT IndexCountPerInstance, UINT InstanceCount, UINT StartIndexLocation, INT BaseVertexLocation, UINT StartInstanceLocation )
+    void DrawInstanced ( UINT VertexCountPerInstance, UINT InstanceCount, UINT StartVertexLocation, UINT StartInstanceLocation )
+    void GSSetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D10Buffer** ppConstantBuffers )
+    void GSSetShader ( ID3D10GeometryShader* pShader )
+    void IASetPrimitiveTopology ( D3D10_PRIMITIVE_TOPOLOGY Topology )
+    void VSSetShaderResources ( UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView** ppShaderResourceViews )
+    void VSSetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D10SamplerState** ppSamplers )
+    void SetPredication ( ID3D10Predicate* pPredicate, BOOL PredicateValue )
+    void GSSetShaderResources ( UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView** ppShaderResourceViews )
+    void GSSetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D10SamplerState** ppSamplers )
+    void OMSetRenderTargets ( UINT NumViews, ID3D10RenderTargetView** ppRenderTargetViews, ID3D10DepthStencilView* pDepthStencilView )
+    void OMSetBlendState ( ID3D10BlendState* pBlendState, FLOAT[4] BlendFactor, UINT SampleMask )
+    void OMSetDepthStencilState ( ID3D10DepthStencilState* pDepthStencilState, UINT StencilRef )
+    void SOSetTargets ( UINT NumBuffers, ID3D10Buffer** ppSOTargets, UINT* pOffsets )
+    void DrawAuto ( )
+    void RSSetState ( ID3D10RasterizerState* pRasterizerState )
+    void RSSetViewports ( UINT NumViewports, D3D10_VIEWPORT* pViewports )
+    void RSSetScissorRects ( UINT NumRects, D3D10_RECT* pRects )
+    void CopySubresourceRegion ( ID3D10Resource* pDstResource, UINT DstSubresource, UINT DstX, UINT DstY, UINT DstZ, ID3D10Resource* pSrcResource, UINT SrcSubresource, D3D10_BOX* pSrcBox )
+    void CopyResource ( ID3D10Resource* pDstResource, ID3D10Resource* pSrcResource )
+    void UpdateSubresource ( ID3D10Resource* pDstResource, UINT DstSubresource, D3D10_BOX* pDstBox, void* pSrcData, UINT SrcRowPitch, UINT SrcDepthPitch )
+    void ClearRenderTargetView ( ID3D10RenderTargetView* pRenderTargetView, FLOAT[4] ColorRGBA )
+    void ClearDepthStencilView ( ID3D10DepthStencilView* pDepthStencilView, UINT ClearFlags, FLOAT Depth, BYTE Stencil )
+    void GenerateMips ( ID3D10ShaderResourceView* pShaderResourceView )
+    void ResolveSubresource ( ID3D10Resource* pDstResource, UINT DstSubresource, ID3D10Resource* pSrcResource, UINT SrcSubresource, DXGI_FORMAT Format )
+    void VSGetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D10Buffer** ppConstantBuffers )
+    void PSGetShaderResources ( UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView** ppShaderResourceViews )
+    void PSGetShader ( ID3D10PixelShader** ppPixelShader )
+    void PSGetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D10SamplerState** ppSamplers )
+    void VSGetShader ( ID3D10VertexShader** ppVertexShader )
+    void PSGetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D10Buffer** ppConstantBuffers )
+    void IAGetInputLayout ( ID3D10InputLayout** ppInputLayout )
+    void IAGetVertexBuffers ( UINT StartSlot, UINT NumBuffers, ID3D10Buffer** ppVertexBuffers, UINT* pStrides, UINT* pOffsets )
+    void IAGetIndexBuffer ( ID3D10Buffer** pIndexBuffer, DXGI_FORMAT* Format, UINT* Offset )
+    void GSGetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D10Buffer** ppConstantBuffers )
+    void GSGetShader ( ID3D10GeometryShader** ppGeometryShader )
+    void IAGetPrimitiveTopology ( D3D10_PRIMITIVE_TOPOLOGY* pTopology )
+    void VSGetShaderResources ( UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView** ppShaderResourceViews )
+    void VSGetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D10SamplerState** ppSamplers )
+    void GetPredication ( ID3D10Predicate** ppPredicate, BOOL* pPredicateValue )
+    void GSGetShaderResources ( UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView** ppShaderResourceViews )
+    void GSGetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D10SamplerState** ppSamplers )
+    void OMGetRenderTargets ( UINT NumViews, ID3D10RenderTargetView** ppRenderTargetViews, ID3D10DepthStencilView** ppDepthStencilView )
+    void OMGetBlendState ( ID3D10BlendState** ppBlendState, FLOAT[4] BlendFactor, UINT* pSampleMask )
+    void OMGetDepthStencilState ( ID3D10DepthStencilState** ppDepthStencilState, UINT* pStencilRef )
+    void SOGetTargets ( UINT NumBuffers, ID3D10Buffer** ppSOTargets, UINT* pOffsets )
+    void RSGetState ( ID3D10RasterizerState** ppRasterizerState )
+    void RSGetViewports ( UINT* NumViewports, D3D10_VIEWPORT* pViewports )
+    void RSGetScissorRects ( UINT* NumRects, D3D10_RECT* pRects )
+    HRESULT GetDeviceRemovedReason ( )
+    HRESULT SetExceptionMode ( UINT RaiseFlags )
+    UINT GetExceptionMode ( )
+    HRESULT GetPrivateData ( REFGUID guid, UINT* pDataSize, void* pData )
+    HRESULT SetPrivateData ( REFGUID guid, UINT DataSize, void* pData )
+    HRESULT SetPrivateDataInterface ( REFGUID guid, IUnknown* pData )
+    void ClearState ( )
+    void Flush ( )
+    HRESULT CreateBuffer ( D3D10_BUFFER_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Buffer** ppBuffer )
+    HRESULT CreateTexture1D ( D3D10_TEXTURE1D_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Texture1D** ppTexture1D )
+    HRESULT CreateTexture2D ( D3D10_TEXTURE2D_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Texture2D** ppTexture2D )
+    HRESULT CreateTexture3D ( D3D10_TEXTURE3D_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Texture3D** ppTexture3D )
+    HRESULT CreateShaderResourceView ( ID3D10Resource* pResource, D3D10_SHADER_RESOURCE_VIEW_DESC* pDesc, ID3D10ShaderResourceView** ppSRView )
+    HRESULT CreateRenderTargetView ( ID3D10Resource* pResource, D3D10_RENDER_TARGET_VIEW_DESC* pDesc, ID3D10RenderTargetView** ppRTView )
+    HRESULT CreateDepthStencilView ( ID3D10Resource* pResource, D3D10_DEPTH_STENCIL_VIEW_DESC* pDesc, ID3D10DepthStencilView** ppDepthStencilView )
+    HRESULT CreateInputLayout ( D3D10_INPUT_ELEMENT_DESC* pInputElementDescs, UINT NumElements, void* pShaderBytecodeWithInputSignature, SIZE_T BytecodeLength, ID3D10InputLayout** ppInputLayout )
+    HRESULT CreateVertexShader ( void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10VertexShader** ppVertexShader )
+    HRESULT CreateGeometryShader ( void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10GeometryShader** ppGeometryShader )
+    HRESULT CreateGeometryShaderWithStreamOutput ( void* pShaderBytecode, SIZE_T BytecodeLength, D3D10_SO_DECLARATION_ENTRY* pSODeclaration, UINT NumEntries, UINT OutputStreamStride, ID3D10GeometryShader** ppGeometryShader )
+    HRESULT CreatePixelShader ( void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10PixelShader** ppPixelShader )
+    HRESULT CreateBlendState ( D3D10_BLEND_DESC* pBlendStateDesc, ID3D10BlendState** ppBlendState )
+    HRESULT CreateDepthStencilState ( D3D10_DEPTH_STENCIL_DESC* pDepthStencilDesc, ID3D10DepthStencilState** ppDepthStencilState )
+    HRESULT CreateRasterizerState ( D3D10_RASTERIZER_DESC* pRasterizerDesc, ID3D10RasterizerState** ppRasterizerState )
+    HRESULT CreateSamplerState ( D3D10_SAMPLER_DESC* pSamplerDesc, ID3D10SamplerState** ppSamplerState )
+    HRESULT CreateQuery ( D3D10_QUERY_DESC* pQueryDesc, ID3D10Query** ppQuery )
+    HRESULT CreatePredicate ( D3D10_QUERY_DESC* pPredicateDesc, ID3D10Predicate** ppPredicate )
+    HRESULT CreateCounter ( D3D10_COUNTER_DESC* pCounterDesc, ID3D10Counter** ppCounter )
+    HRESULT CheckFormatSupport ( DXGI_FORMAT Format, UINT* pFormatSupport )
+    HRESULT CheckMultisampleQualityLevels ( DXGI_FORMAT Format, UINT SampleCount, UINT* pNumQualityLevels )
+    void CheckCounterInfo ( D3D10_COUNTER_INFO* pCounterInfo )
+    HRESULT CheckCounter ( D3D10_COUNTER_DESC* pDesc, D3D10_COUNTER_TYPE* pType, UINT* pActiveCounters, LPSTR szName, UINT* pNameLength, LPSTR szUnits, UINT* pUnitsLength, LPSTR szDescription, UINT* pDescriptionLength )
+    UINT GetCreationFlags ( )
+    HRESULT OpenSharedResource ( HANDLE hResource, REFIID ReturnedInterface, void** ppResource )
+    void SetTextFilterSize ( UINT Width, UINT Height )
+    void GetTextFilterSize ( UINT* pWidth, UINT* pHeight ) ;
+
+COM-INTERFACE: ID3D10Multithread IUnknown {9B7E4E00-342C-4106-A19F-4F2704F689F0}
+    void Enter ( )
+    void Leave ( )
+    BOOL SetMultithreadProtected ( BOOL bMTProtect )
+    BOOL GetMultithreadProtected ( ) ;
+
+CONSTANT: D3D10_CREATE_DEVICE_SINGLETHREADED                           HEX: 1
+CONSTANT: D3D10_CREATE_DEVICE_DEBUG                                    HEX: 2
+CONSTANT: D3D10_CREATE_DEVICE_SWITCH_TO_REF                            HEX: 4
+CONSTANT: D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS HEX: 8
+CONSTANT: D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP                      HEX: 10
+CONSTANT: D3D10_CREATE_DEVICE_BGRA_SUPPORT                             HEX: 20
+CONSTANT: D3D10_CREATE_DEVICE_STRICT_VALIDATION                        HEX: 200
+TYPEDEF: int D3D10_CREATE_DEVICE_FLAG
+
+CONSTANT: D3D10_SDK_VERSION 29
+
+CONSTANT: D3DX10_ERR_CANNOT_MODIFY_INDEX_BUFFER HEX: 88760B54
+CONSTANT: D3DX10_ERR_INVALID_MESH               HEX: 88760B55
+CONSTANT: D3DX10_ERR_CANNOT_ATTR_SORT           HEX: 88760B56
+CONSTANT: D3DX10_ERR_SKINNING_NOT_SUPPORTED     HEX: 88760B57
+CONSTANT: D3DX10_ERR_TOO_MANY_INFLUENCES        HEX: 88760B58
+CONSTANT: D3DX10_ERR_INVALID_DATA               HEX: 88760B59
+CONSTANT: D3DX10_ERR_LOADED_MESH_HAS_NO_DATA    HEX: 88760B5A
+CONSTANT: D3DX10_ERR_DUPLICATE_NAMED_FRAGMENT   HEX: 88760B5B
+CONSTANT: D3DX10_ERR_CANNOT_REMOVE_LAST_ITEM    HEX: 88760B5C
diff --git a/basis/windows/directx/d3d10/summary.txt b/basis/windows/directx/d3d10/summary.txt
new file mode 100644 (file)
index 0000000..93943ab
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 10 bindings. Corresponds to D3D10.h.
diff --git a/basis/windows/directx/d3d10/tags.txt b/basis/windows/directx/d3d10/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3d10_1/authors.txt b/basis/windows/directx/d3d10_1/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3d10_1/d3d10_1.factor b/basis/windows/directx/d3d10_1/d3d10_1.factor
new file mode 100644 (file)
index 0000000..7d4db6e
--- /dev/null
@@ -0,0 +1,128 @@
+USING: alien.c-types alien.syntax classes.struct
+windows.com.syntax windows.directx.d3d10
+windows.directx.d3d10misc windows.directx.dxgi
+windows.directx.dxgiformat windows.types ;
+IN: windows.directx.d3d10_1
+
+LIBRARY: d3d10_1
+
+CONSTANT: D3D10_1_DEFAULT_SAMPLE_MASK                             HEX: ffffffff
+CONSTANT: D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP                  0.6
+CONSTANT: D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP             0.6
+CONSTANT: D3D10_1_GS_INPUT_REGISTER_COUNT                         32
+CONSTANT: D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT             32
+CONSTANT: D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS   128
+CONSTANT: D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT         32
+CONSTANT: D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENTS              1
+CONSTANT: D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT     32
+CONSTANT: D3D10_1_PS_OUTPUT_MASK_REGISTER_COUNT                   1
+CONSTANT: D3D10_1_SHADER_MAJOR_VERSION                            4
+CONSTANT: D3D10_1_SHADER_MINOR_VERSION                            1
+CONSTANT: D3D10_1_SO_BUFFER_MAX_STRIDE_IN_BYTES                   2048
+CONSTANT: D3D10_1_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES             256
+CONSTANT: D3D10_1_SO_BUFFER_SLOT_COUNT                            4
+CONSTANT: D3D10_1_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER          1
+CONSTANT: D3D10_1_SO_SINGLE_BUFFER_COMPONENT_LIMIT                64
+CONSTANT: D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT                   32
+CONSTANT: D3D10_1_SUBPIXEL_FRACTIONAL_BIT_COUNT                   8
+CONSTANT: D3D10_1_VS_INPUT_REGISTER_COUNT                         32
+CONSTANT: D3D10_1_VS_OUTPUT_REGISTER_COUNT                        32
+
+CONSTANT: D3D10_FEATURE_LEVEL_10_0    HEX: a000
+CONSTANT: D3D10_FEATURE_LEVEL_10_1    HEX: a100
+CONSTANT: D3D10_FEATURE_LEVEL_9_1     HEX: 9100
+CONSTANT: D3D10_FEATURE_LEVEL_9_2     HEX: 9200
+CONSTANT: D3D10_FEATURE_LEVEL_9_3     HEX: 9300
+TYPEDEF: int D3D10_FEATURE_LEVEL1
+
+STRUCT: D3D10_RENDER_TARGET_BLEND_DESC1
+    { BlendEnable           BOOL           }
+    { SrcBlend              D3D10_BLEND    }
+    { DestBlend             D3D10_BLEND    }
+    { BlendOp               D3D10_BLEND_OP }
+    { SrcBlendAlpha         D3D10_BLEND    }
+    { DestBlendAlpha        D3D10_BLEND    }
+    { BlendOpAlpha          D3D10_BLEND_OP }
+    { RenderTargetWriteMask BYTE           } ;
+
+STRUCT: D3D10_BLEND_DESC1
+    { AlphaToCoverageEnable  BOOL                               }
+    { IndependentBlendEnable BOOL                               }
+    { RenderTarget           D3D10_RENDER_TARGET_BLEND_DESC1[8] } ;
+
+COM-INTERFACE: ID3D10BlendState1 ID3D10BlendState {EDAD8D99-8A35-4d6d-8566-2EA276CDE161}
+    void GetDesc1 ( D3D10_BLEND_DESC1* pDesc ) ;
+
+STRUCT: D3D10_TEXCUBE_ARRAY_SRV1
+    { MostDetailedMip  UINT }
+    { MipLevels        UINT }
+    { First2DArrayFace UINT }
+    { NumCubes         UINT } ;
+
+CONSTANT: D3D10_1_SRV_DIMENSION_UNKNOWN           0
+CONSTANT: D3D10_1_SRV_DIMENSION_BUFFER            1
+CONSTANT: D3D10_1_SRV_DIMENSION_TEXTURE1D         2
+CONSTANT: D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY    3
+CONSTANT: D3D10_1_SRV_DIMENSION_TEXTURE2D         4
+CONSTANT: D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY    5
+CONSTANT: D3D10_1_SRV_DIMENSION_TEXTURE2DMS       6
+CONSTANT: D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY  7
+CONSTANT: D3D10_1_SRV_DIMENSION_TEXTURE3D         8
+CONSTANT: D3D10_1_SRV_DIMENSION_TEXTURECUBE       9
+CONSTANT: D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY  10
+TYPEDEF: int D3D10_SRV_DIMENSION1
+
+UNION-STRUCT: D3D10_SHADER_RESOURCE_VIEW_DESC1_UNION
+    { Buffer           D3D10_BUFFER_SRV         }
+    { Texture1D        D3D10_TEX1D_SRV          }
+    { Texture1DArray   D3D10_TEX1D_ARRAY_SRV    }
+    { Texture2D        D3D10_TEX2D_SRV          }
+    { Texture2DArray   D3D10_TEX2D_ARRAY_SRV    }
+    { Texture2DMS      D3D10_TEX2DMS_SRV        }
+    { Texture2DMSArray D3D10_TEX2DMS_ARRAY_SRV  }
+    { Texture3D        D3D10_TEX3D_SRV          }
+    { TextureCube      D3D10_TEXCUBE_SRV        }
+    { TextureCubeArray D3D10_TEXCUBE_ARRAY_SRV1 } ;
+STRUCT: D3D10_SHADER_RESOURCE_VIEW_DESC1
+    { Format        DXGI_FORMAT                            }
+    { ViewDimension D3D10_SRV_DIMENSION1                   }
+    { View          D3D10_SHADER_RESOURCE_VIEW_DESC1_UNION } ;
+
+COM-INTERFACE: ID3D10ShaderResourceView1 ID3D10ShaderResourceView {9B7E4C87-342C-4106-A19F-4F2704F689F0}
+    void GetDesc1 ( D3D10_SHADER_RESOURCE_VIEW_DESC1* pDesc ) ;
+
+CONSTANT: D3D10_STANDARD_MULTISAMPLE_PATTERN  HEX: ffffffff
+CONSTANT: D3D10_CENTER_MULTISAMPLE_PATTERN    HEX: fffffffe
+TYPEDEF: int D3D10_STANDARD_MULTISAMPLE_QUALITY_LEVELS
+
+COM-INTERFACE: ID3D10Device1 ID3D10Device {9B7E4C8F-342C-4106-A19F-4F2704F689F0}
+    HRESULT CreateShaderResourceView1 (
+        ID3D10Resource*                   pResource,
+        D3D10_SHADER_RESOURCE_VIEW_DESC1* pDesc,
+        ID3D10ShaderResourceView1**       ppSRView )
+    HRESULT CreateBlendState1 (
+        D3D10_BLEND_DESC1*  pBlendStateDesc,
+        ID3D10BlendState1** ppBlendState )
+    D3D10_FEATURE_LEVEL1 GetFeatureLevel ( ) ;
+
+CONSTANT: D3D10_1_SDK_VERSION HEX: 20
+
+FUNCTION: HRESULT D3D10CreateDevice1 (
+    IDXGIAdapter*        pAdapter,
+    D3D10_DRIVER_TYPE    DriverType,
+    HMODULE              Software,
+    UINT                 Flags,
+    D3D10_FEATURE_LEVEL1 HardwareLevel,
+    UINT                 SDKVersion,
+    ID3D10Device1**      ppDevice ) ;
+
+FUNCTION: HRESULT D3D10CreateDeviceAndSwapChain1 (
+    IDXGIAdapter*         pAdapter,
+    D3D10_DRIVER_TYPE     DriverType,
+    HMODULE               Software,
+    UINT                  Flags,
+    D3D10_FEATURE_LEVEL1  HardwareLevel,
+    UINT                  SDKVersion,
+    DXGI_SWAP_CHAIN_DESC* pSwapChainDesc,
+    IDXGISwapChain**      ppSwapChain,
+    ID3D10Device1**       ppDevice ) ;
diff --git a/basis/windows/directx/d3d10_1/summary.txt b/basis/windows/directx/d3d10_1/summary.txt
new file mode 100644 (file)
index 0000000..922e807
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 10.1 bindings. Corresponds to d3d10_1.h.
diff --git a/basis/windows/directx/d3d10_1/tags.txt b/basis/windows/directx/d3d10_1/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3d10_1shader/authors.txt b/basis/windows/directx/d3d10_1shader/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3d10_1shader/d3d10_1shader.factor b/basis/windows/directx/d3d10_1shader/d3d10_1shader.factor
new file mode 100644 (file)
index 0000000..4664b90
--- /dev/null
@@ -0,0 +1,161 @@
+USING: alien.c-types alien.syntax classes.struct windows.com
+windows.com.syntax windows.directx.d3d10 windows.directx.d3d10shader
+windows.types ;
+IN: windows.directx.d3d10_1shader
+
+LIBRARY: d3d10_1
+
+CONSTANT: D3D10_SHADER_DEBUG_REG_INPUT              0
+CONSTANT: D3D10_SHADER_DEBUG_REG_OUTPUT             1
+CONSTANT: D3D10_SHADER_DEBUG_REG_CBUFFER            2
+CONSTANT: D3D10_SHADER_DEBUG_REG_TBUFFER            3
+CONSTANT: D3D10_SHADER_DEBUG_REG_TEMP               4
+CONSTANT: D3D10_SHADER_DEBUG_REG_TEMPARRAY          5
+CONSTANT: D3D10_SHADER_DEBUG_REG_TEXTURE            6
+CONSTANT: D3D10_SHADER_DEBUG_REG_SAMPLER            7
+CONSTANT: D3D10_SHADER_DEBUG_REG_IMMEDIATECBUFFER   8
+CONSTANT: D3D10_SHADER_DEBUG_REG_LITERAL            9
+CONSTANT: D3D10_SHADER_DEBUG_REG_UNUSED             10
+CONSTANT: D3D11_SHADER_DEBUG_REG_INTERFACE_POINTERS 11
+CONSTANT: D3D10_SHADER_DEBUG_REG_FORCE_DWORD        HEX: 7fffffff
+TYPEDEF: int D3D10_SHADER_DEBUG_REGTYPE
+
+CONSTANT: D3D10_SHADER_DEBUG_SCOPE_GLOBAL      0
+CONSTANT: D3D10_SHADER_DEBUG_SCOPE_BLOCK       1
+CONSTANT: D3D10_SHADER_DEBUG_SCOPE_FORLOOP     2
+CONSTANT: D3D10_SHADER_DEBUG_SCOPE_STRUCT      3
+CONSTANT: D3D10_SHADER_DEBUG_SCOPE_FUNC_PARAMS 4
+CONSTANT: D3D10_SHADER_DEBUG_SCOPE_STATEBLOCK  5    
+CONSTANT: D3D10_SHADER_DEBUG_SCOPE_NAMESPACE   6
+CONSTANT: D3D10_SHADER_DEBUG_SCOPE_ANNOTATION  7
+CONSTANT: D3D10_SHADER_DEBUG_SCOPE_FORCE_DWORD HEX: 7fffffff
+TYPEDEF: int D3D10_SHADER_DEBUG_SCOPETYPE
+
+CONSTANT: D3D10_SHADER_DEBUG_VAR_VARIABLE    0
+CONSTANT: D3D10_SHADER_DEBUG_VAR_FUNCTION    1
+CONSTANT: D3D10_SHADER_DEBUG_VAR_FORCE_DWORD HEX: 7fffffff
+TYPEDEF: int D3D10_SHADER_DEBUG_VARTYPE
+
+STRUCT: D3D10_SHADER_DEBUG_TOKEN_INFO
+    { File        UINT }
+    { Line        UINT }
+    { Column      UINT }
+    { TokenLength UINT }
+    { TokenId     UINT } ;
+
+STRUCT: D3D10_SHADER_DEBUG_VAR_INFO
+    { TokenId        UINT                       }
+    { Type           D3D10_SHADER_VARIABLE_TYPE }
+    { Register       UINT                       }
+    { Component      UINT                       }
+    { ScopeVar       UINT                       }
+    { ScopeVarOffset UINT                       } ;
+
+STRUCT: D3D10_SHADER_DEBUG_INPUT_INFO
+    { Var                UINT                       }
+    { InitialRegisterSet D3D10_SHADER_DEBUG_REGTYPE }
+    { InitialBank        UINT                       }
+    { InitialRegister    UINT                       }
+    { InitialComponent   UINT                       }
+    { InitialValue       UINT                       } ;
+
+STRUCT: D3D10_SHADER_DEBUG_SCOPEVAR_INFO
+    { TokenId           UINT                        }
+    { VarType           D3D10_SHADER_DEBUG_VARTYPE  }
+    { Class             D3D10_SHADER_VARIABLE_CLASS }
+    { Rows              UINT                        }
+    { Columns           UINT                        }
+    { StructMemberScope UINT                        }
+    { uArrayIndices     UINT                        }
+    { ArrayElements     UINT                        }
+    { ArrayStrides      UINT                        }
+    { uVariables        UINT                        }
+    { uFirstVariable    UINT                        } ;
+
+STRUCT: D3D10_SHADER_DEBUG_SCOPE_INFO
+    { ScopeType    D3D10_SHADER_DEBUG_SCOPETYPE }
+    { Name         UINT                         }
+    { uNameLen     UINT                         }
+    { uVariables   UINT                         }
+    { VariableData UINT                         } ;
+
+STRUCT: D3D10_SHADER_DEBUG_OUTPUTVAR
+    { Var           UINT  }
+    { uValueMin     UINT  }
+    { uValueMax     UINT  }
+    { iValueMin     INT   }
+    { iValueMax     INT   }
+    { fValueMin     FLOAT }
+    { fValueMax     FLOAT }
+    { bNaNPossible  BOOL  }
+    { bInfPossible  BOOL  } ;
+
+STRUCT: D3D10_SHADER_DEBUG_OUTPUTREG_INFO
+    { OutputRegisterSet D3D10_SHADER_DEBUG_REGTYPE      }
+    { OutputReg         UINT                            }
+    { TempArrayReg      UINT                            }
+    { OutputComponents  UINT[4]                         }
+    { OutputVars        D3D10_SHADER_DEBUG_OUTPUTVAR[4] }
+    { IndexReg          UINT                            }
+    { IndexComp         UINT                            } ;
+
+STRUCT: D3D10_SHADER_DEBUG_INST_INFO
+    { Id               UINT                                 }
+    { Opcode           UINT                                 }
+    { uOutputs         UINT                                 }
+    { pOutputs         D3D10_SHADER_DEBUG_OUTPUTREG_INFO[2] }
+    { TokenId          UINT                                 }
+    { NestingLevel     UINT                                 }
+    { Scopes           UINT                                 }
+    { ScopeInfo        UINT                                 }
+    { AccessedVars     UINT                                 }
+    { AccessedVarsInfo UINT                                 } ;
+
+STRUCT: D3D10_SHADER_DEBUG_FILE_INFO
+    { FileName    UINT }
+    { FileNameLen UINT }
+    { FileData    UINT }
+    { FileLen     UINT } ;
+
+STRUCT: D3D10_SHADER_DEBUG_INFO
+    { Size              UINT }
+    { Creator           UINT }
+    { EntrypointName    UINT }
+    { ShaderTarget      UINT }
+    { CompileFlags      UINT }
+    { Files             UINT }
+    { FileInfo          UINT }
+    { Instructions      UINT }
+    { InstructionInfo   UINT }
+    { Variables         UINT }
+    { VariableInfo      UINT }
+    { InputVariables    UINT }
+    { InputVariableInfo UINT }
+    { Tokens            UINT }
+    { TokenInfo         UINT }
+    { Scopes            UINT }
+    { ScopeInfo         UINT }
+    { ScopeVariables    UINT }
+    { ScopeVariableInfo UINT }
+    { UintOffset        UINT }
+    { StringOffset      UINT } ;
+
+C-TYPE: ID3D10ShaderReflection1
+TYPEDEF: ID3D10ShaderReflection1* LPD3D10SHADERREFLECTION1
+
+COM-INTERFACE: ID3D10ShaderReflection1 IUnknown {C3457783-A846-47CE-9520-CEA6F66E7447}
+    HRESULT GetDesc ( D3D10_SHADER_DESC* pDesc )
+    ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByIndex ( UINT Index )
+    ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByName ( LPCSTR Name )
+    HRESULT GetResourceBindingDesc ( UINT ResourceIndex, D3D10_SHADER_INPUT_BIND_DESC* pDesc )
+    HRESULT GetInputParameterDesc ( UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC* pDesc )
+    HRESULT GetOutputParameterDesc ( UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC* pDesc )
+    ID3D10ShaderReflectionVariable* GetVariableByName ( LPCSTR Name )
+    HRESULT GetResourceBindingDescByName ( LPCSTR Name, D3D10_SHADER_INPUT_BIND_DESC* pDesc )
+    HRESULT GetMovInstructionCount ( UINT* pCount )
+    HRESULT GetMovcInstructionCount ( UINT* pCount )
+    HRESULT GetConversionInstructionCount ( UINT* pCount )
+    HRESULT GetBitwiseInstructionCount ( UINT* pCount )
+    HRESULT GetGSInputPrimitive ( D3D10_PRIMITIVE* pPrim )
+    HRESULT IsLevel9Shader ( BOOL* pbLevel9Shader )
+    HRESULT IsSampleFrequencyShader ( BOOL* pbSampleFrequency ) ;
diff --git a/basis/windows/directx/d3d10_1shader/summary.txt b/basis/windows/directx/d3d10_1shader/summary.txt
new file mode 100644 (file)
index 0000000..9189058
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 10.1 bindings. Corresponds to d3d10_1shader.h.
diff --git a/basis/windows/directx/d3d10_1shader/tags.txt b/basis/windows/directx/d3d10_1shader/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3d10effect/authors.txt b/basis/windows/directx/d3d10effect/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3d10effect/d3d10effect.factor b/basis/windows/directx/d3d10effect/d3d10effect.factor
new file mode 100644 (file)
index 0000000..5b4fbb4
--- /dev/null
@@ -0,0 +1,335 @@
+USING: alien.c-types alien.syntax classes.struct windows.com
+windows.com.syntax windows.directx.d3d10
+windows.directx.d3d10shader windows.types ;
+IN: windows.directx.d3d10effect
+
+LIBRARY: d3d10
+
+CONSTANT: D3D10_DST_SO_BUFFERS             1
+CONSTANT: D3D10_DST_OM_RENDER_TARGETS      2
+CONSTANT: D3D10_DST_OM_DEPTH_STENCIL_STATE 3
+CONSTANT: D3D10_DST_OM_BLEND_STATE         4
+CONSTANT: D3D10_DST_VS                     5
+CONSTANT: D3D10_DST_VS_SAMPLERS            6
+CONSTANT: D3D10_DST_VS_SHADER_RESOURCES    7
+CONSTANT: D3D10_DST_VS_CONSTANT_BUFFERS    8
+CONSTANT: D3D10_DST_GS                     9
+CONSTANT: D3D10_DST_GS_SAMPLERS            10
+CONSTANT: D3D10_DST_GS_SHADER_RESOURCES    11
+CONSTANT: D3D10_DST_GS_CONSTANT_BUFFERS    12
+CONSTANT: D3D10_DST_PS                     13
+CONSTANT: D3D10_DST_PS_SAMPLERS            14
+CONSTANT: D3D10_DST_PS_SHADER_RESOURCES    15
+CONSTANT: D3D10_DST_PS_CONSTANT_BUFFERS    16
+CONSTANT: D3D10_DST_IA_VERTEX_BUFFERS      17
+CONSTANT: D3D10_DST_IA_INDEX_BUFFER        18
+CONSTANT: D3D10_DST_IA_INPUT_LAYOUT        19
+CONSTANT: D3D10_DST_IA_PRIMITIVE_TOPOLOGY  20
+CONSTANT: D3D10_DST_RS_VIEWPORTS           21
+CONSTANT: D3D10_DST_RS_SCISSOR_RECTS       22
+CONSTANT: D3D10_DST_RS_RASTERIZER_STATE    23
+CONSTANT: D3D10_DST_PREDICATION            24
+TYPEDEF: int D3D10_DEVICE_STATE_TYPES
+
+STRUCT: D3D10_STATE_BLOCK_MASK
+    { VS                  BYTE    }
+    { VSSamplers          BYTE[2] }
+    { VSShaderResources   BYTE[8] }
+    { VSConstantBuffers   BYTE[2] }
+    { GS                  BYTE    }
+    { GSSamplers          BYTE[2] }
+    { GSShaderResources   BYTE[8] }
+    { GSConstantBuffers   BYTE[2] }
+    { PS                  BYTE    }
+    { PSSamplers          BYTE[2] }
+    { PSShaderResources   BYTE[8] }
+    { PSConstantBuffers   BYTE[2] }
+    { IAVertexBuffers     BYTE[2] }
+    { IAIndexBuffer       BYTE    }
+    { IAInputLayout       BYTE    }
+    { IAPrimitiveTopology BYTE    }
+    { OMRenderTargets     BYTE    }
+    { OMDepthStencilState BYTE    }
+    { OMBlendState        BYTE    }
+    { RSViewports         BYTE    }
+    { RSScissorRects      BYTE    }
+    { RSRasterizerState   BYTE    }
+    { SOBuffers           BYTE    }
+    { Predication         BYTE    } ;
+
+COM-INTERFACE: ID3D10StateBlock IUnknown {0803425A-57F5-4dd6-9465-A87570834A08}
+    HRESULT Capture ( )
+    HRESULT Apply ( )
+    HRESULT ReleaseAllDeviceObjects ( )
+    HRESULT GetDevice ( ID3D10Device** ppDevice ) ;
+TYPEDEF: ID3D10StateBlock* LPD3D10STATEBLOCK
+
+FUNCTION: HRESULT D3D10StateBlockMaskUnion ( D3D10_STATE_BLOCK_MASK* pA, D3D10_STATE_BLOCK_MASK* pB, D3D10_STATE_BLOCK_MASK* pResult ) ;
+FUNCTION: HRESULT D3D10StateBlockMaskIntersect ( D3D10_STATE_BLOCK_MASK* pA, D3D10_STATE_BLOCK_MASK* pB, D3D10_STATE_BLOCK_MASK* pResult ) ;
+FUNCTION: HRESULT D3D10StateBlockMaskDifference ( D3D10_STATE_BLOCK_MASK* pA, D3D10_STATE_BLOCK_MASK* pB, D3D10_STATE_BLOCK_MASK* pResult ) ;
+FUNCTION: HRESULT D3D10StateBlockMaskEnableCapture ( D3D10_STATE_BLOCK_MASK* pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength ) ;
+FUNCTION: HRESULT D3D10StateBlockMaskDisableCapture ( D3D10_STATE_BLOCK_MASK* pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength ) ;
+FUNCTION: HRESULT D3D10StateBlockMaskEnableAll ( D3D10_STATE_BLOCK_MASK* pMask ) ;
+FUNCTION: HRESULT D3D10StateBlockMaskDisableAll ( D3D10_STATE_BLOCK_MASK* pMask ) ;
+FUNCTION: BOOL    D3D10StateBlockMaskGetSetting ( D3D10_STATE_BLOCK_MASK* pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT Entry ) ;
+
+FUNCTION: HRESULT D3D10CreateStateBlock ( ID3D10Device* pDevice, D3D10_STATE_BLOCK_MASK* pStateBlockMask, ID3D10StateBlock** ppStateBlock ) ;
+
+CONSTANT: D3D10_EFFECT_COMPILE_CHILD_EFFECT             1
+CONSTANT: D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS           2
+CONSTANT: D3D10_EFFECT_SINGLE_THREADED                  8
+
+CONSTANT: D3D10_EFFECT_VARIABLE_POOLED                  1
+CONSTANT: D3D10_EFFECT_VARIABLE_ANNOTATION              2
+CONSTANT: D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT     4
+
+STRUCT: D3D10_EFFECT_TYPE_DESC
+    { TypeName        LPCSTR                      }
+    { Class           D3D10_SHADER_VARIABLE_CLASS }
+    { Type            D3D10_SHADER_VARIABLE_TYPE  }
+    { Elements        UINT                        }
+    { Members         UINT                        }
+    { Rows            UINT                        }
+    { Columns         UINT                        }
+    { PackedSize      UINT                        }
+    { UnpackedSize    UINT                        }
+    { Stride          UINT                        } ;
+
+COM-INTERFACE: ID3D10EffectType f {4E9E1DDC-CD9D-4772-A837-00180B9B88FD}
+    BOOL IsValid ( )
+    HRESULT GetDesc ( D3D10_EFFECT_TYPE_DESC* pDesc )
+    ID3D10EffectType* GetMemberTypeByIndex ( UINT Index )
+    ID3D10EffectType* GetMemberTypeByName ( LPCSTR Name )
+    ID3D10EffectType* GetMemberTypeBySemantic ( LPCSTR Semantic )
+    LPCSTR GetMemberName ( UINT Index )
+    LPCSTR GetMemberSemantic ( UINT Index ) ;
+TYPEDEF: ID3D10EffectType* LPD3D10EFFECTTYPE
+
+STRUCT: D3D10_EFFECT_VARIABLE_DESC
+    { Name                 LPCSTR }
+    { Semantic             LPCSTR }
+    { Flags                UINT   }
+    { Annotations          UINT   }
+    { BufferOffset         UINT   }
+    { ExplicitBindPoint    UINT   } ;
+
+COM-INTERFACE: ID3D10EffectVariable f {AE897105-00E6-45bf-BB8E-281DD6DB8E1B}
+    BOOL IsValid ( )
+    ID3D10EffectType* GetType ( )
+    HRESULT GetDesc ( D3D10_EFFECT_VARIABLE_DESC* pDesc )
+    ID3D10EffectVariable* GetAnnotationByIndex ( UINT Index )
+    ID3D10EffectVariable* GetAnnotationByName ( LPCSTR Name )
+    ID3D10EffectVariable* GetMemberByIndex ( UINT Index )
+    ID3D10EffectVariable* GetMemberByName ( LPCSTR Name )
+    ID3D10EffectVariable* GetMemberBySemantic ( LPCSTR Semantic )
+    ID3D10EffectVariable* GetElement ( UINT Index )
+    ID3D10EffectConstantBuffer* GetParentConstantBuffer ( )
+    ID3D10EffectScalarVariable* AsScalar ( )
+    ID3D10EffectVectorVariable* AsVector ( )
+    ID3D10EffectMatrixVariable* AsMatrix ( )
+    ID3D10EffectStringVariable* AsString ( )
+    ID3D10EffectShaderResourceVariable* AsShaderResource ( )
+    ID3D10EffectRenderTargetViewVariable* AsRenderTargetView ( )
+    ID3D10EffectDepthStencilViewVariable* AsDepthStencilView ( )
+    ID3D10EffectConstantBuffer* AsConstantBuffer ( )
+    ID3D10EffectShaderVariable* AsShader ( )
+    ID3D10EffectBlendVariable* AsBlend ( )
+    ID3D10EffectDepthStencilVariable* AsDepthStencil ( )
+    ID3D10EffectRasterizerVariable* AsRasterizer ( )
+    ID3D10EffectSamplerVariable* AsSampler ( )
+    HRESULT SetRawValue ( void* pData, UINT Offset, UINT Count )
+    HRESULT GetRawValue ( void* pData, UINT Offset, UINT Count ) ;
+TYPEDEF: ID3D10EffectVariable* LPD3D10EFFECTVARIABLE
+
+COM-INTERFACE: ID3D10EffectScalarVariable ID3D10EffectVariable {00E48F7B-D2C8-49e8-A86C-022DEE53431F}
+    HRESULT SetFloat ( float Value )
+    HRESULT GetFloat ( float* pValue )
+    HRESULT SetFloatArray ( float* pData, UINT Offset, UINT Count )
+    HRESULT GetFloatArray ( float* pData, UINT Offset, UINT Count )
+    HRESULT SetInt ( int Value )
+    HRESULT GetInt ( int* pValue )
+    HRESULT SetIntArray ( int* pData, UINT Offset, UINT Count )
+    HRESULT GetIntArray ( int* pData, UINT Offset, UINT Count )
+    HRESULT SetBool ( BOOL Value )
+    HRESULT GetBool ( BOOL* pValue )
+    HRESULT SetBoolArray ( BOOL* pData, UINT Offset, UINT Count )
+    HRESULT GetBoolArray ( BOOL* pData, UINT Offset, UINT Count ) ;
+TYPEDEF: ID3D10EffectScalarVariable* LPD3D10EFFECTSCALARVARIABLE
+
+COM-INTERFACE: ID3D10EffectVectorVariable ID3D10EffectVariable {62B98C44-1F82-4c67-BCD0-72CF8F217E81}
+    HRESULT SetBoolVector ( BOOL* pData )
+    HRESULT SetIntVector  ( int* pData )
+    HRESULT SetFloatVector ( float* pData )
+    HRESULT GetBoolVector ( BOOL* pData )
+    HRESULT GetIntVector  ( int* pData )
+    HRESULT GetFloatVector ( float *pData )
+    HRESULT SetBoolVectorArray ( BOOL* pData, UINT Offset, UINT Count )
+    HRESULT SetIntVectorArray  ( int* pData, UINT Offset, UINT Count )
+    HRESULT SetFloatVectorArray ( float* pData, UINT Offset, UINT Count )
+    HRESULT GetBoolVectorArray ( BOOL* pData, UINT Offset, UINT Count )
+    HRESULT GetIntVectorArray  ( int* pData, UINT Offset, UINT Count )
+    HRESULT GetFloatVectorArray ( float* pData, UINT Offset, UINT Count ) ;
+TYPEDEF: ID3D10EffectVectorVariable* LPD3D10EFFECTVECTORVARIABLE
+
+COM-INTERFACE: ID3D10EffectMatrixVariable ID3D10EffectVariable {50666C24-B82F-4eed-A172-5B6E7E8522E0}
+    HRESULT SetMatrix ( float* pData )
+    HRESULT GetMatrix ( float* pData )
+    HRESULT SetMatrixArray ( float* pData, UINT Offset, UINT Count )
+    HRESULT GetMatrixArray ( float* pData, UINT Offset, UINT Count )
+    HRESULT SetMatrixTranspose ( float* pData )
+    HRESULT GetMatrixTranspose ( float* pData )
+    HRESULT SetMatrixTransposeArray ( float* pData, UINT Offset, UINT Count )
+    HRESULT GetMatrixTransposeArray ( float* pData, UINT Offset, UINT Count ) ;
+TYPEDEF: ID3D10EffectMatrixVariable* LPD3D10EFFECTMATRIXVARIABLE
+
+
+COM-INTERFACE: ID3D10EffectStringVariable ID3D10EffectVariable {71417501-8DF9-4e0a-A78A-255F9756BAFF}
+    HRESULT GetString ( LPCSTR* ppString )
+    HRESULT GetStringArray ( LPCSTR* ppStrings, UINT Offset, UINT Count ) ;
+TYPEDEF: ID3D10EffectStringVariable* LPD3D10EFFECTSTRINGVARIABLE
+
+COM-INTERFACE: ID3D10EffectShaderResourceVariable ID3D10EffectVariable {C0A7157B-D872-4b1d-8073-EFC2ACD4B1FC}
+    HRESULT SetResource ( ID3D10ShaderResourceView* pResource )
+    HRESULT GetResource ( ID3D10ShaderResourceView** ppResource )
+    HRESULT SetResourceArray ( ID3D10ShaderResourceView** ppResources, UINT Offset, UINT Count )
+    HRESULT GetResourceArray ( ID3D10ShaderResourceView** ppResources, UINT Offset, UINT Count ) ;
+TYPEDEF: ID3D10EffectShaderResourceVariable* LPD3D10EFFECTSHADERRESOURCEVARIABLE
+
+COM-INTERFACE: ID3D10EffectRenderTargetViewVariable ID3D10EffectVariable {28CA0CC3-C2C9-40bb-B57F-67B737122B17}
+    HRESULT SetRenderTarget ( ID3D10RenderTargetView* pResource )
+    HRESULT GetRenderTarget ( ID3D10RenderTargetView** ppResource )
+    HRESULT SetRenderTargetArray ( ID3D10RenderTargetView** ppResources, UINT Offset, UINT Count )
+    HRESULT GetRenderTargetArray ( ID3D10RenderTargetView** ppResources, UINT Offset, UINT Count ) ;
+TYPEDEF: ID3D10EffectRenderTargetViewVariable* LPD3D10EFFECTRENDERTARGETVIEWVARIABLE
+
+COM-INTERFACE: ID3D10EffectDepthStencilViewVariable ID3D10EffectVariable {3E02C918-CC79-4985-B622-2D92AD701623}
+    HRESULT SetDepthStencil ( ID3D10DepthStencilView* pResource )
+    HRESULT GetDepthStencil ( ID3D10DepthStencilView** ppResource )
+    HRESULT SetDepthStencilArray ( ID3D10DepthStencilView** ppResources, UINT Offset, UINT Count )
+    HRESULT GetDepthStencilArray ( ID3D10DepthStencilView** ppResources, UINT Offset, UINT Count ) ;
+TYPEDEF: ID3D10EffectDepthStencilViewVariable* LPD3D10EFFECTDEPTHSTENCILVIEWVARIABLE
+
+COM-INTERFACE: ID3D10EffectConstantBuffer ID3D10EffectVariable {56648F4D-CC8B-4444-A5AD-B5A3D76E91B3}
+    HRESULT SetConstantBuffer ( ID3D10Buffer* pConstantBuffer )
+    HRESULT GetConstantBuffer ( ID3D10Buffer** ppConstantBuffer )
+    HRESULT SetTextureBuffer ( ID3D10ShaderResourceView* pTextureBuffer )
+    HRESULT GetTextureBuffer ( ID3D10ShaderResourceView** ppTextureBuffer ) ;
+TYPEDEF: ID3D10EffectConstantBuffer* LPD3D10EFFECTCONSTANTBUFFER
+
+STRUCT: D3D10_EFFECT_SHADER_DESC
+    { pInputSignature           BYTE*  }
+    { IsInline                  BOOL   }
+    { pBytecode                 BYTE*  }
+    { BytecodeLength            UINT   }
+    { SODecl                    LPCSTR }
+    { NumInputSignatureEntries  UINT   }
+    { NumOutputSignatureEntries UINT   } ;
+
+COM-INTERFACE: ID3D10EffectShaderVariable ID3D10EffectVariable {80849279-C799-4797-8C33-0407A07D9E06}
+    HRESULT GetShaderDesc ( UINT ShaderIndex, D3D10_EFFECT_SHADER_DESC* pDesc )
+    HRESULT GetVertexShader ( UINT ShaderIndex, ID3D10VertexShader** ppVS )
+    HRESULT GetGeometryShader ( UINT ShaderIndex, ID3D10GeometryShader** ppGS )
+    HRESULT GetPixelShader ( UINT ShaderIndex, ID3D10PixelShader** ppPS )
+    HRESULT GetInputSignatureElementDesc ( UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC* pDesc )
+    HRESULT GetOutputSignatureElementDesc ( UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC* pDesc ) ;
+TYPEDEF: ID3D10EffectShaderVariable* LPD3D10EFFECTSHADERVARIABLE
+
+COM-INTERFACE: ID3D10EffectBlendVariable ID3D10EffectVariable {1FCD2294-DF6D-4eae-86B3-0E9160CFB07B}
+    HRESULT GetBlendState ( UINT Index, ID3D10BlendState** ppBlendState )
+    HRESULT GetBackingStore ( UINT Index, D3D10_BLEND_DESC* pBlendDesc ) ;
+TYPEDEF: ID3D10EffectBlendVariable* LPD3D10EFFECTBLENDVARIABLE
+
+COM-INTERFACE: ID3D10EffectDepthStencilVariable ID3D10EffectVariable {AF482368-330A-46a5-9A5C-01C71AF24C8D}
+    HRESULT GetDepthStencilState ( UINT Index, ID3D10DepthStencilState** ppDepthStencilState )
+    HRESULT GetBackingStore ( UINT Index, D3D10_DEPTH_STENCIL_DESC* pDepthStencilDesc ) ;
+TYPEDEF: ID3D10EffectDepthStencilVariable* LPD3D10EFFECTDEPTHSTENCILVARIABLE
+
+COM-INTERFACE: ID3D10EffectRasterizerVariable ID3D10EffectVariable {21AF9F0E-4D94-4ea9-9785-2CB76B8C0B34}
+    HRESULT GetRasterizerState ( UINT Index, ID3D10RasterizerState** ppRasterizerState )
+    HRESULT GetBackingStore ( UINT Index, D3D10_RASTERIZER_DESC* pRasterizerDesc ) ;
+TYPEDEF: ID3D10EffectRasterizerVariable* LPD3D10EFFECTRASTERIZERVARIABLE
+
+COM-INTERFACE: ID3D10EffectSamplerVariable ID3D10EffectVariable {6530D5C7-07E9-4271-A418-E7CE4BD1E480}
+    HRESULT GetSampler ( UINT Index, ID3D10SamplerState** ppSampler )
+    HRESULT GetBackingStore ( UINT Index, D3D10_SAMPLER_DESC* pSamplerDesc ) ;
+TYPEDEF: ID3D10EffectSamplerVariable* LPD3D10EFFECTSAMPLERVARIABLE
+    
+STRUCT: D3D10_PASS_DESC
+    { Name                 LPCSTR   }
+    { Annotations          UINT     }
+    { pIAInputSignature    BYTE*    }
+    { IAInputSignatureSize SIZE_T   }
+    { StencilRef           UINT     }
+    { SampleMask           UINT     }
+    { BlendFactor          FLOAT[4] } ;
+
+STRUCT: D3D10_PASS_SHADER_DESC
+    { pShaderVariable                    ID3D10EffectShaderVariable* }
+    { ShaderIndex                        UINT                        } ;
+
+COM-INTERFACE: ID3D10EffectPass f {5CFBEB89-1A06-46e0-B282-E3F9BFA36A54}
+    BOOL IsValid ( )
+    HRESULT GetDesc ( D3D10_PASS_DESC* pDesc )
+    HRESULT GetVertexShaderDesc ( D3D10_PASS_SHADER_DESC* pDesc )
+    HRESULT GetGeometryShaderDesc ( D3D10_PASS_SHADER_DESC* pDesc )
+    HRESULT GetPixelShaderDesc ( D3D10_PASS_SHADER_DESC* pDesc )
+    ID3D10EffectVariable* GetAnnotationByIndex ( UINT Index )
+    ID3D10EffectVariable* GetAnnotationByName ( LPCSTR Name )
+    HRESULT Apply ( UINT Flags )
+    HRESULT ComputeStateBlockMask ( D3D10_STATE_BLOCK_MASK* pStateBlockMask ) ;
+TYPEDEF: ID3D10EffectPass* LPD3D10EFFECTPASS
+
+STRUCT: D3D10_TECHNIQUE_DESC
+    { Name           LPCSTR }
+    { Passes         UINT   }
+    { Annotations    UINT   } ;
+
+COM-INTERFACE: ID3D10EffectTechnique f {DB122CE8-D1C9-4292-B237-24ED3DE8B175}
+    BOOL IsValid ( )
+    HRESULT GetDesc ( D3D10_TECHNIQUE_DESC* pDesc )
+    ID3D10EffectVariable* GetAnnotationByIndex ( UINT Index )
+    ID3D10EffectVariable* GetAnnotationByName ( LPCSTR Name )
+    ID3D10EffectPass* GetPassByIndex ( UINT Index )
+    ID3D10EffectPass* GetPassByName ( LPCSTR Name )
+    HRESULT ComputeStateBlockMask ( D3D10_STATE_BLOCK_MASK* pStateBlockMask ) ;
+TYPEDEF: ID3D10EffectTechnique* LPD3D10EFFECTTECHNIQUE
+
+STRUCT: D3D10_EFFECT_DESC
+    { IsChildEffect            BOOL }
+    { ConstantBuffers          UINT }
+    { SharedConstantBuffers    UINT }
+    { GlobalVariables          UINT }
+    { SharedGlobalVariables    UINT }
+    { Techniques               UINT } ;
+
+COM-INTERFACE: ID3D10Effect IUnknown {51B0CA8B-EC0B-4519-870D-8EE1CB5017C7}
+    BOOL IsValid ( )
+    BOOL IsPool ( )
+    HRESULT GetDevice ( ID3D10Device** ppDevice )
+    HRESULT GetDesc ( D3D10_EFFECT_DESC* pDesc )
+    ID3D10EffectConstantBuffer* GetConstantBufferByIndex ( UINT Index )
+    ID3D10EffectConstantBuffer* GetConstantBufferByName ( LPCSTR Name )
+    ID3D10EffectVariable* GetVariableByIndex ( UINT Index )
+    ID3D10EffectVariable* GetVariableByName ( LPCSTR Name )
+    ID3D10EffectVariable* GetVariableBySemantic ( LPCSTR Semantic )
+    ID3D10EffectTechnique* GetTechniqueByIndex ( UINT Index )
+    ID3D10EffectTechnique* GetTechniqueByName ( LPCSTR Name )
+    HRESULT Optimize ( )
+    BOOL IsOptimized ( ) ;
+TYPEDEF: ID3D10Effect* LPD3D10EFFECT
+
+COM-INTERFACE: ID3D10EffectPool IUnknown {9537AB04-3250-412e-8213-FCD2F8677933}
+    ID3D10Effect* AsEffect ( ) ;
+TYPEDEF: ID3D10EffectPool* LPD3D10EFFECTPOOL
+
+FUNCTION: HRESULT D3D10CompileEffectFromMemory ( void* pData, SIZE_T DataLength, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines,
+    ID3D10Include* pInclude, UINT HLSLFlags, UINT FXFlags,
+    ID3D10Blob** ppCompiledEffect, ID3D10Blob** ppErrors ) ;
+
+FUNCTION: HRESULT D3D10CreateEffectFromMemory ( void* pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device* pDevice,
+    ID3D10EffectPool* pEffectPool, ID3D10Effect** ppEffect ) ;
+
+FUNCTION: HRESULT D3D10CreateEffectPoolFromMemory ( void* pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device* pDevice,
+    ID3D10EffectPool** ppEffectPool ) ;
+
+FUNCTION: HRESULT D3D10DisassembleEffect ( ID3D10Effect* pEffect, BOOL EnableColorCode, ID3D10Blob** ppDisassembly ) ;
diff --git a/basis/windows/directx/d3d10effect/summary.txt b/basis/windows/directx/d3d10effect/summary.txt
new file mode 100644 (file)
index 0000000..1fc06d8
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 10 bindings. Corresponds to d3d10effect.h.
diff --git a/basis/windows/directx/d3d10effect/tags.txt b/basis/windows/directx/d3d10effect/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3d10misc/authors.txt b/basis/windows/directx/d3d10misc/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3d10misc/d3d10misc.factor b/basis/windows/directx/d3d10misc/d3d10misc.factor
new file mode 100644 (file)
index 0000000..b6f5f12
--- /dev/null
@@ -0,0 +1,39 @@
+USING: alien.c-types alien.syntax windows.com windows.com.syntax
+windows.directx.dxgi windows.types alien.libraries ;
+IN: windows.directx.d3d10misc
+
+LIBRARY: d3d10
+
+C-TYPE: ID3D10Blob
+TYPEDEF: ID3D10Blob* LPD3D10BLOB
+
+COM-INTERFACE: ID3D10Blob IUnknown {8BA5FB08-5195-40e2-AC58-0D989C3A0102}
+    LPVOID GetBufferPointer ( )
+    SIZE_T GetBufferSize ( ) ;
+
+CONSTANT: D3D10_DRIVER_TYPE_HARDWARE  0
+CONSTANT: D3D10_DRIVER_TYPE_REFERENCE 1
+CONSTANT: D3D10_DRIVER_TYPE_NULL      2
+CONSTANT: D3D10_DRIVER_TYPE_SOFTWARE  3
+CONSTANT: D3D10_DRIVER_TYPE_WARP      5
+TYPEDEF: int D3D10_DRIVER_TYPE
+
+FUNCTION: HRESULT D3D10CreateDevice (
+    IDXGIAdapter*     pAdapter,
+    D3D10_DRIVER_TYPE DriverType,
+    HMODULE           Software,
+    UINT              Flags,
+    UINT              SDKVersion,
+    ID3D10Device**    ppDevice ) ;
+
+FUNCTION: HRESULT D3D10CreateDeviceAndSwapChain (
+    IDXGIAdapter*         pAdapter,
+    D3D10_DRIVER_TYPE     DriverType,
+    HMODULE               Software,
+    UINT                  Flags,
+    UINT                  SDKVersion,
+    DXGI_SWAP_CHAIN_DESC* pSwapChainDesc,
+    IDXGISwapChain**      ppSwapChain,    
+    ID3D10Device**        ppDevice ) ;
+
+FUNCTION: HRESULT D3D10CreateBlob ( SIZE_T NumBytes, LPD3D10BLOB* ppBuffer ) ;
diff --git a/basis/windows/directx/d3d10misc/summary.txt b/basis/windows/directx/d3d10misc/summary.txt
new file mode 100644 (file)
index 0000000..3d283f4
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 10 bindings. Corresponds to d3d10misc.h.
diff --git a/basis/windows/directx/d3d10misc/tags.txt b/basis/windows/directx/d3d10misc/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3d10shader/authors.txt b/basis/windows/directx/d3d10shader/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3d10shader/d3d10shader.factor b/basis/windows/directx/d3d10shader/d3d10shader.factor
new file mode 100644 (file)
index 0000000..4507441
--- /dev/null
@@ -0,0 +1,278 @@
+USING: alien.syntax alien.c-types classes.struct windows.types windows.com
+windows.com.syntax windows.directx.d3d10 ;
+IN: windows.directx.d3d10shader
+
+LIBRARY: d3d10
+
+CONSTANT: D3D10_SHADER_DEBUG                          1
+CONSTANT: D3D10_SHADER_SKIP_VALIDATION                2
+CONSTANT: D3D10_SHADER_SKIP_OPTIMIZATION              4
+CONSTANT: D3D10_SHADER_PACK_MATRIX_ROW_MAJOR          8
+CONSTANT: D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR       16
+CONSTANT: D3D10_SHADER_PARTIAL_PRECISION              32
+CONSTANT: D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT       64
+CONSTANT: D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT       128
+CONSTANT: D3D10_SHADER_NO_PRESHADER                   256
+CONSTANT: D3D10_SHADER_AVOID_FLOW_CONTROL             512
+CONSTANT: D3D10_SHADER_PREFER_FLOW_CONTROL            1024
+CONSTANT: D3D10_SHADER_ENABLE_STRICTNESS              2048
+CONSTANT: D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY 4096
+CONSTANT: D3D10_SHADER_IEEE_STRICTNESS                8192
+CONSTANT: D3D10_SHADER_WARNINGS_ARE_ERRORS            262144
+
+CONSTANT: D3D10_SHADER_OPTIMIZATION_LEVEL0 16384
+CONSTANT: D3D10_SHADER_OPTIMIZATION_LEVEL1 0
+CONSTANT: D3D10_SHADER_OPTIMIZATION_LEVEL2 49152
+CONSTANT: D3D10_SHADER_OPTIMIZATION_LEVEL3 32768
+
+STRUCT: D3D10_SHADER_MACRO
+    { Name       LPCSTR }
+    { Definition LPCSTR } ;
+TYPEDEF: D3D10_SHADER_MACRO* LPD3D10_SHADER_MACRO
+
+CONSTANT: D3D10_SVC_SCALAR            0
+CONSTANT: D3D10_SVC_VECTOR            1
+CONSTANT: D3D10_SVC_MATRIX_ROWS       2
+CONSTANT: D3D10_SVC_MATRIX_COLUMNS    3
+CONSTANT: D3D10_SVC_OBJECT            4
+CONSTANT: D3D10_SVC_STRUCT            5
+CONSTANT: D3D11_SVC_INTERFACE_CLASS   6
+CONSTANT: D3D11_SVC_INTERFACE_POINTER 7
+CONSTANT: D3D10_SVC_FORCE_DWORD       HEX: 7fffffff
+TYPEDEF: int D3D10_SHADER_VARIABLE_CLASS
+TYPEDEF: D3D10_SHADER_VARIABLE_CLASS* LPD3D10_SHADER_VARIABLE_CLASS
+
+CONSTANT: D3D10_SVF_USERPACKED        1
+CONSTANT: D3D10_SVF_USED              2
+CONSTANT: D3D11_SVF_INTERFACE_POINTER 4
+CONSTANT: D3D10_SVF_FORCE_DWORD       HEX: 7fffffff
+TYPEDEF: int D3D10_SHADER_VARIABLE_FLAGS
+TYPEDEF: D3D10_SHADER_VARIABLE_FLAGS* LPD3D10_SHADER_VARIABLE_FLAGS
+
+CONSTANT: D3D10_SVT_VOID              0
+CONSTANT: D3D10_SVT_BOOL              1
+CONSTANT: D3D10_SVT_INT               2
+CONSTANT: D3D10_SVT_FLOAT             3
+CONSTANT: D3D10_SVT_STRING            4
+CONSTANT: D3D10_SVT_TEXTURE           5
+CONSTANT: D3D10_SVT_TEXTURE1D         6
+CONSTANT: D3D10_SVT_TEXTURE2D         7
+CONSTANT: D3D10_SVT_TEXTURE3D         8
+CONSTANT: D3D10_SVT_TEXTURECUBE       9
+CONSTANT: D3D10_SVT_SAMPLER           10
+CONSTANT: D3D10_SVT_PIXELSHADER       15
+CONSTANT: D3D10_SVT_VERTEXSHADER      16
+CONSTANT: D3D10_SVT_UINT              19
+CONSTANT: D3D10_SVT_UINT8             20
+CONSTANT: D3D10_SVT_GEOMETRYSHADER    21
+CONSTANT: D3D10_SVT_RASTERIZER        22
+CONSTANT: D3D10_SVT_DEPTHSTENCIL      23
+CONSTANT: D3D10_SVT_BLEND             24
+CONSTANT: D3D10_SVT_BUFFER            25
+CONSTANT: D3D10_SVT_CBUFFER           26
+CONSTANT: D3D10_SVT_TBUFFER           27
+CONSTANT: D3D10_SVT_TEXTURE1DARRAY    28
+CONSTANT: D3D10_SVT_TEXTURE2DARRAY    29
+CONSTANT: D3D10_SVT_RENDERTARGETVIEW  30
+CONSTANT: D3D10_SVT_DEPTHSTENCILVIEW  31
+CONSTANT: D3D10_SVT_TEXTURE2DMS       32
+CONSTANT: D3D10_SVT_TEXTURE2DMSARRAY  33
+CONSTANT: D3D10_SVT_TEXTURECUBEARRAY  34
+CONSTANT: D3D11_SVT_HULLSHADER        35
+CONSTANT: D3D11_SVT_DOMAINSHADER      36
+CONSTANT: D3D11_SVT_INTERFACE_POINTER 37
+CONSTANT: D3D11_SVT_COMPUTESHADER     38
+CONSTANT: D3D11_SVT_DOUBLE            39
+CONSTANT: D3D10_SVT_FORCE_DWORD       HEX: 7ffffff
+TYPEDEF: int D3D10_SHADER_VARIABLE_TYPE
+TYPEDEF: D3D10_SHADER_VARIABLE_TYPE* LPD3D10_SHADER_VARIABLE_TYPE
+
+CONSTANT: D3D10_SIF_USERPACKED          1
+CONSTANT: D3D10_SIF_COMPARISON_SAMPLER  2
+CONSTANT: D3D10_SIF_TEXTURE_COMPONENT_0 4
+CONSTANT: D3D10_SIF_TEXTURE_COMPONENT_1 8
+CONSTANT: D3D10_SIF_TEXTURE_COMPONENTS  12
+CONSTANT: D3D10_SIF_FORCE_DWORD         HEX: 7ffffff
+TYPEDEF: int D3D10_SHADER_INPUT_FLAGS
+TYPEDEF: D3D10_SHADER_INPUT_FLAGS* LPD3D10_SHADER_INPUT_FLAGS
+
+CONSTANT: D3D10_SIT_CBUFFER                       0
+CONSTANT: D3D10_SIT_TBUFFER                       1
+CONSTANT: D3D10_SIT_TEXTURE                       2
+CONSTANT: D3D10_SIT_SAMPLER                       3
+CONSTANT: D3D11_SIT_UAV_RWTYPED                   4
+CONSTANT: D3D11_SIT_STRUCTURED                    5
+CONSTANT: D3D11_SIT_UAV_RWSTRUCTURED              6
+CONSTANT: D3D11_SIT_BYTEADDRESS                   7
+CONSTANT: D3D11_SIT_UAV_RWBYTEADDRESS             8
+CONSTANT: D3D11_SIT_UAV_APPEND_STRUCTURED         9
+CONSTANT: D3D11_SIT_UAV_CONSUME_STRUCTURED        10
+CONSTANT: D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER 11
+TYPEDEF: int D3D10_SHADER_INPUT_TYPE
+TYPEDEF: D3D10_SHADER_INPUT_TYPE* LPD3D10_SHADER_INPUT_TYPE
+
+CONSTANT: D3D10_CBF_USERPACKED  1
+CONSTANT: D3D10_CBF_FORCE_DWORD HEX: 7fffffff
+TYPEDEF: int D3D10_SHADER_CBUFFER_FLAGS
+TYPEDEF: D3D10_SHADER_CBUFFER_FLAGS* LPD3D10_SHADER_CBUFFER_FLAGS
+
+CONSTANT: D3D10_CT_CBUFFER 0
+CONSTANT: D3D10_CT_TBUFFER 1
+TYPEDEF: int D3D10_CBUFFER_TYPE
+TYPEDEF: D3D10_CBUFFER_TYPE* LPD3D10_CBUFFER_TYPE
+
+CONSTANT: D3D10_NAME_UNDEFINED                     0
+CONSTANT: D3D10_NAME_POSITION                      1
+CONSTANT: D3D10_NAME_CLIP_DISTANCE                 2
+CONSTANT: D3D10_NAME_CULL_DISTANCE                 3
+CONSTANT: D3D10_NAME_RENDER_TARGET_ARRAY_INDEX     4
+CONSTANT: D3D10_NAME_VIEWPORT_ARRAY_INDEX          5
+CONSTANT: D3D10_NAME_VERTEX_ID                     6
+CONSTANT: D3D10_NAME_PRIMITIVE_ID                  7
+CONSTANT: D3D10_NAME_INSTANCE_ID                   8
+CONSTANT: D3D10_NAME_IS_FRONT_FACE                 9
+CONSTANT: D3D10_NAME_SAMPLE_INDEX                  10
+CONSTANT: D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR    11
+CONSTANT: D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR  12
+CONSTANT: D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR     13
+CONSTANT: D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR   14
+CONSTANT: D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR  15
+CONSTANT: D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR 16
+CONSTANT: D3D10_NAME_TARGET                        64
+CONSTANT: D3D10_NAME_DEPTH                         65
+CONSTANT: D3D10_NAME_COVERAGE                      66
+CONSTANT: D3D11_NAME_DEPTH_GREATER_EQUAL           67
+CONSTANT: D3D11_NAME_DEPTH_LESS_EQUAL              68
+TYPEDEF: int D3D10_NAME
+
+CONSTANT: D3D10_RETURN_TYPE_UNORM 1
+CONSTANT: D3D10_RETURN_TYPE_SNORM 2
+CONSTANT: D3D10_RETURN_TYPE_SINT  3
+CONSTANT: D3D10_RETURN_TYPE_UINT  4
+CONSTANT: D3D10_RETURN_TYPE_FLOAT 5
+CONSTANT: D3D10_RETURN_TYPE_MIXED 6
+TYPEDEF: int D3D10_RESOURCE_RETURN_TYPE
+
+CONSTANT: D3D10_REGISTER_COMPONENT_UNKNOWN 0
+CONSTANT: D3D10_REGISTER_COMPONENT_UINT32  1
+CONSTANT: D3D10_REGISTER_COMPONENT_SINT32  2
+CONSTANT: D3D10_REGISTER_COMPONENT_FLOAT32 3
+TYPEDEF: int D3D10_REGISTER_COMPONENT_TYPE
+
+CONSTANT: D3D10_INCLUDE_LOCAL       0
+CONSTANT: D3D10_INCLUDE_SYSTEM      1
+CONSTANT: D3D10_INCLUDE_FORCE_DWORD HEX: 7fffffff
+TYPEDEF: int D3D10_INCLUDE_TYPE
+TYPEDEF: D3D10_INCLUDE_TYPE* LPD3D10_INCLUDE_TYPE
+
+COM-INTERFACE: ID3D10Include f {C530AD7D-9B16-4395-A979-BA2ECFF83ADD}
+    HRESULT Open ( D3D10_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID* ppData, UINT* pBytes )
+    HRESULT Close ( LPCVOID pData ) ;
+TYPEDEF: ID3D10Include* LPD3D10INCLUDE
+
+STRUCT: D3D10_SHADER_DESC
+    { Version                     UINT                     }
+    { Creator                     LPCSTR                   }
+    { Flags                       UINT                     }
+    { ConstantBuffers             UINT                     }
+    { BoundResources              UINT                     }
+    { InputParameters             UINT                     }
+    { OutputParameters            UINT                     }
+    { InstructionCount            UINT                     }
+    { TempRegisterCount           UINT                     }
+    { TempArrayCount              UINT                     }
+    { DefCount                    UINT                     }
+    { DclCount                    UINT                     }
+    { TextureNormalInstructions   UINT                     }
+    { TextureLoadInstructions     UINT                     }
+    { TextureCompInstructions     UINT                     }
+    { TextureBiasInstructions     UINT                     }
+    { TextureGradientInstructions UINT                     }
+    { FloatInstructionCount       UINT                     }
+    { IntInstructionCount         UINT                     }
+    { UintInstructionCount        UINT                     }
+    { StaticFlowControlCount      UINT                     }
+    { DynamicFlowControlCount     UINT                     }
+    { MacroInstructionCount       UINT                     }
+    { ArrayInstructionCount       UINT                     }
+    { CutInstructionCount         UINT                     }
+    { EmitInstructionCount        UINT                     }
+    { GSOutputTopology            D3D10_PRIMITIVE_TOPOLOGY }
+    { GSMaxOutputVertexCount      UINT                     } ;
+
+STRUCT: D3D10_SHADER_BUFFER_DESC
+    { Name      LPCSTR             }
+    { Type      D3D10_CBUFFER_TYPE }
+    { Variables UINT               }
+    { Size      UINT               }
+    { uFlags    UINT               } ;
+
+STRUCT: D3D10_SHADER_VARIABLE_DESC
+    { Name         LPCSTR }
+    { StartOffset  UINT   }
+    { Size         UINT   }
+    { uFlags       UINT   }
+    { DefaultValue LPVOID } ;
+
+STRUCT: D3D10_SHADER_TYPE_DESC
+    { Class    D3D10_SHADER_VARIABLE_CLASS }
+    { Type     D3D10_SHADER_VARIABLE_TYPE  }
+    { Rows     UINT                        }
+    { Columns  UINT                        }
+    { Elements UINT                        }
+    { Members  UINT                        }
+    { Offset   UINT                        } ;
+
+STRUCT: D3D10_SHADER_INPUT_BIND_DESC
+    { Name       LPCSTR                     }
+    { Type       D3D10_SHADER_INPUT_TYPE    }
+    { BindPoint  UINT                       }
+    { BindCount  UINT                       }
+    { uFlags     UINT                       }
+    { ReturnType D3D10_RESOURCE_RETURN_TYPE }
+    { Dimension  D3D10_SRV_DIMENSION        }
+    { NumSamples UINT                       } ;
+
+STRUCT: D3D10_SIGNATURE_PARAMETER_DESC
+    { SemanticName    LPCSTR                        }
+    { SemanticIndex   UINT                          }
+    { Register        UINT                          }
+    { SystemValueType D3D10_NAME                    }
+    { ComponentType   D3D10_REGISTER_COMPONENT_TYPE }
+    { Mask            BYTE                          }
+    { ReadWriteMask   BYTE                          } ;
+
+COM-INTERFACE: ID3D10ShaderReflectionType f {C530AD7D-9B16-4395-A979-BA2ECFF83ADD}
+    HRESULT GetDesc ( D3D10_SHADER_TYPE_DESC* pDesc )
+    ID3D10ShaderReflectionType* GetMemberTypeByIndex ( UINT Index )
+    ID3D10ShaderReflectionType* GetMemberTypeByName ( LPCSTR Name )
+    LPCSTR GetMemberTypeName ( UINT Index ) ;
+
+COM-INTERFACE: ID3D10ShaderReflectionVariable f {1BF63C95-2650-405d-99C1-3636BD1DA0A1}
+    HRESULT GetDesc ( D3D10_SHADER_VARIABLE_DESC* pDesc )
+    ID3D10ShaderReflectionType* GetType ( ) ;
+
+COM-INTERFACE: ID3D10ShaderReflectionConstantBuffer f {66C66A94-DDDD-4b62-A66A-F0DA33C2B4D0}
+    HRESULT GetDesc ( D3D10_SHADER_BUFFER_DESC* pDesc )
+    ID3D10ShaderReflectionVariable* GetVariableByIndex ( UINT Index )
+    ID3D10ShaderReflectionVariable* GetVariableByName ( LPCSTR Name ) ;
+
+COM-INTERFACE: ID3D10ShaderReflection IUnknown {D40E20B6-F8F7-42ad-AB20-4BAF8F15DFAA}
+    HRESULT GetDesc ( D3D10_SHADER_DESC* pDesc )
+    ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByIndex ( UINT Index )
+    ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByName ( LPCSTR Name )
+    HRESULT GetResourceBindingDesc ( UINT ResourceIndex, D3D10_SHADER_INPUT_BIND_DESC* pDesc )
+    HRESULT GetInputParameterDesc ( UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC* pDesc )
+    HRESULT GetOutputParameterDesc ( UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC* pDesc ) ;
+
+FUNCTION: HRESULT D3D10CompileShader ( LPCSTR pSrcData, SIZE_T SrcDataLen, LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include* pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs ) ;
+FUNCTION: HRESULT D3D10DisassembleShader ( void* pShader, SIZE_T BytecodeLength, BOOL EnableColorCode, LPCSTR pComments, ID3D10Blob** ppDisassembly ) ;
+FUNCTION: LPCSTR D3D10GetPixelShaderProfile ( ID3D10Device* pDevice ) ;
+FUNCTION: LPCSTR D3D10GetVertexShaderProfile ( ID3D10Device* pDevice ) ;
+FUNCTION: LPCSTR D3D10GetGeometryShaderProfile ( ID3D10Device* pDevice ) ;
+FUNCTION: HRESULT D3D10ReflectShader ( void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10ShaderReflection** ppReflector ) ;
+FUNCTION: HRESULT D3D10PreprocessShader ( LPCSTR pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include* pInclude, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs ) ;
+FUNCTION: HRESULT D3D10GetInputSignatureBlob ( void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob** ppSignatureBlob ) ;
+FUNCTION: HRESULT D3D10GetOutputSignatureBlob ( void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob** ppSignatureBlob ) ;
+FUNCTION: HRESULT D3D10GetInputAndOutputSignatureBlob ( void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob** ppSignatureBlob ) ;
+FUNCTION: HRESULT D3D10GetShaderDebugInfo ( void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob** ppDebugInfo ) ;
diff --git a/basis/windows/directx/d3d10shader/summary.txt b/basis/windows/directx/d3d10shader/summary.txt
new file mode 100644 (file)
index 0000000..a38ed60
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 10 bindings. Corresponds to D3D10shader.h.
diff --git a/basis/windows/directx/d3d10shader/tags.txt b/basis/windows/directx/d3d10shader/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3d11/authors.txt b/basis/windows/directx/d3d11/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3d11/d3d11.factor b/basis/windows/directx/d3d11/d3d11.factor
new file mode 100644 (file)
index 0000000..505ac4b
--- /dev/null
@@ -0,0 +1,1488 @@
+USING: alien.syntax alien.c-types classes.struct windows.types
+windows.directx.dxgiformat windows.com.syntax windows.com windows.ole32
+windows.directx.dxgitype windows.directx.dxgi windows.directx.d3dcommon ;
+IN: windows.directx.d3d11
+
+LIBRARY: d3d11
+
+CONSTANT: D3D11_16BIT_INDEX_STRIP_CUT_VALUE   HEX: ffff
+CONSTANT: D3D11_32BIT_INDEX_STRIP_CUT_VALUE   HEX: ffffffff
+CONSTANT: D3D11_8BIT_INDEX_STRIP_CUT_VALUE    HEX: ff
+
+CONSTANT: D3D11_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT 9
+
+CONSTANT: D3D11_CLIP_OR_CULL_DISTANCE_COUNT           8
+CONSTANT: D3D11_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT   2
+
+CONSTANT: D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT                    14
+CONSTANT: D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS                        4
+CONSTANT: D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT               32
+CONSTANT: D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT                     15
+CONSTANT: D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS               4
+CONSTANT: D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT                    15
+CONSTANT: D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST           1
+CONSTANT: D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS               1
+CONSTANT: D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT                         64
+CONSTANT: D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS     4
+CONSTANT: D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT          1
+CONSTANT: D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST 1
+CONSTANT: D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS     1
+CONSTANT: D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT               32
+CONSTANT: D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS                1
+CONSTANT: D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT                     128
+CONSTANT: D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST            1
+CONSTANT: D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS                1
+CONSTANT: D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT                         128
+CONSTANT: D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS                       1
+CONSTANT: D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT                            16
+CONSTANT: D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST                   1
+CONSTANT: D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS                       1
+CONSTANT: D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT                                16
+CONSTANT: D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT                          32
+CONSTANT: D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS                          4
+CONSTANT: D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT                 32
+CONSTANT: D3D11_COMMONSHADER_TEMP_REGISTER_COUNT                               4096
+CONSTANT: D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST                      3
+CONSTANT: D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS                          3
+CONSTANT: D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX                      10
+CONSTANT: D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN                      -10
+CONSTANT: D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE                         -8
+CONSTANT: D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE                         7
+
+CONSTANT: D3D11_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    256
+CONSTANT: D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP             64
+CONSTANT: D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    240
+CONSTANT: D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP             68
+CONSTANT: D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    224
+CONSTANT: D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP             72
+CONSTANT: D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    208
+CONSTANT: D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP             76
+CONSTANT: D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    192
+CONSTANT: D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP             84
+CONSTANT: D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    176
+CONSTANT: D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP             92
+CONSTANT: D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    160
+CONSTANT: D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP             100
+CONSTANT: D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    144
+CONSTANT: D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP             112
+CONSTANT: D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    128
+CONSTANT: D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP             128
+CONSTANT: D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    112
+CONSTANT: D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP             144
+CONSTANT: D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    96
+CONSTANT: D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP             168
+CONSTANT: D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    80
+CONSTANT: D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP             204
+CONSTANT: D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    64
+CONSTANT: D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP             256
+CONSTANT: D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    48
+CONSTANT: D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP             340
+CONSTANT: D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    32
+CONSTANT: D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP             512
+CONSTANT: D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD    16
+CONSTANT: D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP             768
+CONSTANT: D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION      1
+CONSTANT: D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT                         256
+CONSTANT: D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP             768
+CONSTANT: D3D11_CS_4_X_THREAD_GROUP_MAX_X                             768
+CONSTANT: D3D11_CS_4_X_THREAD_GROUP_MAX_Y                             768
+CONSTANT: D3D11_CS_4_X_UAV_REGISTER_COUNT                             1
+CONSTANT: D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION           65535
+CONSTANT: D3D11_CS_TGSM_REGISTER_COUNT                                8192
+CONSTANT: D3D11_CS_TGSM_REGISTER_READS_PER_INST                       1
+CONSTANT: D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS                  1
+CONSTANT: D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS                  1
+CONSTANT: D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP                 1024
+CONSTANT: D3D11_CS_THREAD_GROUP_MAX_X                                 1024
+CONSTANT: D3D11_CS_THREAD_GROUP_MAX_Y                                 1024
+CONSTANT: D3D11_CS_THREAD_GROUP_MAX_Z                                 64
+CONSTANT: D3D11_CS_THREAD_GROUP_MIN_X                                 1
+CONSTANT: D3D11_CS_THREAD_GROUP_MIN_Y                                 1
+CONSTANT: D3D11_CS_THREAD_GROUP_MIN_Z                                 1
+CONSTANT: D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL                    16384
+
+CONSTANT: D3D11_DEFAULT_BLEND_FACTOR_ALPHA                1.0
+CONSTANT: D3D11_DEFAULT_BLEND_FACTOR_GREEN                1.0
+CONSTANT: D3D11_DEFAULT_BORDER_COLOR_COMPONENT            0.0
+CONSTANT: D3D11_DEFAULT_DEPTH_BIAS_CLAMP                  0.0
+CONSTANT: D3D11_DEFAULT_MAX_ANISOTROPY                    16
+CONSTANT: D3D11_DEFAULT_MIP_LOD_BIAS                      0.0
+CONSTANT: D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX         0
+CONSTANT: D3D11_DEFAULT_SAMPLE_MASK                       HEX: ffffffff
+CONSTANT: D3D11_DEFAULT_SCISSOR_ENDX                      0
+CONSTANT: D3D11_DEFAULT_SCISSOR_ENDY                      0
+CONSTANT: D3D11_DEFAULT_SCISSOR_STARTX                    0
+CONSTANT: D3D11_DEFAULT_SCISSOR_STARTY                    0
+CONSTANT: D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS           0.0
+CONSTANT: D3D11_DEFAULT_STENCIL_READ_MASK                 HEX: ff
+CONSTANT: D3D11_DEFAULT_STENCIL_REFERENCE                 0
+CONSTANT: D3D11_DEFAULT_STENCIL_WRITE_MASK                HEX: ff
+CONSTANT: D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX    0
+CONSTANT: D3D11_DEFAULT_VIEWPORT_HEIGHT                   0
+CONSTANT: D3D11_DEFAULT_VIEWPORT_MAX_DEPTH                0.0
+CONSTANT: D3D11_DEFAULT_VIEWPORT_MIN_DEPTH                0.0
+CONSTANT: D3D11_DEFAULT_VIEWPORT_TOPLEFTX                 0
+CONSTANT: D3D11_DEFAULT_VIEWPORT_TOPLEFTY                 0
+CONSTANT: D3D11_DEFAULT_VIEWPORT_WIDTH                    0
+
+CONSTANT: D3D11_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS             3968
+CONSTANT: D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS            4
+CONSTANT: D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT   32
+CONSTANT: D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT                 32
+CONSTANT: D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST        2
+CONSTANT: D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS            1
+CONSTANT: D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS             3
+CONSTANT: D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT    32
+CONSTANT: D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT                  1
+CONSTANT: D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST         2
+CONSTANT: D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS             1
+CONSTANT: D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS           4
+CONSTANT: D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT  32
+CONSTANT: D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT                32
+CONSTANT: D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST       2
+CONSTANT: D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS           1
+CONSTANT: D3D11_DS_OUTPUT_REGISTER_COMPONENTS                         4
+CONSTANT: D3D11_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                32
+CONSTANT: D3D11_DS_OUTPUT_REGISTER_COUNT                              32
+
+CONSTANT: D3D11_FLOAT16_FUSED_TOLERANCE_IN_ULP        0.6
+CONSTANT: D3D11_FLOAT32_MAX                           3.402823466e+38
+CONSTANT: D3D11_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP   0.6
+CONSTANT: D3D11_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR    2.4
+CONSTANT: D3D11_FLOAT_TO_SRGB_EXPONENT_NUMERATOR      1.0
+CONSTANT: D3D11_FLOAT_TO_SRGB_OFFSET                  0.055
+CONSTANT: D3D11_FLOAT_TO_SRGB_SCALE_1                 12.92
+CONSTANT: D3D11_FLOAT_TO_SRGB_SCALE_2                 1.055
+CONSTANT: D3D11_FLOAT_TO_SRGB_THRESHOLD               0.0031308
+
+CONSTANT: D3D11_FTOI_INSTRUCTION_MAX_INPUT    2147483647.999
+CONSTANT: D3D11_FTOI_INSTRUCTION_MIN_INPUT    -2147483648.999
+CONSTANT: D3D11_FTOU_INSTRUCTION_MAX_INPUT    4294967295.999
+CONSTANT: D3D11_FTOU_INSTRUCTION_MIN_INPUT    0.0
+
+CONSTANT: D3D11_GS_INPUT_INSTANCE_ID_READS_PER_INST               2
+CONSTANT: D3D11_GS_INPUT_INSTANCE_ID_READ_PORTS                   1
+CONSTANT: D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS          1
+CONSTANT: D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT 32
+CONSTANT: D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COUNT               1
+CONSTANT: D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS           1
+CONSTANT: D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT  32
+CONSTANT: D3D11_GS_INPUT_PRIM_CONST_REGISTER_COUNT                1
+CONSTANT: D3D11_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST       2
+CONSTANT: D3D11_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS           1
+CONSTANT: D3D11_GS_INPUT_REGISTER_COMPONENTS                      4
+CONSTANT: D3D11_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT             32
+CONSTANT: D3D11_GS_INPUT_REGISTER_COUNT                           32
+CONSTANT: D3D11_GS_INPUT_REGISTER_READS_PER_INST                  2
+CONSTANT: D3D11_GS_INPUT_REGISTER_READ_PORTS                      1
+CONSTANT: D3D11_GS_INPUT_REGISTER_VERTICES                        32
+CONSTANT: D3D11_GS_MAX_INSTANCE_COUNT                             32
+CONSTANT: D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES       1024
+CONSTANT: D3D11_GS_OUTPUT_ELEMENTS                                32
+CONSTANT: D3D11_GS_OUTPUT_REGISTER_COMPONENTS                     4
+CONSTANT: D3D11_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT            32
+CONSTANT: D3D11_GS_OUTPUT_REGISTER_COUNT                          32
+
+CONSTANT: D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT               32
+CONSTANT: D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT              32
+CONSTANT: D3D11_HS_CONTROL_POINT_REGISTER_COMPONENTS                      4
+CONSTANT: D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT             32
+CONSTANT: D3D11_HS_CONTROL_POINT_REGISTER_READS_PER_INST                  2
+CONSTANT: D3D11_HS_CONTROL_POINT_REGISTER_READ_PORTS                      1
+CONSTANT: D3D11_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND                  HEX: ffffffff
+CONSTANT: D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS             1
+CONSTANT: D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT    32
+CONSTANT: D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT                  1
+CONSTANT: D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST         2
+CONSTANT: D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS             1
+CONSTANT: D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS             1
+CONSTANT: D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT    32
+CONSTANT: D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT                  1
+CONSTANT: D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST         2
+CONSTANT: D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS             1
+CONSTANT: D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS                 1
+CONSTANT: D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT        32
+CONSTANT: D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT                      1
+CONSTANT: D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST             2
+CONSTANT: D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS                 1
+CONSTANT: D3D11_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND                  HEX: ffffffff
+CONSTANT: D3D11_HS_MAXTESSFACTOR_LOWER_BOUND                              1.0
+CONSTANT: D3D11_HS_MAXTESSFACTOR_UPPER_BOUND                              64.0
+CONSTANT: D3D11_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS                3968
+CONSTANT: D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS            1
+CONSTANT: D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT   32
+CONSTANT: D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT                 1
+CONSTANT: D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST        2
+CONSTANT: D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS            1
+CONSTANT: D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS              4
+CONSTANT: D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT     32
+CONSTANT: D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT                   32
+CONSTANT: D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST          2
+CONSTANT: D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS              1
+
+CONSTANT: D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES       0
+CONSTANT: D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY                 0
+CONSTANT: D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES      0
+CONSTANT: D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT            1
+CONSTANT: D3D11_IA_INSTANCE_ID_BIT_COUNT                      32
+CONSTANT: D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT               32
+CONSTANT: D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT              32
+CONSTANT: D3D11_IA_PRIMITIVE_ID_BIT_COUNT                     32
+CONSTANT: D3D11_IA_VERTEX_ID_BIT_COUNT                        32
+CONSTANT: D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT           32
+CONSTANT: D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS 128
+CONSTANT: D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT       32
+
+CONSTANT: D3D11_INTEGER_DIVIDE_BY_ZERO_QUOTIENT   HEX: ffffffff
+CONSTANT: D3D11_INTEGER_DIVIDE_BY_ZERO_REMAINDER  HEX: ffffffff
+
+CONSTANT: D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL HEX: ffffffff
+CONSTANT: D3D11_KEEP_UNORDERED_ACCESS_VIEWS           HEX: ffffffff
+
+CONSTANT: D3D11_LINEAR_GAMMA  1.0
+
+CONSTANT: D3D11_MAX_BORDER_COLOR_COMPONENT        1.0
+CONSTANT: D3D11_MAX_DEPTH                         1.0
+CONSTANT: D3D11_MAX_MAXANISOTROPY                 16
+CONSTANT: D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT      32
+CONSTANT: D3D11_MAX_POSITION_VALUE                3.402823466e+34
+CONSTANT: D3D11_MAX_TEXTURE_DIMENSION_2_TO_EXP    17
+
+CONSTANT: D3D11_MAJOR_VERSION 11
+CONSTANT: D3D11_MINOR_VERSION 0
+
+CONSTANT: D3D11_MIN_BORDER_COLOR_COMPONENT    0.0
+CONSTANT: D3D11_MIN_DEPTH                     0.0
+CONSTANT: D3D11_MIN_MAXANISOTROPY             0
+
+CONSTANT: D3D11_MIP_LOD_BIAS_MAX                  15.99
+CONSTANT: D3D11_MIP_LOD_BIAS_MIN                  -16.0
+CONSTANT: D3D11_MIP_LOD_FRACTIONAL_BIT_COUNT      8
+CONSTANT: D3D11_MIP_LOD_RANGE_BIT_COUNT           8
+
+CONSTANT: D3D11_MULTISAMPLE_ANTIALIAS_LINE_WIDTH  1.4
+
+CONSTANT: D3D11_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT 0
+
+CONSTANT: D3D11_PIXEL_ADDRESS_RANGE_BIT_COUNT 15
+
+CONSTANT: D3D11_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT 16
+
+CONSTANT: D3D11_PS_CS_UAV_REGISTER_COMPONENTS                 1
+CONSTANT: D3D11_PS_CS_UAV_REGISTER_COUNT                      8
+CONSTANT: D3D11_PS_CS_UAV_REGISTER_READS_PER_INST             1
+CONSTANT: D3D11_PS_CS_UAV_REGISTER_READ_PORTS                 1
+CONSTANT: D3D11_PS_FRONTFACING_DEFAULT_VALUE                  HEX: ffffffff
+CONSTANT: D3D11_PS_FRONTFACING_FALSE_VALUE                    0
+CONSTANT: D3D11_PS_FRONTFACING_TRUE_VALUE                     HEX: ffffffff
+CONSTANT: D3D11_PS_INPUT_REGISTER_COMPONENTS                  4
+CONSTANT: D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT         32
+CONSTANT: D3D11_PS_INPUT_REGISTER_COUNT                       32
+CONSTANT: D3D11_PS_INPUT_REGISTER_READS_PER_INST              2
+CONSTANT: D3D11_PS_INPUT_REGISTER_READ_PORTS                  1
+CONSTANT: D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT   0.0
+CONSTANT: D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS           1
+CONSTANT: D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT  32
+CONSTANT: D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT                1
+CONSTANT: D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS            1
+CONSTANT: D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT   32
+CONSTANT: D3D11_PS_OUTPUT_MASK_REGISTER_COUNT                 1
+CONSTANT: D3D11_PS_OUTPUT_REGISTER_COMPONENTS                 4
+CONSTANT: D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT        32
+CONSTANT: D3D11_PS_OUTPUT_REGISTER_COUNT                      8
+CONSTANT: D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT          0.5
+
+CONSTANT: D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT 16
+
+CONSTANT: D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE                 4096
+CONSTANT: D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP          27
+CONSTANT: D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT                 4096
+CONSTANT: D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE         4096
+CONSTANT: D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP              32
+CONSTANT: D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP                    32
+CONSTANT: D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION   16384
+CONSTANT: D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT    1024
+CONSTANT: D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT       4096
+CONSTANT: D3D11_REQ_MAXANISOTROPY                                 16
+CONSTANT: D3D11_REQ_MIP_LEVELS                                    15
+CONSTANT: D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES         2048
+CONSTANT: D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE            4096
+CONSTANT: D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH                 16384
+CONSTANT: D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM  128
+CONSTANT: D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM  0.25
+CONSTANT: D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP       20
+CONSTANT: D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE               4096
+CONSTANT: D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION                2048
+CONSTANT: D3D11_REQ_TEXTURE1D_U_DIMENSION                         16384
+CONSTANT: D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION                2048
+CONSTANT: D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION                    16384
+CONSTANT: D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION                  2048
+CONSTANT: D3D11_REQ_TEXTURECUBE_DIMENSION                         16384
+
+CONSTANT: D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL 0
+
+CONSTANT: D3D11_SHADER_MAJOR_VERSION              5
+CONSTANT: D3D11_SHADER_MAX_INSTANCES              65535
+CONSTANT: D3D11_SHADER_MAX_INTERFACES             253
+CONSTANT: D3D11_SHADER_MAX_INTERFACE_CALL_SITES   4096
+CONSTANT: D3D11_SHADER_MAX_TYPES                  65535
+CONSTANT: D3D11_SHADER_MINOR_VERSION              0
+
+CONSTANT: D3D11_SHIFT_INSTRUCTION_PAD_VALUE               0
+CONSTANT: D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT   5
+
+CONSTANT: D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT 8
+
+CONSTANT: D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES         2048
+CONSTANT: D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES   512
+CONSTANT: D3D11_SO_BUFFER_SLOT_COUNT                  4
+CONSTANT: D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP    HEX: ffffffff
+CONSTANT: D3D11_SO_NO_RASTERIZED_STREAM               HEX: ffffffff
+CONSTANT: D3D11_SO_OUTPUT_COMPONENT_COUNT             128
+CONSTANT: D3D11_SO_STREAM_COUNT                       4
+
+CONSTANT: D3D11_SPEC_DATE_DAY     04
+CONSTANT: D3D11_SPEC_DATE_MONTH   06
+CONSTANT: D3D11_SPEC_DATE_YEAR    2009
+CONSTANT: D3D11_SPEC_VERSION      1.0
+
+CONSTANT: D3D11_SRGB_GAMMA                        2.2
+CONSTANT: D3D11_SRGB_TO_FLOAT_DENOMINATOR_1       12.92
+CONSTANT: D3D11_SRGB_TO_FLOAT_DENOMINATOR_2       1.055
+CONSTANT: D3D11_SRGB_TO_FLOAT_EXPONENT            2.4
+CONSTANT: D3D11_SRGB_TO_FLOAT_OFFSET              0.055
+CONSTANT: D3D11_SRGB_TO_FLOAT_THRESHOLD           0.04045
+CONSTANT: D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP    0.5
+
+CONSTANT: D3D11_STANDARD_COMPONENT_BIT_COUNT                      32
+CONSTANT: D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED              64
+CONSTANT: D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE  4
+CONSTANT: D3D11_STANDARD_PIXEL_COMPONENT_COUNT                    128
+CONSTANT: D3D11_STANDARD_PIXEL_ELEMENT_COUNT                      32
+CONSTANT: D3D11_STANDARD_VECTOR_SIZE                              4
+CONSTANT: D3D11_STANDARD_VERTEX_ELEMENT_COUNT                     32
+CONSTANT: D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT             64
+
+CONSTANT: D3D11_SUBPIXEL_FRACTIONAL_BIT_COUNT 8
+CONSTANT: D3D11_SUBTEXEL_FRACTIONAL_BIT_COUNT 8
+
+CONSTANT: D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR              64
+CONSTANT: D3D11_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR   64
+CONSTANT: D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR               63
+CONSTANT: D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR                   64
+CONSTANT: D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR              2
+CONSTANT: D3D11_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR   1
+CONSTANT: D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR               1
+
+CONSTANT: D3D11_TEXEL_ADDRESS_RANGE_BIT_COUNT 16
+
+CONSTANT: D3D11_UNBOUND_MEMORY_ACCESS_RESULT 0
+
+CONSTANT: D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX                    15
+CONSTANT: D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE    16
+
+CONSTANT: D3D11_VIEWPORT_BOUNDS_MAX   32767
+CONSTANT: D3D11_VIEWPORT_BOUNDS_MIN   -32768
+
+CONSTANT: D3D11_VS_INPUT_REGISTER_COMPONENTS              4
+CONSTANT: D3D11_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT     32
+CONSTANT: D3D11_VS_INPUT_REGISTER_COUNT                   32
+CONSTANT: D3D11_VS_INPUT_REGISTER_READS_PER_INST          2
+CONSTANT: D3D11_VS_INPUT_REGISTER_READ_PORTS              1
+CONSTANT: D3D11_VS_OUTPUT_REGISTER_COMPONENTS             4
+CONSTANT: D3D11_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT    32
+CONSTANT: D3D11_VS_OUTPUT_REGISTER_COUNT                  32
+
+CONSTANT: D3D11_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT 10
+CONSTANT: D3D11_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP 25
+CONSTANT: D3D11_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP       25
+
+CONSTANT: D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS                HEX: 887c0001
+CONSTANT: D3D11_ERROR_FILE_NOT_FOUND                               HEX: 887c0002
+CONSTANT: D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS                 HEX: 887c003
+CONSTANT: D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD HEX: 887c004
+
+CONSTANT: D3D11_INPUT_PER_VERTEX_DATA   0
+CONSTANT: D3D11_INPUT_PER_INSTANCE_DATA 1
+TYPEDEF: int D3D11_INPUT_CLASSIFICATION
+
+CONSTANT: D3D11_APPEND_ALIGNED_ELEMENT HEX: ffffffff
+
+STRUCT: D3D11_INPUT_ELEMENT_DESC
+    { SemanticName         LPCSTR                     }
+    { SemanticIndex        UINT                       }
+    { Format               DXGI_FORMAT                }
+    { InputSlot            UINT                       }
+    { AlignedByteOffset    UINT                       }
+    { InputSlotClass       D3D11_INPUT_CLASSIFICATION }
+    { InstanceDataStepRate UINT                       } ;
+
+CONSTANT: D3D11_FILL_WIREFRAME 2
+CONSTANT: D3D11_FILL_SOLID     3
+TYPEDEF: int D3D11_FILL_MODE
+
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED                  0
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_POINTLIST                  1
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_LINELIST                   2
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP                  3
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST               4
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP              5
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ               10
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ              11
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ           12
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ          13
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST  33
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST  34
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST  35
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST  36
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST  37
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST  38
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST  39
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST  40
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST  41
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST 42
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST 43
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST 44
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST 45
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST 46
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST 47
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST 48
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST 49
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST 50
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST 51
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST 52
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST 53
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST 54
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST 55
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST 56
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST 57
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST 58
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST 59
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST 60
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST 61
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST 62
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST 63
+CONSTANT: D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST 64
+TYPEDEF: int D3D11_PRIMITIVE_TOPOLOGY
+
+CONSTANT: D3D11_PRIMITIVE_UNDEFINED               0
+CONSTANT: D3D11_PRIMITIVE_POINT                   1
+CONSTANT: D3D11_PRIMITIVE_LINE                    2
+CONSTANT: D3D11_PRIMITIVE_TRIANGLE                3
+CONSTANT: D3D11_PRIMITIVE_LINE_ADJ                6
+CONSTANT: D3D11_PRIMITIVE_TRIANGLE_ADJ            7
+CONSTANT: D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH   8
+CONSTANT: D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH   9
+CONSTANT: D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH   10
+CONSTANT: D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH   11
+CONSTANT: D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH   12
+CONSTANT: D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH   13
+CONSTANT: D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH   14
+CONSTANT: D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH   15
+CONSTANT: D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH   16
+CONSTANT: D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH  17
+CONSTANT: D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH  18
+CONSTANT: D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH  19
+CONSTANT: D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH  20
+CONSTANT: D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH  21
+CONSTANT: D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH  22
+CONSTANT: D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH  23
+CONSTANT: D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH  24
+CONSTANT: D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH  25
+CONSTANT: D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH  26
+CONSTANT: D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH  27
+CONSTANT: D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH  28
+CONSTANT: D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH  29
+CONSTANT: D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH  30
+CONSTANT: D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH  31
+CONSTANT: D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH  32
+CONSTANT: D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH  33
+CONSTANT: D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH  34
+CONSTANT: D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH  35
+CONSTANT: D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH  36
+CONSTANT: D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH  37
+CONSTANT: D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH  38
+CONSTANT: D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH  39
+TYPEDEF: int D3D11_PRIMITIVE
+
+CONSTANT: D3D11_CULL_NONE  1
+CONSTANT: D3D11_CULL_FRONT 2
+CONSTANT: D3D11_CULL_BACK  3
+TYPEDEF: int D3D11_CULL_MODE
+
+STRUCT: D3D11_SO_DECLARATION_ENTRY
+    { Stream UINT }
+    { SemanticName LPCSTR }
+    { SemanticIndex UINT }
+    { StartComponent BYTE }
+    { ComponentCount BYTE }
+    { OutputSlot BYTE } ;
+
+STRUCT: D3D11_VIEWPORT
+    { TopLeftX FLOAT }
+    { TopLeftY FLOAT }
+    { Width FLOAT }
+    { Height FLOAT }
+    { MinDepth FLOAT }
+    { MaxDepth FLOAT } ;
+
+CONSTANT: D3D11_RESOURCE_DIMENSION_UNKNOWN   0
+CONSTANT: D3D11_RESOURCE_DIMENSION_BUFFER    1
+CONSTANT: D3D11_RESOURCE_DIMENSION_TEXTURE1D 2
+CONSTANT: D3D11_RESOURCE_DIMENSION_TEXTURE2D 3
+CONSTANT: D3D11_RESOURCE_DIMENSION_TEXTURE3D 4
+TYPEDEF: int D3D11_RESOURCE_DIMENSION
+
+CONSTANT: D3D11_SRV_DIMENSION_UNKNOWN             0
+CONSTANT: D3D11_SRV_DIMENSION_BUFFER              1
+CONSTANT: D3D11_SRV_DIMENSION_TEXTURE1D           2
+CONSTANT: D3D11_SRV_DIMENSION_TEXTURE1DARRAY      3
+CONSTANT: D3D11_SRV_DIMENSION_TEXTURE2D           4
+CONSTANT: D3D11_SRV_DIMENSION_TEXTURE2DARRAY      5
+CONSTANT: D3D11_SRV_DIMENSION_TEXTURE2DMS         6
+CONSTANT: D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY    7
+CONSTANT: D3D11_SRV_DIMENSION_TEXTURE3D           8
+CONSTANT: D3D11_SRV_DIMENSION_TEXTURECUBE         9
+CONSTANT: D3D11_SRV_DIMENSION_TEXTURECUBEARRAY    10
+CONSTANT: D3D11_SRV_DIMENSION_BUFFEREX            11
+TYPEDEF: int D3D11_SRV_DIMENSION
+
+CONSTANT: D3D11_DSV_DIMENSION_UNKNOWN             0
+CONSTANT: D3D11_DSV_DIMENSION_TEXTURE1D           1
+CONSTANT: D3D11_DSV_DIMENSION_TEXTURE1DARRAY      2
+CONSTANT: D3D11_DSV_DIMENSION_TEXTURE2D           3
+CONSTANT: D3D11_DSV_DIMENSION_TEXTURE2DARRAY      4
+CONSTANT: D3D11_DSV_DIMENSION_TEXTURE2DMS         5
+CONSTANT: D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY    6
+TYPEDEF: int D3D11_DSV_DIMENSION
+
+CONSTANT: D3D11_RTV_DIMENSION_UNKNOWN             0
+CONSTANT: D3D11_RTV_DIMENSION_BUFFER              1
+CONSTANT: D3D11_RTV_DIMENSION_TEXTURE1D           2
+CONSTANT: D3D11_RTV_DIMENSION_TEXTURE1DARRAY      3
+CONSTANT: D3D11_RTV_DIMENSION_TEXTURE2D           4
+CONSTANT: D3D11_RTV_DIMENSION_TEXTURE2DARRAY      5
+CONSTANT: D3D11_RTV_DIMENSION_TEXTURE2DMS         6
+CONSTANT: D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY    7
+CONSTANT: D3D11_RTV_DIMENSION_TEXTURE3D           8
+TYPEDEF: int D3D11_RTV_DIMENSION
+
+CONSTANT: D3D11_UAV_DIMENSION_UNKNOWN         0
+CONSTANT: D3D11_UAV_DIMENSION_BUFFER          1
+CONSTANT: D3D11_UAV_DIMENSION_TEXTURE1D       2
+CONSTANT: D3D11_UAV_DIMENSION_TEXTURE1DARRAY  3
+CONSTANT: D3D11_UAV_DIMENSION_TEXTURE2D       4
+CONSTANT: D3D11_UAV_DIMENSION_TEXTURE2DARRAY  5
+CONSTANT: D3D11_UAV_DIMENSION_TEXTURE3D       8
+TYPEDEF: int D3D11_UAV_DIMENSION
+
+CONSTANT: D3D11_USAGE_DEFAULT   0
+CONSTANT: D3D11_USAGE_IMMUTABLE 1
+CONSTANT: D3D11_USAGE_DYNAMIC   2
+CONSTANT: D3D11_USAGE_STAGING   3
+TYPEDEF: int D3D11_USAGE
+
+CONSTANT: D3D11_BIND_VERTEX_BUFFER    1
+CONSTANT: D3D11_BIND_INDEX_BUFFER     2
+CONSTANT: D3D11_BIND_CONSTANT_BUFFER  4
+CONSTANT: D3D11_BIND_SHADER_RESOURCE  8
+CONSTANT: D3D11_BIND_STREAM_OUTPUT    16
+CONSTANT: D3D11_BIND_RENDER_TARGET    32
+CONSTANT: D3D11_BIND_DEPTH_STENCIL    64
+CONSTANT: D3D11_BIND_UNORDERED_ACCESS 128
+TYPEDEF: int D3D11_BIND_FLAG
+
+CONSTANT: D3D11_CPU_ACCESS_WRITE  HEX: 10000
+CONSTANT: D3D11_CPU_ACCESS_READ   HEX: 20000
+TYPEDEF: int D3D11_CPU_ACCESS_FLAG
+
+CONSTANT: D3D11_RESOURCE_MISC_GENERATE_MIPS           1
+CONSTANT: D3D11_RESOURCE_MISC_SHARED                  2
+CONSTANT: D3D11_RESOURCE_MISC_TEXTURECUBE             4
+CONSTANT: D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS       16
+CONSTANT: D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS  32
+CONSTANT: D3D11_RESOURCE_MISC_BUFFER_STRUCTURED       64
+CONSTANT: D3D11_RESOURCE_MISC_RESOURCE_CLAMP          128
+CONSTANT: D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX       256
+CONSTANT: D3D11_RESOURCE_MISC_GDI_COMPATIBLE          512
+TYPEDEF: int D3D11_RESOURCE_MISC_FLAG
+
+CONSTANT: D3D11_MAP_READ                  1
+CONSTANT: D3D11_MAP_WRITE                 2
+CONSTANT: D3D11_MAP_READ_WRITE            3
+CONSTANT: D3D11_MAP_WRITE_DISCARD         4
+CONSTANT: D3D11_MAP_WRITE_NO_OVERWRITE    5
+TYPEDEF: int D3D11_MAP
+
+CONSTANT: D3D11_MAP_FLAG_DO_NOT_WAIT HEX: 100000
+TYPEDEF: int D3D11_MAP_FLAG
+
+CONSTANT: D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR 1
+TYPEDEF: int D3D11_RAISE_FLAG
+
+CONSTANT: D3D11_CLEAR_DEPTH   1
+CONSTANT: D3D11_CLEAR_STENCIL 2
+TYPEDEF: int D3D11_CLEAR_FLAG
+
+TYPEDEF: RECT D3D11_RECT
+
+STRUCT: D3D11_BOX
+    { left   UINT }
+    { top    UINT }
+    { front  UINT }
+    { right  UINT }
+    { bottom UINT }
+    { back   UINT } ;
+
+COM-INTERFACE: ID3D11DeviceChild IUnknown {1841e5c8-16b0-489b-bcc8-44cfb0d5deae}
+    void GetDevice ( ID3D11Device** ppDevice )
+    HRESULT GetPrivateData ( REFGUID guid, UINT* pDataSize, void* pData )
+    HRESULT SetPrivateData ( REFGUID guid, UINT DataSize, void* pData )
+    HRESULT SetPrivateDataInterface ( REFGUID guid, IUnknown* pData ) ;
+
+CONSTANT: D3D11_COMPARISON_NEVER          1
+CONSTANT: D3D11_COMPARISON_LESS           2
+CONSTANT: D3D11_COMPARISON_EQUAL          3
+CONSTANT: D3D11_COMPARISON_LESS_EQUAL     4
+CONSTANT: D3D11_COMPARISON_GREATER        5
+CONSTANT: D3D11_COMPARISON_NOT_EQUAL      6
+CONSTANT: D3D11_COMPARISON_GREATER_EQUAL  7
+CONSTANT: D3D11_COMPARISON_ALWAYS         8
+TYPEDEF: int D3D11_COMPARISON_FUNC
+
+CONSTANT: D3D11_DEPTH_WRITE_MASK_ZERO 0
+CONSTANT: D3D11_DEPTH_WRITE_MASK_ALL  1
+TYPEDEF: int D3D11_DEPTH_WRITE_MASK
+
+CONSTANT: D3D11_STENCIL_OP_KEEP       1
+CONSTANT: D3D11_STENCIL_OP_ZERO       2
+CONSTANT: D3D11_STENCIL_OP_REPLACE    3
+CONSTANT: D3D11_STENCIL_OP_INCR_SAT   4
+CONSTANT: D3D11_STENCIL_OP_DECR_SAT   5
+CONSTANT: D3D11_STENCIL_OP_INVERT     6
+CONSTANT: D3D11_STENCIL_OP_INCR       7
+CONSTANT: D3D11_STENCIL_OP_DECR       8
+TYPEDEF: int D3D11_STENCIL_OP
+
+STRUCT: D3D11_DEPTH_STENCILOP_DESC
+    { StencilFailOp      D3D11_STENCIL_OP      }
+    { StencilDepthFailOp D3D11_STENCIL_OP      }
+    { StencilPassOp      D3D11_STENCIL_OP      }
+    { StencilFunc        D3D11_COMPARISON_FUNC } ;
+
+STRUCT: D3D11_DEPTH_STENCIL_DESC
+    { DepthEnable      BOOL                       }
+    { DepthWriteMask   D3D11_DEPTH_WRITE_MASK     }
+    { DepthFunc        D3D11_COMPARISON_FUNC      }
+    { StencilEnable    BOOL                       }
+    { StencilReadMask  BYTE                      }
+    { StencilWriteMask BYTE                      }
+    { FrontFace        D3D11_DEPTH_STENCILOP_DESC }
+    { BackFace         D3D11_DEPTH_STENCILOP_DESC } ;
+
+COM-INTERFACE: ID3D11DepthStencilState ID3D11DeviceChild {03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1}
+    void GetDesc ( D3D11_DEPTH_STENCIL_DESC* pDesc ) ;
+
+CONSTANT: D3D11_BLEND_ZERO                1
+CONSTANT: D3D11_BLEND_ONE                 2
+CONSTANT: D3D11_BLEND_SRC_COLOR           3
+CONSTANT: D3D11_BLEND_INV_SRC_COLOR       4
+CONSTANT: D3D11_BLEND_SRC_ALPHA           5
+CONSTANT: D3D11_BLEND_INV_SRC_ALPHA       6
+CONSTANT: D3D11_BLEND_DEST_ALPHA          7
+CONSTANT: D3D11_BLEND_INV_DEST_ALPHA      8
+CONSTANT: D3D11_BLEND_DEST_COLOR          9
+CONSTANT: D3D11_BLEND_INV_DEST_COLOR      10
+CONSTANT: D3D11_BLEND_SRC_ALPHA_SAT       11
+CONSTANT: D3D11_BLEND_BLEND_FACTOR        14
+CONSTANT: D3D11_BLEND_INV_BLEND_FACTOR    15
+CONSTANT: D3D11_BLEND_SRC1_COLOR          16
+CONSTANT: D3D11_BLEND_INV_SRC1_COLOR      17
+CONSTANT: D3D11_BLEND_SRC1_ALPHA          18
+CONSTANT: D3D11_BLEND_INV_SRC1_ALPHA      19
+TYPEDEF: int D3D11_BLEND
+
+CONSTANT: D3D11_BLEND_OP_ADD  1
+CONSTANT: D3D11_BLEND_OP_SUBTRACT 2
+CONSTANT: D3D11_BLEND_OP_REV_SUBTRACT 3
+CONSTANT: D3D11_BLEND_OP_MIN  4
+CONSTANT: D3D11_BLEND_OP_MAX  5
+TYPEDEF: int D3D11_BLEND_OP
+
+CONSTANT: D3D11_COLOR_WRITE_ENABLE_RED    1
+CONSTANT: D3D11_COLOR_WRITE_ENABLE_GREEN  2
+CONSTANT: D3D11_COLOR_WRITE_ENABLE_BLUE   4
+CONSTANT: D3D11_COLOR_WRITE_ENABLE_ALPHA  8
+CONSTANT: D3D11_COLOR_WRITE_ENABLE_ALL    15
+TYPEDEF: int D3D11_COLOR_WRITE_ENABLE
+
+STRUCT: D3D11_RENDER_TARGET_BLEND_DESC
+    { BlendEnable           BOOL           }
+    { SrcBlend              D3D11_BLEND    }
+    { DestBlend             D3D11_BLEND    }
+    { BlendOp               D3D11_BLEND_OP }
+    { SrcBlendAlpha         D3D11_BLEND    }
+    { DestBlendAlpha        D3D11_BLEND    }
+    { BlendOpAlpha          D3D11_BLEND_OP }
+    { RenderTargetWriteMask BYTE          } ;
+
+STRUCT: D3D11_BLEND_DESC
+    { AlphaToCoverageEnable BOOL }
+    { IndependentBlendEnable BOOL }
+    { RenderTarget D3D11_RENDER_TARGET_BLEND_DESC[8] } ;
+
+COM-INTERFACE: ID3D11BlendState ID3D11DeviceChild 75b68faa-347d-4159-8f45-a0640f01cd9a
+    void GetDesc ( D3D11_BLEND_DESC* pDesc ) ;
+
+STRUCT: D3D11_RASTERIZER_DESC
+    { FillMode              D3D11_FILL_MODE }
+    { CullMode              D3D11_CULL_MODE }
+    { FrontCounterClockwise BOOL            }
+    { DepthBias             INT             }
+    { DepthBiasClamp        FLOAT           }
+    { SlopeScaledDepthBias  FLOAT           }
+    { DepthClipEnable       BOOL            }
+    { ScissorEnable         BOOL            }
+    { MultisampleEnable     BOOL            }
+    { AntialiasedLineEnable BOOL            } ;
+
+COM-INTERFACE: ID3D11RasterizerState ID3D11DeviceChild {9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7}
+    void GetDesc ( D3D11_RASTERIZER_DESC* pDesc ) ;
+
+STRUCT: D3D11_SUBRESOURCE_DATA
+    { pSysMem          void* }
+    { SysMemPitch      UINT  }
+    { SysMemSlicePitch UINT  } ;
+
+STRUCT: D3D11_MAPPED_SUBRESOURCE
+    { pData       void* }
+    { RowPitch    UINT  }
+    { DepthPitch  UINT  } ;
+
+COM-INTERFACE: ID3D11Resource ID3D11DeviceChild {dc8e63f3-d12b-4952-b47b-5e45026a862d}
+    void GetType ( D3D11_RESOURCE_DIMENSION* pResourceDimension )
+    void SetEvictionPriority ( UINT EvictionPriority )
+    UINT GetEvictionPriority ( ) ;
+
+STRUCT: D3D11_BUFFER_DESC
+    { ByteWidth           UINT        }
+    { Usage               D3D11_USAGE }
+    { BindFlags           UINT        }
+    { CPUAccessFlags      UINT        }
+    { MiscFlags           UINT        }
+    { StructureByteStride UINT        } ;
+
+COM-INTERFACE: ID3D11Buffer ID3D11Resource {48570b85-d1ee-4fcd-a250-eb350722b037}
+    void GetDesc ( D3D11_BUFFER_DESC* pDesc ) ;
+
+STRUCT: D3D11_TEXTURE1D_DESC
+    { Width          UINT        }
+    { MipLevels      UINT        }
+    { ArraySize      UINT        }
+    { Format         DXGI_FORMAT }
+    { Usage          D3D11_USAGE }
+    { BindFlags      UINT        }
+    { CPUAccessFlags UINT        }
+    { MiscFlags      UINT        } ;
+
+COM-INTERFACE: ID3D11Texture1D ID3D11Resource {f8fb5c27-c6b3-4f75-a4c8-439af2ef564c}
+    void GetDesc ( D3D11_TEXTURE1D_DESC* pDesc ) ;
+
+STRUCT: D3D11_TEXTURE2D_DESC
+    { Width          UINT             }
+    { Height         UINT             }
+    { MipLevels      UINT             }
+    { ArraySize      UINT             }
+    { Format         DXGI_FORMAT      }
+    { SampleDesc     DXGI_SAMPLE_DESC }
+    { Usage          D3D11_USAGE      }
+    { BindFlags      UINT             }
+    { CPUAccessFlags UINT             }
+    { MiscFlags      UINT             } ;
+
+COM-INTERFACE: ID3D11Texture2D ID3D11Resource {6f15aaf2-d208-4e89-9ab4-489535d34f9c}
+    void GetDesc ( D3D11_TEXTURE2D_DESC* pDesc ) ;
+
+STRUCT: D3D11_TEXTURE3D_DESC
+    { Width          UINT        }
+    { Height         UINT        }
+    { Depth          UINT        }
+    { MipLevels      UINT        }
+    { Format         DXGI_FORMAT }
+    { Usage          D3D11_USAGE }
+    { BindFlags      UINT        }
+    { CPUAccessFlags UINT        }
+    { MiscFlags      UINT        } ;
+
+COM-INTERFACE: ID3D11Texture3D ID3D11Resource {037e866e-f56d-4357-a8af-9dabbe6e250e}
+    void GetDesc ( D3D11_TEXTURE3D_DESC* pDesc ) ;
+
+CONSTANT: D3D11_TEXTURECUBE_FACE_POSITIVE_X   0
+CONSTANT: D3D11_TEXTURECUBE_FACE_NEGATIVE_X   1
+CONSTANT: D3D11_TEXTURECUBE_FACE_POSITIVE_Y   2
+CONSTANT: D3D11_TEXTURECUBE_FACE_NEGATIVE_Y   3
+CONSTANT: D3D11_TEXTURECUBE_FACE_POSITIVE_Z   4
+CONSTANT: D3D11_TEXTURECUBE_FACE_NEGATIVE_Z   5
+TYPEDEF: int D3D11_TEXTURECUBE_FACE
+
+COM-INTERFACE: ID3D11View ID3D11DeviceChild {839d1216-bb2e-412b-b7f4-a9dbebe08ed1}
+    void GetResource ( ID3D11Resource** ppResource ) ;
+
+UNION-STRUCT: D3D11_BUFFER_SRV_UNION1
+    { FirstElement  UINT }
+    { ElementOffset UINT } ;
+
+UNION-STRUCT: D3D11_BUFFER_SRV_UNION2
+    { NumElements UINT }
+    { ElementWith UINT } ;
+
+STRUCT: D3D11_BUFFER_SRV
+    { First  D3D11_BUFFER_SRV_UNION1 }
+    { Second D3D11_BUFFER_SRV_UNION2 } ;
+
+CONSTANT: D3D11_BUFFEREX_SRV_FLAG_RAW 1
+TYPEDEF: int D3D11_BUFFEREX_SRV_FLAG
+
+STRUCT: D3D11_BUFFEREX_SRV
+    { FirstElement UINT }
+    { NumElements  UINT }
+    { Flags        UINT } ;
+
+STRUCT: D3D11_TEX1D_SRV
+    { MostDetailedMip UINT }
+    { MipLevels       UINT } ;
+
+STRUCT: D3D11_TEX1D_ARRAY_SRV
+    { MostDetailedMip UINT }
+    { MipLevels       UINT }
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+STRUCT: D3D11_TEX2D_SRV
+    { MostDetailedMip UINT }
+    { MipLevels       UINT } ;
+
+STRUCT: D3D11_TEX2D_ARRAY_SRV
+    { MostDetailedMip UINT }
+    { MipLevels       UINT }
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+STRUCT: D3D11_TEX3D_SRV
+    { MostDetailedMip UINT }
+    { MipLevels       UINT } ;
+
+STRUCT: D3D11_TEXCUBE_SRV
+    { MostDetailedMip UINT }
+    { MipLevels       UINT } ;
+
+STRUCT: D3D11_TEXCUBE_ARRAY_SRV
+    { MostDetailedMip  UINT }
+    { MipLevels        UINT }
+    { First2DArrayFace UINT }
+    { NumCubes         UINT } ;
+
+STRUCT: D3D11_TEX2DMS_SRV
+    { UnusedField_NothingToDefine UINT } ;
+
+STRUCT: D3D11_TEX2DMS_ARRAY_SRV
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+UNION-STRUCT: D3D11_SHADER_RESOURCE_VIEW_DESC_UNION
+    { Buffer           D3D11_BUFFER_SRV        }
+    { Texture1D        D3D11_TEX1D_SRV         }
+    { Texture1DArray   D3D11_TEX1D_ARRAY_SRV   }
+    { Texture2D        D3D11_TEX2D_SRV         }
+    { Texture2DArray   D3D11_TEX2D_ARRAY_SRV   }
+    { Texture2DMS      D3D11_TEX2DMS_SRV       }
+    { Texture2DMSArray D3D11_TEX2DMS_ARRAY_SRV }
+    { Texture3D        D3D11_TEX3D_SRV         }
+    { TextureCube      D3D11_TEXCUBE_SRV       }
+    { TextureCubeArray D3D11_TEXCUBE_ARRAY_SRV }
+    { BufferEx         D3D11_BUFFEREX_SRV      } ;
+
+STRUCT: D3D11_SHADER_RESOURCE_VIEW_DESC
+    { Format        DXGI_FORMAT                           }
+    { ViewDimension D3D11_SRV_DIMENSION                   }
+    { View          D3D11_SHADER_RESOURCE_VIEW_DESC_UNION } ;
+
+COM-INTERFACE: ID3D11ShaderResourceView ID3D11View {b0e06fe0-8192-4e1a-b1ca-36d7414710b2}
+    void GetDesc ( D3D11_SHADER_RESOURCE_VIEW_DESC* pDesc ) ;
+
+UNION-STRUCT: D3D11_BUFFER_RTV_UNION1
+    { FirstElement  UINT }
+    { ElementOffset UINT } ;
+
+UNION-STRUCT: D3D11_BUFFER_RTV_UNION2
+    { NumElements  UINT }
+    { ElementWidth UINT } ;
+
+STRUCT: D3D11_BUFFER_RTV
+    { First  D3D11_BUFFER_RTV_UNION1 }
+    { Second D3D11_BUFFER_RTV_UNION2 } ;
+
+STRUCT: D3D11_TEX1D_RTV
+    { MipSlice UINT } ;
+
+STRUCT: D3D11_TEX1D_ARRAY_RTV
+    { MipSlice        UINT }
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+STRUCT: D3D11_TEX2D_RTV
+    { MipSlice UINT } ;
+
+STRUCT: D3D11_TEX2DMS_RTV
+    { UnusedField_NothingToDefine UINT } ;
+
+STRUCT: D3D11_TEX2D_ARRAY_RTV
+    { MipSlice        UINT }
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+STRUCT: D3D11_TEX2DMS_ARRAY_RTV
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+STRUCT: D3D11_TEX3D_RTV
+    { MipSlice    UINT }
+    { FirstWSlice UINT }
+    { WSize       UINT } ;
+
+UNION-STRUCT: D3D11_RENDER_TARGET_VIEW_DESC_UNION
+    { Buffer           D3D11_BUFFER_RTV        }
+    { Texture1D        D3D11_TEX1D_RTV         }
+    { Texture1DArray   D3D11_TEX1D_ARRAY_RTV   }
+    { Texture2D        D3D11_TEX2D_RTV         }
+    { Texture2DArray   D3D11_TEX2D_ARRAY_RTV   }
+    { Texture2DMS      D3D11_TEX2DMS_RTV       }
+    { Texture2DMSArray D3D11_TEX2DMS_ARRAY_RTV }
+    { Texture3D        D3D11_TEX3D_RTV         } ;
+
+STRUCT: D3D11_RENDER_TARGET_VIEW_DESC
+    { Format        DXGI_FORMAT                         }
+    { ViewDimension D3D11_RTV_DIMENSION                 }
+    { View          D3D11_RENDER_TARGET_VIEW_DESC_UNION } ;
+
+COM-INTERFACE: ID3D11RenderTargetView ID3D11View {dfdba067-0b8d-4865-875b-d7b4516cc164}
+    void GetDesc ( D3D11_RENDER_TARGET_VIEW_DESC* pDesc ) ;
+
+STRUCT: D3D11_TEX1D_DSV
+    { MipSlice UINT } ;
+
+STRUCT: D3D11_TEX1D_ARRAY_DSV
+    { MipSlice        UINT }
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+STRUCT: D3D11_TEX2D_DSV
+    { MipSlice UINT } ;
+
+STRUCT: D3D11_TEX2D_ARRAY_DSV
+    { MipSlice        UINT }
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+STRUCT: D3D11_TEX2DMS_DSV
+    { UnusedField_NothingToDefine UINT } ;
+
+STRUCT: D3D11_TEX2DMS_ARRAY_DSV
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+CONSTANT: D3D11_DSV_READ_ONLY_DEPTH 1
+CONSTANT: D3D11_DSV_READ_ONLY_STENCIL 2
+TYPEDEF: int D3D11_DSV_FLAG
+
+UNION-STRUCT: D3D11_DEPTH_STENCIL_VIEW_DESC_UNION
+    { Texture1D        D3D11_TEX1D_DSV         }
+    { Texture1DArray   D3D11_TEX1D_ARRAY_DSV   }
+    { Texture2D        D3D11_TEX2D_DSV         }
+    { Texture2DArray   D3D11_TEX2D_ARRAY_DSV   }
+    { Texture2DMS      D3D11_TEX2DMS_DSV       }
+    { Texture2DMSArray D3D11_TEX2DMS_ARRAY_DSV } ;
+
+STRUCT: D3D11_DEPTH_STENCIL_VIEW_DESC
+    { Format        DXGI_FORMAT                         }
+    { ViewDimension D3D11_DSV_DIMENSION                 }
+    { Flags         UINT                                }
+    { View          D3D11_DEPTH_STENCIL_VIEW_DESC_UNION } ;
+
+COM-INTERFACE: ID3D11DepthStencilView ID3D11View {9fdac92a-1876-48c3-afad-25b94f84a9b6}
+    void GetDesc ( D3D11_DEPTH_STENCIL_VIEW_DESC* pDesc ) ;
+
+CONSTANT: D3D11_BUFFER_UAV_FLAG_RAW     1
+CONSTANT: D3D11_BUFFER_UAV_FLAG_APPEND  2
+CONSTANT: D3D11_BUFFER_UAV_FLAG_COUNTER 4
+TYPEDEF: int D3D11_BUFFER_UAV_FLAG
+
+STRUCT: D3D11_BUFFER_UAV
+    { FirstElement UINT }
+    { NumElements  UINT }
+    { Flags        UINT } ;
+
+STRUCT: D3D11_TEX1D_UAV
+    { MipSlice UINT } ;
+
+STRUCT: D3D11_TEX1D_ARRAY_UAV
+    { MipSlice        UINT }
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+STRUCT: D3D11_TEX2D_UAV
+    { MipSlice UINT } ;
+
+STRUCT: D3D11_TEX2D_ARRAY_UAV
+    { MipSlice        UINT }
+    { FirstArraySlice UINT }
+    { ArraySize       UINT } ;
+
+STRUCT: D3D11_TEX3D_UAV
+    { MipSlice    UINT }
+    { FirstWSlice UINT }
+    { WSize       UINT } ;
+
+UNION-STRUCT: D3D11_UNORDERED_ACCESS_VIEW_DESC_UNION
+    { Buffer         D3D11_BUFFER_UAV      }
+    { Texture1D      D3D11_TEX1D_UAV       }
+    { Texture1DArray D3D11_TEX1D_ARRAY_UAV }
+    { Texture2D      D3D11_TEX2D_UAV       }
+    { Texture2DArray D3D11_TEX2D_ARRAY_UAV }
+    { Texture3D      D3D11_TEX3D_UAV       } ;
+
+STRUCT: D3D11_UNORDERED_ACCESS_VIEW_DESC
+    { Format        DXGI_FORMAT                            }
+    { ViewDimension D3D11_UAV_DIMENSION                    }
+    { View          D3D11_UNORDERED_ACCESS_VIEW_DESC_UNION } ;
+
+
+COM-INTERFACE: ID3D11UnorderedAccessView ID3D11View {28acf509-7f5c-48f6-8611-f316010a6380}
+    void GetDesc ( D3D11_UNORDERED_ACCESS_VIEW_DESC* pDesc ) ;
+
+COM-INTERFACE: ID3D11VertexShader ID3D11DeviceChild {3b301d64-d678-4289-8897-22f8928b72f3} ;
+
+COM-INTERFACE: ID3D11HullShader ID3D11DeviceChild {8e5c6061-628a-4c8e-8264-bbe45cb3d5dd} ;
+
+COM-INTERFACE: ID3D11DomainShader ID3D11DeviceChild {f582c508-0f36-490c-9977-31eece268cfa} ;
+
+COM-INTERFACE: ID3D11GeometryShader ID3D11DeviceChild {38325b96-effb-4022-ba02-2e795b70275c} ;
+
+COM-INTERFACE: ID3D11PixelShader ID3D11DeviceChild {ea82e40d-51dc-4f33-93d4-db7c9125ae8c} ;
+
+COM-INTERFACE: ID3D11ComputeShader ID3D11DeviceChild {4f5b196e-c2bd-495e-bd01-1fded38e4969} ;
+
+COM-INTERFACE: ID3D11InputLayout ID3D11DeviceChild {e4819ddc-4cf0-4025-bd26-5de82a3e07b7} ;
+
+CONSTANT: D3D11_FILTER_MIN_MAG_MIP_POINT                          HEX: 0
+CONSTANT: D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR                   HEX: 1
+CONSTANT: D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT             HEX: 4
+CONSTANT: D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR                   HEX: 5
+CONSTANT: D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT                   HEX: 10
+CONSTANT: D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR            HEX: 11
+CONSTANT: D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT                   HEX: 14
+CONSTANT: D3D11_FILTER_MIN_MAG_MIP_LINEAR                         HEX: 15
+CONSTANT: D3D11_FILTER_ANISOTROPIC                                HEX: 55
+CONSTANT: D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT               HEX: 80
+CONSTANT: D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR        HEX: 81
+CONSTANT: D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT  HEX: 84
+CONSTANT: D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR        HEX: 85
+CONSTANT: D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT        HEX: 90
+CONSTANT: D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR HEX: 91
+CONSTANT: D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT        HEX: 94
+CONSTANT: D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR              HEX: 95
+CONSTANT: D3D11_FILTER_COMPARISON_ANISOTROPIC                     HEX: d5
+TYPEDEF: int D3D11_FILTER
+
+CONSTANT: D3D11_FILTER_TYPE_POINT  0
+CONSTANT: D3D11_FILTER_TYPE_LINEAR 1
+TYPEDEF: int D3D11_FILTER_TYPE;
+
+CONSTANT: D3D11_FILTER_TYPE_MASK 3
+CONSTANT: D3D11_MIN_FILTER_SHIFT 4
+CONSTANT: D3D11_MAG_FILTER_SHIFT 2
+CONSTANT: D3D11_MIP_FILTER_SHIFT 0
+CONSTANT: D3D11_COMPARISON_FILTERING_BIT  HEX: 80
+CONSTANT: D3D11_ANISOTROPIC_FILTERING_BIT HEX: 40
+
+CONSTANT: D3D11_TEXTURE_ADDRESS_WRAP        1
+CONSTANT: D3D11_TEXTURE_ADDRESS_MIRROR      2
+CONSTANT: D3D11_TEXTURE_ADDRESS_CLAMP       3
+CONSTANT: D3D11_TEXTURE_ADDRESS_BORDER      4
+CONSTANT: D3D11_TEXTURE_ADDRESS_MIRROR_ONCE 5
+TYPEDEF: int D3D11_TEXTURE_ADDRESS_MODE
+
+STRUCT: D3D11_SAMPLER_DESC
+    { Filter         D3D11_FILTER               }
+    { AddressU       D3D11_TEXTURE_ADDRESS_MODE }
+    { AddressV       D3D11_TEXTURE_ADDRESS_MODE }
+    { AddressW       D3D11_TEXTURE_ADDRESS_MODE }
+    { MipLODBias     FLOAT                      }
+    { MaxAnisotropy  UINT                       }
+    { ComparisonFunc D3D11_COMPARISON_FUNC      }
+    { BorderColor    FLOAT[4]                   }
+    { MinLOD         FLOAT                      }
+    { MaxLOD         FLOAT                      } ;
+
+COM-INTERFACE: ID3D11SamplerState ID3D11DeviceChild {da6fea51-564c-4487-9810-f0d0f9b4e3a5}
+    void GetDesc ( D3D11_SAMPLER_DESC* pDesc ) ;
+
+CONSTANT: D3D11_FORMAT_SUPPORT_BUFFER                         HEX: 1
+CONSTANT: D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER               HEX: 2
+CONSTANT: D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER                HEX: 4
+CONSTANT: D3D11_FORMAT_SUPPORT_SO_BUFFER                      HEX: 8
+CONSTANT: D3D11_FORMAT_SUPPORT_TEXTURE1D                      HEX: 10
+CONSTANT: D3D11_FORMAT_SUPPORT_TEXTURE2D                      HEX: 20
+CONSTANT: D3D11_FORMAT_SUPPORT_TEXTURE3D                      HEX: 40
+CONSTANT: D3D11_FORMAT_SUPPORT_TEXTURECUBE                    HEX: 80
+CONSTANT: D3D11_FORMAT_SUPPORT_SHADER_LOAD                    HEX: 100
+CONSTANT: D3D11_FORMAT_SUPPORT_SHADER_SAMPLE                  HEX: 200
+CONSTANT: D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON       HEX: 400
+CONSTANT: D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT        HEX: 800
+CONSTANT: D3D11_FORMAT_SUPPORT_MIP                            HEX: 1000
+CONSTANT: D3D11_FORMAT_SUPPORT_MIP_AUTOGEN                    HEX: 2000
+CONSTANT: D3D11_FORMAT_SUPPORT_RENDER_TARGET                  HEX: 4000
+CONSTANT: D3D11_FORMAT_SUPPORT_BLENDABLE                      HEX: 8000
+CONSTANT: D3D11_FORMAT_SUPPORT_DEPTH_STENCIL                  HEX: 10000
+CONSTANT: D3D11_FORMAT_SUPPORT_CPU_LOCKABLE                   HEX: 20000
+CONSTANT: D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE            HEX: 40000
+CONSTANT: D3D11_FORMAT_SUPPORT_DISPLAY                        HEX: 80000
+CONSTANT: D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT         HEX: 100000
+CONSTANT: D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET       HEX: 200000
+CONSTANT: D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD               HEX: 400000
+CONSTANT: D3D11_FORMAT_SUPPORT_SHADER_GATHER                  HEX: 800000
+CONSTANT: D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST               HEX: 1000000
+CONSTANT: D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW    HEX: 2000000
+CONSTANT: D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON       HEX: 4000000
+TYPEDEF: int D3D11_FORMAT_SUPPORT
+
+CONSTANT: D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD                                HEX: 1
+CONSTANT: D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS                        HEX: 2
+CONSTANT: D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE  HEX: 4
+CONSTANT: D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE                           HEX: 8
+CONSTANT: D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX                  HEX: 10
+CONSTANT: D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX                HEX: 20
+CONSTANT: D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD                                HEX: 40
+CONSTANT: D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE                               HEX: 80
+TYPEDEF: int D3D11_FORMAT_SUPPORT2
+
+COM-INTERFACE: ID3D11Asynchronous ID3D11DeviceChild {4b35d0cd-1e15-4258-9c98-1b1333f6dd3b}
+    UINT GetDataSize ( ) ;
+
+CONSTANT: D3D11_ASYNC_GETDATA_DONOTFLUSH 1
+TYPEDEF: int D3D11_ASYNC_GETDATA_FLAG
+
+CONSTANT: D3D11_QUERY_EVENT                           0
+CONSTANT: D3D11_QUERY_OCCLUSION                       1
+CONSTANT: D3D11_QUERY_TIMESTAMP                       2
+CONSTANT: D3D11_QUERY_TIMESTAMP_DISJOINT              3
+CONSTANT: D3D11_QUERY_PIPELINE_STATISTICS             4
+CONSTANT: D3D11_QUERY_OCCLUSION_PREDICATE             5
+CONSTANT: D3D11_QUERY_SO_STATISTICS                   6
+CONSTANT: D3D11_QUERY_SO_OVERFLOW_PREDICATE           7
+CONSTANT: D3D11_QUERY_SO_STATISTICS_STREAM0           8
+CONSTANT: D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0   9
+CONSTANT: D3D11_QUERY_SO_STATISTICS_STREAM1           10
+CONSTANT: D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1   11
+CONSTANT: D3D11_QUERY_SO_STATISTICS_STREAM2           12
+CONSTANT: D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2   13
+CONSTANT: D3D11_QUERY_SO_STATISTICS_STREAM3           14
+CONSTANT: D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3   15
+TYPEDEF: int D3D11_QUERY
+
+CONSTANT: D3D11_QUERY_MISC_PREDICATEHINT 1
+TYPEDEF: int D3D11_QUERY_MISC_FLAG
+
+STRUCT: D3D11_QUERY_DESC
+    { Query     D3D11_QUERY }
+    { MiscFlags UINT        } ;
+
+COM-INTERFACE: ID3D11Query ID3D11Asynchronous {d6c00747-87b7-425e-b84d-44d108560afd}
+    void GetDesc ( D3D11_QUERY_DESC* pDesc ) ;
+
+COM-INTERFACE: ID3D11Predicate ID3D11Query {9eb576dd-9f77-4d86-81aa-8bab5fe490e2} ;
+
+STRUCT: D3D11_QUERY_DATA_TIMESTAMP_DISJOINT
+    { Frequency UINT64 }
+    { Disjoint  BOOL   } ;
+
+STRUCT: D3D11_QUERY_DATA_PIPELINE_STATISTICS
+    { IAVertices    UINT64 }
+    { IAPrimitives  UINT64 }
+    { VSInvocations UINT64 }
+    { GSInvocations UINT64 }
+    { GSPrimitives  UINT64 }
+    { CInvocations  UINT64 }
+    { CPrimitives   UINT64 }
+    { PSInvocations UINT64 }
+    { HSInvocations UINT64 }
+    { DSInvocations UINT64 }
+    { CSInvocations UINT64 } ;
+
+STRUCT: D3D11_QUERY_DATA_SO_STATISTICS
+    { NumPrimitivesWritten    UINT64 }
+    { PrimitivesStorageNeeded UINT64 } ;
+
+CONSTANT: D3D11_COUNTER_DEVICE_DEPENDENT_0 HEX: 40000000
+TYPEDEF: int D3D11_COUNTER
+
+CONSTANT: D3D11_COUNTER_TYPE_FLOAT32 0
+CONSTANT: D3D11_COUNTER_TYPE_UINT16  1
+CONSTANT: D3D11_COUNTER_TYPE_UINT32  2
+CONSTANT: D3D11_COUNTER_TYPE_UINT64  3
+TYPEDEF: int D3D11_COUNTER_TYPE
+
+STRUCT: D3D11_COUNTER_DESC
+    { Counter   D3D11_COUNTER }
+    { MiscFlags UINT          } ;
+
+STRUCT: D3D11_COUNTER_INFO
+    { LastDeviceDependentCounter D3D11_COUNTER }
+    { NumSimultaneousCounters    UINT          }
+    { NumDetectableParallelUnits BYTE         } ;
+
+COM-INTERFACE: ID3D11Counter ID3D11Asynchronous {6e8c49fb-a371-4770-b440-29086022b741}
+    void GetDesc ( D3D11_COUNTER_DESC* pDesc ) ;
+
+CONSTANT: D3D11_STANDARD_MULTISAMPLE_PATTERN HEX: ffffffff
+CONSTANT: D3D11_CENTER_MULTISAMPLE_PATTERN   HEX: fffffffe
+TYPEDEF: int D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS
+
+CONSTANT: D3D11_DEVICE_CONTEXT_IMMEDIATE 0
+CONSTANT: D3D11_DEVICE_CONTEXT_DEFERRED  1
+TYPEDEF: int D3D11_DEVICE_CONTEXT_TYPE
+
+STRUCT: D3D11_CLASS_INSTANCE_DESC
+    { InstanceId               UINT }
+    { InstanceIndex            UINT }
+    { TypeId                   UINT }
+    { ConstantBuffer           UINT }
+    { BaseConstantBufferOffset UINT }
+    { BaseTexture              UINT }
+    { BaseSampler              UINT }
+    { Created                  BOOL } ;
+
+COM-INTERFACE: ID3D11ClassInstance ID3D11DeviceChild {a6cd7faa-b0b7-4a2f-9436-8662a65797cb}
+    void GetClassLinkage ( ID3D11ClassLinkage** ppLinkage )
+    void GetDesc ( D3D11_CLASS_INSTANCE_DESC* pDesc )
+    void GetInstanceName ( LPSTR pInstanceName, SIZE_T* pBufferLength )
+    void GetTypeName ( LPSTR pTypeName, SIZE_T* pBufferLength ) ;
+
+COM-INTERFACE: ID3D11ClassLinkage ID3D11DeviceChild {ddf57cba-9543-46e4-a12b-f207a0fe7fed}
+    HRESULT GetClassInstance ( LPCSTR pClassInstanceName, UINT InstanceIndex, ID3D11ClassInstance** ppInstance )
+    HRESULT CreateClassInstance ( LPCSTR pClassTypeName, UINT ConstantBufferOffset, UINT ConstantVectorOffset, UINT TextureOffset, UINT SamplerOffset, ID3D11ClassInstance** ppInstance ) ;
+
+COM-INTERFACE: ID3D11CommandList ID3D11DeviceChild {a24bc4d1-769e-43f7-8013-98ff566c18e2}
+    UINT GetContextFlags ( ) ;
+
+CONSTANT: D3D11_FEATURE_THREADING                 0
+CONSTANT: D3D11_FEATURE_DOUBLES                   1
+CONSTANT: D3D11_FEATURE_FORMAT_SUPPORT            2
+CONSTANT: D3D11_FEATURE_FORMAT_SUPPORT2           3
+CONSTANT: D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS  4
+TYPEDEF: int D3D11_FEATURE
+
+STRUCT: D3D11_FEATURE_DATA_THREADING
+    { DriverConcurrentCreates BOOL }
+    { DriverCommandLists      BOOL } ;
+
+STRUCT: D3D11_FEATURE_DATA_DOUBLES
+    { DoublePrecisionFloatShaderOps BOOL } ;
+
+STRUCT: D3D11_FEATURE_DATA_FORMAT_SUPPORT
+    { InFormat         DXGI_FORMAT }
+    { OutFormatSupport UINT        } ;
+
+STRUCT: D3D11_FEATURE_DATA_FORMAT_SUPPORT2
+    { InFormat          DXGI_FORMAT }
+    { OutFormatSupport2 UINT        } ;
+
+STRUCT: D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS
+    { ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x BOOL } ;
+
+COM-INTERFACE: ID3D11DeviceContext ID3D11DeviceChild {c0bfa96c-e089-44fb-8eaf-26f8796190da}
+    void VSSetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D11Buffer** ppConstantBuffers )
+    void PSSetShaderResources ( UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView** ppShaderResourceViews )
+    void PSSetShader ( ID3D11PixelShader* pPixelShader, ID3D11ClassInstance** ppClassInstances, UINT NumClassInstances )
+    void PSSetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D11SamplerState** ppSamplers )
+    void VSSetShader ( ID3D11VertexShader* pVertexShader, ID3D11ClassInstance** ppClassInstances, UINT NumClassInstances )
+    void DrawIndexed ( UINT IndexCount, UINT StartIndexLocation, INT BaseVertexLocation )
+    void Draw ( UINT VertexCount, UINT StartVertexLocation )
+    HRESULT Map ( ID3D11Resource* pResource, UINT Subresource, D3D11_MAP MapType, UINT MapFlags, D3D11_MAPPED_SUBRESOURCE* pMappedResource )
+    void Unmap ( ID3D11Resource* pResource, UINT Subresource )
+    void PSSetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D11Buffer** ppConstantBuffers )
+    void IASetInputLayout ( ID3D11InputLayout* pInputLayout )
+    void IASetVertexBuffers ( UINT StartSlot, UINT NumBuffers, ID3D11Buffer** ppVertexBuffers, UINT* pStrides, UINT* pOffsets )
+    void IASetIndexBuffer ( ID3D11Buffer* pIndexBuffer, DXGI_FORMAT Format, UINT Offset )
+    void DrawIndexedInstanced ( UINT IndexCountPerInstance, UINT InstanceCount, UINT StartIndexLocation, INT BaseVertexLocation, UINT StartInstanceLocation )
+    void DrawInstanced ( UINT VertexCountPerInstance, UINT InstanceCount, UINT StartVertexLocation, UINT StartInstanceLocation )
+    void GSSetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D11Buffer** ppConstantBuffers )
+    void GSSetShader ( ID3D11GeometryShader* pShader, ID3D11ClassInstance** ppClassInstances, UINT NumClassInstances )
+    void IASetPrimitiveTopology ( D3D11_PRIMITIVE_TOPOLOGY Topology )
+    void VSSetShaderResources ( UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView** ppShaderResourceViews )
+    void VSSetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D11SamplerState** ppSamplers )
+    void Begin ( ID3D11Asynchronous* pAsync )
+    void End ( ID3D11Asynchronous* pAsync )
+    HRESULT GetData ( ID3D11Asynchronous* pAsync, void* pData, UINT DataSize, UINT GetDataFlags )
+    void SetPredication ( ID3D11Predicate* pPredicate, BOOL PredicateValue )
+    void GSSetShaderResources ( UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView** ppShaderResourceViews )
+    void GSSetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D11SamplerState** ppSamplers )
+    void OMSetRenderTargets ( UINT NumViews, ID3D11RenderTargetView** ppRenderTargetViews, ID3D11DepthStencilView* pDepthStencilView )
+    void OMSetRenderTargetsAndUnorderedAccessViews ( UINT NumRTVs, ID3D11RenderTargetView** ppRenderTargetViews, ID3D11DepthStencilView* pDepthStencilView, UINT UAVStartSlot, UINT NumUAVs, ID3D11UnorderedAccessView** ppUnorderedAccessViews, UINT* pUAVInitialCounts )
+    void OMSetBlendState ( ID3D11BlendState* pBlendState, FLOAT[4] BlendFactor, UINT SampleMask )
+    void OMSetDepthStencilState ( ID3D11DepthStencilState* pDepthStencilState, UINT StencilRef )
+    void SOSetTargets ( UINT NumBuffers, ID3D11Buffer** ppSOTargets, UINT* pOffsets )
+    void DrawAuto ( )
+    void DrawIndexedInstancedIndirect ( ID3D11Buffer* pBufferForArgs, UINT AlignedByteOffsetForArgs )
+    void DrawInstancedIndirect ( ID3D11Buffer* pBufferForArgs, UINT AlignedByteOffsetForArgs )
+    void Dispatch ( UINT ThreadGroupCountX, UINT ThreadGroupCountY, UINT ThreadGroupCountZ )
+    void DispatchIndirect ( ID3D11Buffer* pBufferForArgs, UINT AlignedByteOffsetForArgs )
+    void RSSetState ( ID3D11RasterizerState* pRasterizerState )
+    void RSSetViewports ( UINT NumViewports, D3D11_VIEWPORT* pViewports )
+    void RSSetScissorRects ( UINT NumRects, D3D11_RECT* pRects )
+    void CopySubresourceRegion ( ID3D11Resource* pDstResource, UINT DstSubresource, UINT DstX, UINT DstY, UINT DstZ, ID3D11Resource* pSrcResource, UINT SrcSubresource, D3D11_BOX* pSrcBox )
+    void CopyResource ( ID3D11Resource* pDstResource, ID3D11Resource* pSrcResource )
+    void UpdateSubresource ( ID3D11Resource* pDstResource, UINT DstSubresource, D3D11_BOX* pDstBox, void* pSrcData, UINT SrcRowPitch, UINT SrcDepthPitch )
+    void CopyStructureCount ( ID3D11Buffer* pDstBuffer, UINT DstAlignedByteOffset, ID3D11UnorderedAccessView* pSrcView )
+    void ClearRenderTargetView ( ID3D11RenderTargetView* pRenderTargetView, FLOAT[4] ColorRGBA )
+    void ClearUnorderedAccessViewUint ( ID3D11UnorderedAccessView* pUnorderedAccessView, UINT[4] Values )
+    void ClearUnorderedAccessViewFloat ( ID3D11UnorderedAccessView* pUnorderedAccessView, FLOAT[4] Values )
+    void ClearDepthStencilView ( ID3D11DepthStencilView* pDepthStencilView, UINT ClearFlags, FLOAT Depth, BYTE Stencil )
+    void GenerateMips ( ID3D11ShaderResourceView* pShaderResourceView )
+    void SetResourceMinLOD ( ID3D11Resource* pResource, FLOAT MinLOD )
+    FLOAT GetResourceMinLOD ( ID3D11Resource* pResource )
+    void ResolveSubresource ( ID3D11Resource* pDstResource, UINT DstSubresource, ID3D11Resource* pSrcResource, UINT SrcSubresource, DXGI_FORMAT Format )
+    void ExecuteCommandList ( ID3D11CommandList* pCommandList, BOOL RestoreContextState )
+    void HSSetShaderResources ( UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView** ppShaderResourceViews )
+    void HSSetShader ( ID3D11HullShader* pHullShader, ID3D11ClassInstance** ppClassInstances, UINT NumClassInstances )
+    void HSSetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D11SamplerState** ppSamplers )
+    void HSSetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D11Buffer** ppConstantBuffers )
+    void DSSetShaderResources ( UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView** ppShaderResourceViews )
+    void DSSetShader ( ID3D11DomainShader* pDomainShader, ID3D11ClassInstance** ppClassInstances, UINT NumClassInstances )
+    void DSSetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D11SamplerState** ppSamplers )
+    void DSSetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D11Buffer** ppConstantBuffers )
+    void CSSetShaderResources ( UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView** ppShaderResourceViews )
+    void CSSetUnorderedAccessViews ( UINT StartSlot, UINT NumUAVs, ID3D11UnorderedAccessView** ppUnorderedAccessViews, UINT* pUAVInitialCounts )
+    void CSSetShader ( ID3D11ComputeShader* pComputeShader, ID3D11ClassInstance** ppClassInstances, UINT NumClassInstances )
+    void CSSetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D11SamplerState** ppSamplers )
+    void CSSetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D11Buffer** ppConstantBuffers )
+    void VSGetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D11Buffer** ppConstantBuffers )
+    void PSGetShaderResources ( UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView** ppShaderResourceViews )
+    void PSGetShader ( ID3D11PixelShader** ppPixelShader, ID3D11ClassInstance** ppClassInstances, UINT* pNumClassInstances )
+    void PSGetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D11SamplerState** ppSamplers )
+    void VSGetShader ( ID3D11VertexShader** ppVertexShader, ID3D11ClassInstance** ppClassInstances, UINT* pNumClassInstances )
+    void PSGetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D11Buffer** ppConstantBuffers )
+    void IAGetInputLayout ( ID3D11InputLayout** ppInputLayout )
+    void IAGetVertexBuffers ( UINT StartSlot, UINT NumBuffers, ID3D11Buffer** ppVertexBuffers, UINT* pStrides, UINT* pOffsets )
+    void IAGetIndexBuffer ( ID3D11Buffer** pIndexBuffer, DXGI_FORMAT* Format, UINT* Offset )
+    void GSGetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D11Buffer** ppConstantBuffers )
+    void GSGetShader ( ID3D11GeometryShader** ppGeometryShader, ID3D11ClassInstance** ppClassInstances, UINT* pNumClassInstances )
+    void IAGetPrimitiveTopology ( D3D11_PRIMITIVE_TOPOLOGY* pTopology )
+    void VSGetShaderResources ( UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView** ppShaderResourceViews )
+    void VSGetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D11SamplerState** ppSamplers )
+    void GetPredication ( ID3D11Predicate** ppPredicate, BOOL* pPredicateValue )
+    void GSGetShaderResources ( UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView** ppShaderResourceViews )
+    void GSGetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D11SamplerState** ppSamplers )
+    void OMGetRenderTargets ( UINT NumViews, ID3D11RenderTargetView** ppRenderTargetViews, ID3D11DepthStencilView** ppDepthStencilView )
+    void OMGetRenderTargetsAndUnorderedAccessViews ( UINT NumRTVs, ID3D11RenderTargetView** ppRenderTargetViews, ID3D11DepthStencilView** ppDepthStencilView, UINT UAVStartSlot, UINT NumUAVs, ID3D11UnorderedAccessView** ppUnorderedAccessViews )
+    void OMGetBlendState ( ID3D11BlendState** ppBlendState, FLOAT[4] BlendFactor, UINT* pSampleMask )
+    void OMGetDepthStencilState ( ID3D11DepthStencilState** ppDepthStencilState, UINT* pStencilRef )
+    void SOGetTargets ( UINT NumBuffers, ID3D11Buffer** ppSOTargets )
+    void RSGetState ( ID3D11RasterizerState** ppRasterizerState )
+    void RSGetViewports ( UINT* pNumViewports, D3D11_VIEWPORT* pViewports )
+    void RSGetScissorRects ( UINT* pNumRects, D3D11_RECT* pRects )
+    void HSGetShaderResources ( UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView** ppShaderResourceViews )
+    void HSGetShader ( ID3D11HullShader** ppHullShader, ID3D11ClassInstance** ppClassInstances, UINT* pNumClassInstances )
+    void HSGetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D11SamplerState** ppSamplers )
+    void HSGetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D11Buffer** ppConstantBuffers )
+    void DSGetShaderResources ( UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView** ppShaderResourceViews )
+    void DSGetShader ( ID3D11DomainShader** ppDomainShader, ID3D11ClassInstance** ppClassInstances, UINT* pNumClassInstances )
+    void DSGetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D11SamplerState** ppSamplers )
+    void DSGetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D11Buffer** ppConstantBuffers )
+    void CSGetShaderResources ( UINT StartSlot, UINT NumViews, ID3D11ShaderResourceView** ppShaderResourceViews )
+    void CSGetUnorderedAccessViews ( UINT StartSlot, UINT NumUAVs, ID3D11UnorderedAccessView** ppUnorderedAccessViews )
+    void CSGetShader ( ID3D11ComputeShader** ppComputeShader, ID3D11ClassInstance** ppClassInstances, UINT* pNumClassInstances )
+    void CSGetSamplers ( UINT StartSlot, UINT NumSamplers, ID3D11SamplerState** ppSamplers )
+    void CSGetConstantBuffers ( UINT StartSlot, UINT NumBuffers, ID3D11Buffer** ppConstantBuffers )
+    void ClearState ( )
+    void Flush ( )
+    D3D11_DEVICE_CONTEXT_TYPE GetType ( )
+    UINT GetContextFlags ( )
+    HRESULT FinishCommandList ( BOOL RestoreDeferredContextState, ID3D11CommandList** ppCommandList ) ;
+
+COM-INTERFACE: ID3D11Device IUnknown {db6f6ddb-ac77-4e88-8253-819df9bbf140}
+    HRESULT CreateBuffer ( D3D11_BUFFER_DESC* pDesc, D3D11_SUBRESOURCE_DATA* pInitialData, ID3D11Buffer** ppBuffer )
+    HRESULT CreateTexture1D ( D3D11_TEXTURE1D_DESC* pDesc, D3D11_SUBRESOURCE_DATA* pInitialData, ID3D11Texture1D** ppTexture1D )
+    HRESULT CreateTexture2D ( D3D11_TEXTURE2D_DESC* pDesc, D3D11_SUBRESOURCE_DATA* pInitialData, ID3D11Texture2D** ppTexture2D )
+    HRESULT CreateTexture3D ( D3D11_TEXTURE3D_DESC* pDesc, D3D11_SUBRESOURCE_DATA* pInitialData, ID3D11Texture3D** ppTexture3D )
+    HRESULT CreateShaderResourceView ( ID3D11Resource* pResource, D3D11_SHADER_RESOURCE_VIEW_DESC* pDesc, ID3D11ShaderResourceView** ppSRView )
+    HRESULT CreateUnorderedAccessView ( ID3D11Resource* pResource, D3D11_UNORDERED_ACCESS_VIEW_DESC* pDesc, ID3D11UnorderedAccessView** ppUAView )
+    HRESULT CreateRenderTargetView ( ID3D11Resource* pResource, D3D11_RENDER_TARGET_VIEW_DESC* pDesc, ID3D11RenderTargetView** ppRTView )
+    HRESULT CreateDepthStencilView ( ID3D11Resource* pResource, D3D11_DEPTH_STENCIL_VIEW_DESC* pDesc, ID3D11DepthStencilView** ppDepthStencilView )
+    HRESULT CreateInputLayout ( D3D11_INPUT_ELEMENT_DESC* pInputElementDescs, UINT NumElements, void* pShaderBytecodeWithInputSignature, SIZE_T BytecodeLength, ID3D11InputLayout** ppInputLayout )
+    HRESULT CreateVertexShader ( void* pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage* pClassLinkage, ID3D11VertexShader** ppVertexShader )
+    HRESULT CreateGeometryShader ( void* pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage* pClassLinkage, ID3D11GeometryShader** ppGeometryShader )
+    HRESULT CreateGeometryShaderWithStreamOutput ( void* pShaderBytecode, SIZE_T BytecodeLength, D3D11_SO_DECLARATION_ENTRY* pSODeclaration, UINT NumEntries, UINT* pBufferStrides, UINT NumStrides, UINT RasterizedStream, ID3D11ClassLinkage* pClassLinkage, ID3D11GeometryShader** ppGeometryShader )
+    HRESULT CreatePixelShader ( void* pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage* pClassLinkage, ID3D11PixelShader** ppPixelShader )
+    HRESULT CreateHullShader ( void* pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage* pClassLinkage, ID3D11HullShader** ppHullShader )
+    HRESULT CreateDomainShader ( void* pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage* pClassLinkage, ID3D11DomainShader** ppDomainShader )
+    HRESULT CreateComputeShader ( void* pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage* pClassLinkage, ID3D11ComputeShader** ppComputeShader )
+    HRESULT CreateClassLinkage ( ID3D11ClassLinkage** ppLinkage )
+    HRESULT CreateBlendState ( D3D11_BLEND_DESC* pBlendStateDesc, ID3D11BlendState** ppBlendState )
+    HRESULT CreateDepthStencilState ( D3D11_DEPTH_STENCIL_DESC* pDepthStencilDesc, ID3D11DepthStencilState** ppDepthStencilState )
+    HRESULT CreateRasterizerState ( D3D11_RASTERIZER_DESC* pRasterizerDesc, ID3D11RasterizerState** ppRasterizerState )
+    HRESULT CreateSamplerState ( D3D11_SAMPLER_DESC* pSamplerDesc, ID3D11SamplerState** ppSamplerState )
+    HRESULT CreateQuery ( D3D11_QUERY_DESC* pQueryDesc, ID3D11Query** ppQuery )
+    HRESULT CreatePredicate ( D3D11_QUERY_DESC* pPredicateDesc, ID3D11Predicate** ppPredicate )
+    HRESULT CreateCounter ( D3D11_COUNTER_DESC* pCounterDesc, ID3D11Counter** ppCounter )
+    HRESULT CreateDeferredContext ( UINT ContextFlags, ID3D11DeviceContext** ppDeferredContext )
+    HRESULT OpenSharedResource ( HANDLE hResource, REFIID ReturnedInterface, void** ppResource )
+    HRESULT CheckFormatSupport ( DXGI_FORMAT Format, UINT* pFormatSupport )
+    HRESULT CheckMultisampleQualityLevels ( DXGI_FORMAT Format, UINT SampleCount, UINT* pNumQualityLevels )
+    void CheckCounterInfo ( D3D11_COUNTER_INFO* pCounterInfo )
+    HRESULT CheckCounter ( D3D11_COUNTER_DESC* pDesc, D3D11_COUNTER_TYPE* pType, UINT* pActiveCounters, LPSTR szName, UINT* pNameLength, LPSTR szUnits, UINT* pUnitsLength, LPSTR szDescription, UINT* pDescriptionLength )
+    HRESULT CheckFeatureSupport ( D3D11_FEATURE Feature, void* pFeatureSupportData, UINT FeatureSupportDataSize )
+    HRESULT GetPrivateData ( REFGUID guid, UINT* pDataSize, void* pData )
+    HRESULT SetPrivateData ( REFGUID guid, UINT DataSize, void* pData )
+    HRESULT SetPrivateDataInterface ( REFGUID guid, IUnknown* pData )
+    D3D_FEATURE_LEVEL GetFeatureLevel ( )
+    UINT GetCreationFlags ( )
+    HRESULT GetDeviceRemovedReason ( )
+    void GetImmediateContext ( ID3D11DeviceContext** ppImmediateContext )
+    HRESULT SetExceptionMode ( UINT RaiseFlags )
+    UINT GetExceptionMode ( ) ;
+
+CONSTANT: D3D11_CREATE_DEVICE_SINGLETHREADED                              1
+CONSTANT: D3D11_CREATE_DEVICE_DEBUG                                       2
+CONSTANT: D3D11_CREATE_DEVICE_SWITCH_TO_REF                               4
+CONSTANT: D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS    8
+CONSTANT: D3D11_CREATE_DEVICE_BGRA_SUPPORT                                32
+TYPEDEF: int D3D11_CREATE_DEVICE_FLAG;
+
+CONSTANT: D3D11_SDK_VERSION 7
+
+FUNCTION: HRESULT D3D11CreateDevice (
+    IDXGIAdapter*         pAdapter,
+    D3D_DRIVER_TYPE       DriverType,
+    HMODULE               Software,
+    UINT                  Flags,
+    D3D_FEATURE_LEVEL*    pFeatureLevels,
+    UINT                  FeatureLevels,
+    UINT                  SDKVersion,
+    ID3D11Device**        ppDevice,
+    D3D_FEATURE_LEVEL*    pFeatureLevel,
+    ID3D11DeviceContext** ppImmediateContext ) ;
+
+FUNCTION: HRESULT D3D11CreateDeviceAndSwapChain (
+    IDXGIAdapter*         pAdapter,
+    D3D_DRIVER_TYPE       DriverType,
+    HMODULE               Software,
+    UINT                  Flags,
+    D3D_FEATURE_LEVEL*    pFeatureLevels,
+    UINT                  FeatureLevels,
+    UINT                  SDKVersion,
+    DXGI_SWAP_CHAIN_DESC* pSwapChainDesc,
+    IDXGISwapChain**      ppSwapChain,
+    ID3D11Device**        ppDevice,
+    D3D_FEATURE_LEVEL*    pFeatureLevel,
+    ID3D11DeviceContext** ppImmediateContext ) ;
diff --git a/basis/windows/directx/d3d11/summary.txt b/basis/windows/directx/d3d11/summary.txt
new file mode 100644 (file)
index 0000000..5b3ba35
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 11 bindings. Corresponds to D3D11.h.
diff --git a/basis/windows/directx/d3d11/tags.txt b/basis/windows/directx/d3d11/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3d11shader/authors.txt b/basis/windows/directx/d3d11shader/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3d11shader/d3d11shader.factor b/basis/windows/directx/d3d11shader/d3d11shader.factor
new file mode 100644 (file)
index 0000000..beb5392
--- /dev/null
@@ -0,0 +1,182 @@
+USING: alien.syntax alien.c-types classes.struct windows.types
+windows.directx.d3d10shader windows.directx.d3d10
+windows.directx.d3d11 windows.com windows.com.syntax ;
+IN: windows.directx.d3d11shader
+
+LIBRARY: d3d11
+
+CONSTANT: D3D11_SHVER_PIXEL_SHADER    0
+CONSTANT: D3D11_SHVER_VERTEX_SHADER   1
+CONSTANT: D3D11_SHVER_GEOMETRY_SHADER 2
+CONSTANT: D3D11_SHVER_HULL_SHADER     3
+CONSTANT: D3D11_SHVER_DOMAIN_SHADER   4
+CONSTANT: D3D11_SHVER_COMPUTE_SHADER  5
+TYPEDEF: int D3D11_SHADER_VERSION_TYPE
+
+CONSTANT: D3D11_RETURN_TYPE_UNORM     1
+CONSTANT: D3D11_RETURN_TYPE_SNORM     2
+CONSTANT: D3D11_RETURN_TYPE_SINT      3
+CONSTANT: D3D11_RETURN_TYPE_UINT      4
+CONSTANT: D3D11_RETURN_TYPE_FLOAT     5
+CONSTANT: D3D11_RETURN_TYPE_MIXED     6
+CONSTANT: D3D11_RETURN_TYPE_DOUBLE    7
+CONSTANT: D3D11_RETURN_TYPE_CONTINUED 8
+TYPEDEF: int D3D11_RESOURCE_RETURN_TYPE
+
+C-ENUM: D3D11_CT_CBUFFER
+        D3D11_CT_TBUFFER
+        D3D11_CT_INTERFACE_POINTERS
+        D3D11_CT_RESOURCE_BIND_INFO ;
+TYPEDEF: int D3D11_CBUFFER_TYPE
+TYPEDEF: D3D11_CBUFFER_TYPE* LPD3D11_CBUFFER_TYPE
+
+STRUCT: D3D11_SIGNATURE_PARAMETER_DESC
+    { SemanticName    LPCSTR                          }
+    { SemanticIndex   UINT                            }
+    { Register        UINT                            }
+    { SystemValueType D3D10_NAME                      }
+    { ComponentType   D3D10_REGISTER_COMPONENT_TYPE   }
+    { Mask            BYTE                            }
+    { ReadWriteMask   BYTE                            }
+    { Stream          UINT                            } ;
+
+STRUCT: D3D11_SHADER_BUFFER_DESC
+    { Name            LPCSTR                  }
+    { Type            D3D11_CBUFFER_TYPE      }
+    { Variables       UINT                    }
+    { Size            UINT                    }
+    { uFlags          UINT                    } ;
+
+STRUCT: D3D11_SHADER_VARIABLE_DESC
+    { Name            LPCSTR         }
+    { StartOffset     UINT           }
+    { Size            UINT           }
+    { uFlags          UINT           }
+    { DefaultValue    LPVOID         }
+    { StartTexture    UINT           }
+    { TextureSize     UINT           }
+    { StartSampler    UINT           }
+    { SamplerSize     UINT           } ;
+
+STRUCT: D3D11_SHADER_TYPE_DESC
+    { Class           D3D10_SHADER_VARIABLE_CLASS    }
+    { Type            D3D10_SHADER_VARIABLE_TYPE     }
+    { Rows            UINT                           }
+    { Columns         UINT                           }
+    { Elements        UINT                           }
+    { Members         UINT                           }
+    { Offset          UINT                           }
+    { Name            LPCSTR                         } ;
+
+CONSTANT: D3D11_TESSELLATOR_DOMAIN_UNDEFINED 0
+CONSTANT: D3D11_TESSELLATOR_DOMAIN_ISOLINE   1
+CONSTANT: D3D11_TESSELLATOR_DOMAIN_TRI       2
+CONSTANT: D3D11_TESSELLATOR_DOMAIN_QUAD      3
+TYPEDEF: int D3D11_TESSELLATOR_DOMAIN
+
+CONSTANT: D3D11_TESSELLATOR_PARTITIONING_UNDEFINED       0
+CONSTANT: D3D11_TESSELLATOR_PARTITIONING_INTEGER         1
+CONSTANT: D3D11_TESSELLATOR_PARTITIONING_POW2            2
+CONSTANT: D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD  3
+CONSTANT: D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN 4
+TYPEDEF: int D3D11_TESSELLATOR_PARTITIONING
+
+CONSTANT: D3D11_TESSELLATOR_OUTPUT_UNDEFINED    0
+CONSTANT: D3D11_TESSELLATOR_OUTPUT_POINT        1
+CONSTANT: D3D11_TESSELLATOR_OUTPUT_LINE         2
+CONSTANT: D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW  3
+CONSTANT: D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW 4
+TYPEDEF: int D3D11_TESSELLATOR_OUTPUT_PRIMITIVE
+
+STRUCT: D3D11_SHADER_DESC
+    { Version                     UINT                               }
+    { Creator                     LPCSTR                             }
+    { Flags                       UINT                               }
+    { ConstantBuffers             UINT                               }
+    { BoundResources              UINT                               }
+    { InputParameters             UINT                               }
+    { OutputParameters            UINT                               }
+    { InstructionCount            UINT                               }
+    { TempRegisterCount           UINT                               }
+    { TempArrayCount              UINT                               }
+    { DefCount                    UINT                               }
+    { DclCount                    UINT                               }
+    { TextureNormalInstructions   UINT                               }
+    { TextureLoadInstructions     UINT                               }
+    { TextureCompInstructions     UINT                               }
+    { TextureBiasInstructions     UINT                               }
+    { TextureGradientInstructions UINT                               }
+    { FloatInstructionCount       UINT                               }
+    { IntInstructionCount         UINT                               }
+    { UintInstructionCount        UINT                               }
+    { StaticFlowControlCount      UINT                               }
+    { DynamicFlowControlCount     UINT                               }
+    { MacroInstructionCount       UINT                               }
+    { ArrayInstructionCount       UINT                               }
+    { CutInstructionCount         UINT                               }
+    { EmitInstructionCount        UINT                               }
+    { GSOutputTopology            D3D10_PRIMITIVE_TOPOLOGY           }
+    { GSMaxOutputVertexCount      UINT                               }
+    { InputPrimitive              D3D11_PRIMITIVE                    }
+    { PatchConstantParameters     UINT                               }
+    { cGSInstanceCount            UINT                               }
+    { cControlPoints              UINT                               }
+    { HSOutputPrimitive           D3D11_TESSELLATOR_OUTPUT_PRIMITIVE }
+    { HSPartitioning              D3D11_TESSELLATOR_PARTITIONING     }
+    { TessellatorDomain           D3D11_TESSELLATOR_DOMAIN           }
+    { cBarrierInstructions        UINT                               }
+    { cInterlockedInstructions    UINT                               }
+    { cTextureStoreInstructions   UINT                               } ;
+
+STRUCT: D3D11_SHADER_INPUT_BIND_DESC
+    { Name                        LPCSTR                        }
+    { Type                        D3D10_SHADER_INPUT_TYPE       }
+    { BindPoint                   UINT                          }
+    { BindCount                   UINT                          }
+    { uFlags                      UINT                          }
+    { ReturnType                  D3D11_RESOURCE_RETURN_TYPE    }
+    { Dimension                   D3D10_SRV_DIMENSION           }
+    { NumSamples                  UINT                          } ;
+
+COM-INTERFACE: ID3D11ShaderReflectionType f {6E6FFA6A-9BAE-4613-A51E-91652D508C21}
+    HRESULT GetDesc ( D3D11_SHADER_TYPE_DESC* pDesc )
+    ID3D11ShaderReflectionType* GetMemberTypeByIndex ( UINT Index )
+    ID3D11ShaderReflectionType* GetMemberTypeByName ( LPCSTR Name )
+    LPCSTR GetMemberTypeName ( UINT Index )
+    HRESULT IsEqual ( ID3D11ShaderReflectionType* pType )
+    ID3D11ShaderReflectionType* GetSubType ( )
+    ID3D11ShaderReflectionType* GetBaseClass ( )
+    UINT GetNumInterfaces ( )
+    ID3D11ShaderReflectionType* GetInterfaceByIndex ( UINT uIndex )
+    HRESULT IsOfType ( ID3D11ShaderReflectionType* pType )
+    HRESULT ImplementsInterface ( ID3D11ShaderReflectionType* pBase ) ;
+
+COM-INTERFACE: ID3D11ShaderReflectionVariable f {51F23923-F3E5-4BD1-91CB-606177D8DB4C}
+    HRESULT GetDesc ( D3D11_SHADER_VARIABLE_DESC* pDesc )
+    ID3D11ShaderReflectionType* GetType ( )
+    ID3D11ShaderReflectionConstantBuffer* GetBuffer ( )
+    UINT GetInterfaceSlot ( UINT uArrayIndex ) ;
+
+COM-INTERFACE: ID3D11ShaderReflectionConstantBuffer f {EB62D63D-93DD-4318-8AE8-C6F83AD371B8}
+    HRESULT GetDesc ( D3D11_SHADER_BUFFER_DESC* pDesc )
+    ID3D11ShaderReflectionVariable* GetVariableByIndex ( UINT Index )
+    ID3D11ShaderReflectionVariable* GetVariableByName ( LPCSTR Name ) ;
+
+COM-INTERFACE: ID3D11ShaderReflection IUnknown {17F27486-A342-4D10-8842-AB0874E7F670}
+    HRESULT GetDesc ( D3D11_SHADER_DESC* pDesc )
+    ID3D11ShaderReflectionConstantBuffer* GetConstantBufferByIndex ( UINT Index )
+    ID3D11ShaderReflectionConstantBuffer* GetConstantBufferByName ( LPCSTR Name )
+    HRESULT GetResourceBindingDesc ( UINT ResourceIndex, D3D11_SHADER_INPUT_BIND_DESC* pDesc )
+    HRESULT GetInputParameterDesc ( UINT ParameterIndex, D3D11_SIGNATURE_PARAMETER_DESC* pDesc )
+    HRESULT GetOutputParameterDesc ( UINT ParameterIndex, D3D11_SIGNATURE_PARAMETER_DESC* pDesc )
+    HRESULT GetPatchConstantParameterDesc ( UINT ParameterIndex, D3D11_SIGNATURE_PARAMETER_DESC* pDesc )
+    ID3D11ShaderReflectionVariable* GetVariableByName ( LPCSTR Name )
+    HRESULT GetResourceBindingDescByName ( LPCSTR Name, D3D11_SHADER_INPUT_BIND_DESC* pDesc )
+    UINT GetMovInstructionCount ( )
+    UINT GetMovcInstructionCount ( )
+    UINT GetConversionInstructionCount ( )
+    UINT GetBitwiseInstructionCount ( )
+    D3D10_PRIMITIVE GetGSInputPrimitive ( )
+    BOOL IsSampleFrequencyShader ( )
+    UINT GetNumInterfaceSlots ( )
+    HRESULT GetMinFeatureLevel ( D3D_FEATURE_LEVEL* pLevel ) ;
diff --git a/basis/windows/directx/d3d11shader/summary.txt b/basis/windows/directx/d3d11shader/summary.txt
new file mode 100644 (file)
index 0000000..53576ea
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 11 bindings. Corresponds to D3D11Shader.h.
diff --git a/basis/windows/directx/d3d11shader/tags.txt b/basis/windows/directx/d3d11shader/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3d9/authors.txt b/basis/windows/directx/d3d9/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3d9/d3d9.factor b/basis/windows/directx/d3d9/d3d9.factor
new file mode 100644 (file)
index 0000000..cedfefc
--- /dev/null
@@ -0,0 +1,473 @@
+USING: alien.syntax windows.types alien.c-types windows.directx.d3d9types
+windows.com.syntax windows.com windows.directx.d3d9caps windows.ole32
+windows.kernel32 ;
+IN: windows.directx.d3d9
+
+LIBRARY: d3d9
+
+CONSTANT: DIRECT3D_VERSION         HEX: 0900
+
+CONSTANT: D3D_SDK_VERSION   32
+CONSTANT: D3D9b_SDK_VERSION 31
+
+C-TYPE: IDirect3D9
+
+FUNCTION: IDirect3D9* Direct3DCreate9 ( UINT SDKVersion ) ;
+
+FUNCTION: int D3DPERF_BeginEvent ( D3DCOLOR col, LPCWSTR wszName ) ;
+FUNCTION: int D3DPERF_EndEvent ( ) ;
+FUNCTION: void D3DPERF_SetMarker ( D3DCOLOR col, LPCWSTR wszName ) ;
+FUNCTION: void D3DPERF_SetRegion ( D3DCOLOR col, LPCWSTR wszName ) ;
+FUNCTION: BOOL D3DPERF_QueryRepeatFrame ( ) ;
+
+FUNCTION: void D3DPERF_SetOptions ( DWORD dwOptions ) ;
+FUNCTION: DWORD D3DPERF_GetStatus ( ) ;
+
+COM-INTERFACE: IDirect3D9 IUnknown {81BDCBCA-64D4-426d-AE8D-AD0147F4275C}
+    HRESULT RegisterSoftwareDevice ( void* pInitializeFunction )
+    UINT GetAdapterCount ( )
+    HRESULT GetAdapterIdentifier ( UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER9* pIdentifier )
+    UINT GetAdapterModeCount ( UINT Adapter, D3DFORMAT Format )
+    HRESULT EnumAdapterModes ( UINT Adapter, D3DFORMAT Format, UINT Mode, D3DDISPLAYMODE* pMode )
+    HRESULT GetAdapterDisplayMode ( UINT Adapter, D3DDISPLAYMODE* pMode )
+    HRESULT CheckDeviceType ( UINT Adapter, D3DDEVTYPE DevType, D3DFORMAT AdapterFormat, D3DFORMAT BackBufferFormat, BOOL bWindowed )
+    HRESULT CheckDeviceFormat ( UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, DWORD Usage, D3DRESOURCETYPE RType, D3DFORMAT CheckFormat )
+    HRESULT CheckDeviceMultiSampleType ( UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, BOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType, DWORD* pQualityLevels )
+    HRESULT CheckDepthStencilMatch ( UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat )
+    HRESULT CheckDeviceFormatConversion ( UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SourceFormat, D3DFORMAT TargetFormat )
+    HRESULT GetDeviceCaps ( UINT Adapter, D3DDEVTYPE DeviceType, D3DCAPS9* pCaps )
+    HMONITOR GetAdapterMonitor ( UINT Adapter )
+    HRESULT CreateDevice ( UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DDevice9** ppReturnedDeviceInterface ) ;
+
+TYPEDEF: IDirect3D9* LPDIRECT3D9
+TYPEDEF: IDirect3D9* PDIRECT3D9
+
+C-TYPE: IDirect3DSurface9
+C-TYPE: RGNDATA
+C-TYPE: IDirect3DBaseTexture9
+C-TYPE: PALETTEENTRY
+C-TYPE: IDirect3DVertexBuffer9
+C-TYPE: IDirect3DVertexDeclaration9
+C-TYPE: IDirect3DVertexShader9
+C-TYPE: IDirect3DIndexBuffer9
+C-TYPE: IDirect3DPixelShader9
+
+COM-INTERFACE: IDirect3DDevice9 IUnknown {D0223B96-BF7A-43fd-92BD-A43B0D82B9EB}
+    HRESULT TestCooperativeLevel ( )
+    UINT GetAvailableTextureMem ( )
+    HRESULT EvictManagedResources ( )
+    HRESULT GetDirect3D ( IDirect3D9** ppD3D9 )
+    HRESULT GetDeviceCaps ( D3DCAPS9* pCaps )
+    HRESULT GetDisplayMode ( UINT iSwapChain, D3DDISPLAYMODE* pMode )
+    HRESULT GetCreationParameters ( D3DDEVICE_CREATION_PARAMETERS *pParameters )
+    HRESULT SetCursorProperties ( UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap )
+    void SetCursorPosition ( int X, int Y, DWORD Flags )
+    BOOL ShowCursor ( BOOL bShow )
+    HRESULT CreateAdditionalSwapChain ( D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** pSwapChain )
+    HRESULT GetSwapChain ( UINT iSwapChain, IDirect3DSwapChain9** pSwapChain )
+    UINT GetNumberOfSwapChains ( )
+    HRESULT Reset ( D3DPRESENT_PARAMETERS* pPresentationParameters )
+    HRESULT Present ( RECT* pSourceRect, RECT* pDestRect, HWND hDestWindowOverride, RGNDATA* pDirtyRegion )
+    HRESULT GetBackBuffer ( UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer )
+    HRESULT GetRasterStatus ( UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus )
+    HRESULT SetDialogBoxMode ( BOOL bEnableDialogs )
+    void SetGammaRamp ( UINT iSwapChain, DWORD Flags, D3DGAMMARAMP* pRamp )
+    void GetGammaRamp ( UINT iSwapChain, D3DGAMMARAMP* pRamp )
+    HRESULT CreateTexture ( UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle )
+    HRESULT CreateVolumeTexture ( UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle )
+    HRESULT CreateCubeTexture ( UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle )
+    HRESULT CreateVertexBuffer ( UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle )
+    HRESULT CreateIndexBuffer ( UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle )
+    HRESULT CreateRenderTarget ( UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle )
+    HRESULT CreateDepthStencilSurface ( UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle )
+    HRESULT UpdateSurface ( IDirect3DSurface9* pSourceSurface, RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, POINT* pDestPoint )
+    HRESULT UpdateTexture ( IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture )
+    HRESULT GetRenderTargetData ( IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface )
+    HRESULT GetFrontBufferData ( UINT iSwapChain, IDirect3DSurface9* pDestSurface )
+    HRESULT StretchRect ( IDirect3DSurface9* pSourceSurface, RECT* pSourceRect, IDirect3DSurface9* pDestSurface, RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter )
+    HRESULT ColorFill ( IDirect3DSurface9* pSurface, RECT* pRect, D3DCOLOR color )
+    HRESULT CreateOffscreenPlainSurface ( UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle )
+    HRESULT SetRenderTarget ( DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget )
+    HRESULT GetRenderTarget ( DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget )
+    HRESULT SetDepthStencilSurface ( IDirect3DSurface9* pNewZStencil )
+    HRESULT GetDepthStencilSurface ( IDirect3DSurface9** ppZStencilSurface )
+    HRESULT BeginScene ( )
+    HRESULT EndScene ( )
+    HRESULT Clear ( DWORD Count, D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil )
+    HRESULT SetTransform ( D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix )
+    HRESULT GetTransform ( D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix )
+    HRESULT MultiplyTransform ( D3DTRANSFORMSTATETYPE, D3DMATRIX* )
+    HRESULT SetViewport ( D3DVIEWPORT9* pViewport )
+    HRESULT GetViewport ( D3DVIEWPORT9* pViewport )
+    HRESULT SetMaterial ( D3DMATERIAL9* pMaterial )
+    HRESULT GetMaterial ( D3DMATERIAL9* pMaterial )
+    HRESULT SetLight ( DWORD Index, D3DLIGHT9* l )
+    HRESULT GetLight ( DWORD Index, D3DLIGHT9* l )
+    HRESULT LightEnable ( DWORD Index, BOOL Enable )
+    HRESULT GetLightEnable ( DWORD Index, BOOL* pEnable )
+    HRESULT SetClipPlane ( DWORD Index, float* pPlane )
+    HRESULT GetClipPlane ( DWORD Index, float* pPlane )
+    HRESULT SetRenderState ( D3DRENDERSTATETYPE State, DWORD Value )
+    HRESULT GetRenderState ( D3DRENDERSTATETYPE State, DWORD* pValue )
+    HRESULT CreateStateBlock ( D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB )
+    HRESULT BeginStateBlock ( )
+    HRESULT EndStateBlock ( IDirect3DStateBlock9** ppSB )
+    HRESULT SetClipStatus ( D3DCLIPSTATUS9* pClipStatus )
+    HRESULT GetClipStatus ( D3DCLIPSTATUS9* pClipStatus )
+    HRESULT GetTexture ( DWORD Stage, IDirect3DBaseTexture9** ppTexture )
+    HRESULT SetTexture ( DWORD Stage, IDirect3DBaseTexture9* pTexture )
+    HRESULT GetTextureStageState ( DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue )
+    HRESULT SetTextureStageState ( DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value )
+    HRESULT GetSamplerState ( DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue )
+    HRESULT SetSamplerState ( DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value )
+    HRESULT ValidateDevice ( DWORD* pNumPasses )
+    HRESULT SetPaletteEntries ( UINT PaletteNumber, PALETTEENTRY* pEntries )
+    HRESULT GetPaletteEntries ( UINT PaletteNumber, PALETTEENTRY* pEntries )
+    HRESULT SetCurrentTexturePalette ( UINT PaletteNumber )
+    HRESULT GetCurrentTexturePalette ( UINT *PaletteNumber )
+    HRESULT SetScissorRect ( RECT* pRect )
+    HRESULT GetScissorRect ( RECT* pRect )
+    HRESULT SetSoftwareVertexProcessing ( BOOL bSoftware )
+    BOOL GetSoftwareVertexProcessing ( )
+    HRESULT SetNPatchMode ( float nSegments )
+    float GetNPatchMode ( )
+    HRESULT DrawPrimitive ( D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount )
+    HRESULT DrawIndexedPrimitive ( D3DPRIMITIVETYPE x, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount )
+    HRESULT DrawPrimitiveUP ( D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, void* pVertexStreamZeroData, UINT VertexStreamZeroStride )
+    HRESULT DrawIndexedPrimitiveUP ( D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, void* pIndexData, D3DFORMAT IndexDataFormat, void* pVertexStreamZeroData, UINT VertexStreamZeroStride )
+    HRESULT ProcessVertices ( UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags )
+    HRESULT CreateVertexDeclaration ( D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl )
+    HRESULT SetVertexDeclaration ( IDirect3DVertexDeclaration9* pDecl )
+    HRESULT GetVertexDeclaration ( IDirect3DVertexDeclaration9** ppDecl )
+    HRESULT SetFVF ( DWORD FVF )
+    HRESULT GetFVF ( DWORD* pFVF )
+    HRESULT CreateVertexShader ( DWORD* pFunction, IDirect3DVertexShader9** ppShader )
+    HRESULT SetVertexShader ( IDirect3DVertexShader9* pShader )
+    HRESULT GetVertexShader ( IDirect3DVertexShader9** ppShader )
+    HRESULT SetVertexShaderConstantF ( UINT StartRegister, float* pConstantData, UINT Vector4fCount )
+    HRESULT GetVertexShaderConstantF ( UINT StartRegister, float* pConstantData, UINT Vector4fCount )
+    HRESULT SetVertexShaderConstantI ( UINT StartRegister, int* pConstantData, UINT Vector4iCount )
+    HRESULT GetVertexShaderConstantI ( UINT StartRegister, int* pConstantData, UINT Vector4iCount )
+    HRESULT SetVertexShaderConstantB ( UINT StartRegister, BOOL* pConstantData, UINT  BoolCount )
+    HRESULT GetVertexShaderConstantB ( UINT StartRegister, BOOL* pConstantData, UINT BoolCount )
+    HRESULT SetStreamSource ( UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride )
+    HRESULT GetStreamSource ( UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* pOffsetInBytes, UINT* pStride )
+    HRESULT SetStreamSourceFreq ( UINT StreamNumber, UINT Setting )
+    HRESULT GetStreamSourceFreq ( UINT StreamNumber, UINT* pSetting )
+    HRESULT SetIndices ( IDirect3DIndexBuffer9* pIndexData )
+    HRESULT GetIndices ( IDirect3DIndexBuffer9** ppIndexData )
+    HRESULT CreatePixelShader ( DWORD* pFunction, IDirect3DPixelShader9** ppShader )
+    HRESULT SetPixelShader ( IDirect3DPixelShader9* pShader )
+    HRESULT GetPixelShader ( IDirect3DPixelShader9** ppShader )
+    HRESULT SetPixelShaderConstantF ( UINT StartRegister, float* pConstantData, UINT Vector4fCount )
+    HRESULT GetPixelShaderConstantF ( UINT StartRegister, float* pConstantData, UINT Vector4fCount )
+    HRESULT SetPixelShaderConstantI ( UINT StartRegister, int* pConstantData, UINT Vector4iCount )
+    HRESULT GetPixelShaderConstantI ( UINT StartRegister, int* pConstantData, UINT Vector4iCount )
+    HRESULT SetPixelShaderConstantB ( UINT StartRegister, BOOL* pConstantData, UINT  BoolCount )
+    HRESULT GetPixelShaderConstantB ( UINT StartRegister, BOOL* pConstantData, UINT BoolCount )
+    HRESULT DrawRectPatch ( UINT Handle, float* pNumSegs, D3DRECTPATCH_INFO* pRectPatchInfo )
+    HRESULT DrawTriPatch ( UINT Handle, float* pNumSegs, D3DTRIPATCH_INFO* pTriPatchInfo )
+    HRESULT DeletePatch ( UINT Handle )
+    HRESULT CreateQuery ( D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery ) ;
+
+TYPEDEF: IDirect3DDevice9* LPDIRECT3DDEVICE9
+TYPEDEF: IDirect3DDevice9* PDIRECT3DDEVICE9
+
+COM-INTERFACE: IDirect3DStateBlock9 IUnknown {B07C4FE5-310D-4ba8-A23C-4F0F206F218B}
+    HRESULT GetDevice ( IDirect3DDevice9** ppDevice )
+    HRESULT Capture ( )
+    HRESULT Apply ( ) ;
+
+COM-INTERFACE: IDirect3DSwapChain9 IUnknown {794950F2-ADFC-458a-905E-10A10B0B503B}
+    HRESULT Present ( RECT* pSourceRect, RECT* pDestRect, HWND hDestWindowOverride, RGNDATA* pDirtyRegion, DWORD dwFlags )
+    HRESULT GetFrontBufferData ( IDirect3DSurface9* pDestSurface )
+    HRESULT GetBackBuffer ( UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer )
+    HRESULT GetRasterStatus ( D3DRASTER_STATUS* pRasterStatus )
+    HRESULT GetDisplayMode ( D3DDISPLAYMODE* pMode )
+    HRESULT GetDevice ( IDirect3DDevice9** ppDevice )
+    HRESULT GetPresentParameters ( D3DPRESENT_PARAMETERS* pPresentationParameters ) ;
+
+TYPEDEF: IDirect3DSwapChain9* LPDIRECT3DSWAPCHAIN9
+TYPEDEF: IDirect3DSwapChain9* PDIRECT3DSWAPCHAIN9
+
+COM-INTERFACE: IDirect3DResource9 IUnknown {05EEC05D-8F7D-4362-B999-D1BAF357C704}
+    HRESULT GetDevice ( IDirect3DDevice9** ppDevice )
+    HRESULT SetPrivateData ( REFGUID refguid, void* pData, DWORD SizeOfData, DWORD Flags )
+    HRESULT GetPrivateData ( REFGUID refguid, void* pData, DWORD* pSizeOfData )
+    HRESULT FreePrivateData ( REFGUID refguid )
+    DWORD SetPriority ( DWORD PriorityNew )
+    DWORD GetPriority ( )
+    void PreLoad ( )
+    D3DRESOURCETYPE GetType ( ) ;
+
+TYPEDEF: IDirect3DResource9* LPDIRECT3DRESOURCE9
+TYPEDEF: IDirect3DResource9* PDIRECT3DRESOURCE9
+
+COM-INTERFACE: IDirect3DVertexDeclaration9 IUnknown {DD13C59C-36FA-4098-A8FB-C7ED39DC8546}
+    HRESULT GetDevice ( IDirect3DDevice9** ppDevice )
+    HRESULT GetDeclaration ( D3DVERTEXELEMENT9* pElement, UINT* pNumElements ) ;
+
+TYPEDEF: IDirect3DVertexDeclaration9* LPDIRECT3DVERTEXDECLARATION9
+TYPEDEF: IDirect3DVertexDeclaration9* PDIRECT3DVERTEXDECLARATION9
+
+COM-INTERFACE: IDirect3DVertexShader9 IUnknown {EFC5557E-6265-4613-8A94-43857889EB36}
+    HRESULT GetDevice ( IDirect3DDevice9** ppDevice )
+    HRESULT GetFunction ( void* x, UINT* pSizeOfData ) ;
+
+TYPEDEF: IDirect3DVertexShader9* LPDIRECT3DVERTEXSHADER9
+TYPEDEF: IDirect3DVertexShader9* PDIRECT3DVERTEXSHADER9
+
+COM-INTERFACE: IDirect3DPixelShader9 IUnknown {6D3BDBDC-5B02-4415-B852-CE5E8BCCB289}
+    HRESULT GetDevice ( IDirect3DDevice9** ppDevice )
+    HRESULT GetFunction ( void* x, UINT* pSizeOfData ) ;
+
+TYPEDEF: IDirect3DPixelShader9* LPDIRECT3DPIXELSHADER9
+TYPEDEF: IDirect3DPixelShader9* PDIRECT3DPIXELSHADER9
+
+COM-INTERFACE: IDirect3DBaseTexture9 IDirect3DResource9 {580CA87E-1D3C-4d54-991D-B7D3E3C298CE}
+    DWORD SetLOD ( DWORD LODNew )
+    DWORD GetLOD ( )
+    DWORD GetLevelCount ( )
+    HRESULT SetAutoGenFilterType ( D3DTEXTUREFILTERTYPE FilterType )
+    D3DTEXTUREFILTERTYPE GetAutoGenFilterType ( )
+    void GenerateMipSubLevels ( ) ;
+
+TYPEDEF: IDirect3DBaseTexture9* LPDIRECT3DBASETEXTURE9
+TYPEDEF: IDirect3DBaseTexture9* PDIRECT3DBASETEXTURE9
+
+COM-INTERFACE: IDirect3DTexture9 IDirect3DBaseTexture9 {85C31227-3DE5-4f00-9B3A-F11AC38C18B5}
+    HRESULT GetLevelDesc ( UINT Level, D3DSURFACE_DESC* pDesc )
+    HRESULT GetSurfaceLevel ( UINT Level, IDirect3DSurface9** ppSurfaceLevel )
+    HRESULT LockRect ( UINT Level, D3DLOCKED_RECT* pLockedRect, RECT* pRect, DWORD Flags )
+    HRESULT UnlockRect ( UINT Level ) ;
+    
+TYPEDEF: IDirect3DTexture9* LPDIRECT3DTEXTURE9
+TYPEDEF: IDirect3DTexture9* PDIRECT3DTEXTURE9
+
+COM-INTERFACE: IDirect3DVolumeTexture9 IDirect3DBaseTexture9 {2518526C-E789-4111-A7B9-47EF328D13E6}
+    HRESULT GetLevelDesc ( UINT Level, D3DVOLUME_DESC* pDesc )
+    HRESULT GetVolumeLevel ( UINT Level, IDirect3DVolume9** ppVolumeLevel )
+    HRESULT LockBox ( UINT Level, D3DLOCKED_BOX* pLockedVolume, D3DBOX* pBox, DWORD Flags )
+    HRESULT UnlockBox ( UINT Level )
+    HRESULT AddDirtyBox ( D3DBOX* pDirtyBox ) ;
+
+TYPEDEF: IDirect3DVolumeTexture9* LPDIRECT3DVOLUMETEXTURE9
+TYPEDEF: IDirect3DVolumeTexture9* PDIRECT3DVOLUMETEXTURE9
+
+COM-INTERFACE: IDirect3DCubeTexture9 IDirect3DBaseTexture9 {FFF32F81-D953-473a-9223-93D652ABA93F}
+    HRESULT GetLevelDesc ( UINT Level, D3DSURFACE_DESC* pDesc )
+    HRESULT GetCubeMapSurface ( D3DCUBEMAP_FACES FaceType, UINT Level, IDirect3DSurface9** ppCubeMapSurface )
+    HRESULT LockRect ( D3DCUBEMAP_FACES FaceType, UINT Level, D3DLOCKED_RECT* pLockedRect, RECT* pRect, DWORD Flags )
+    HRESULT UnlockRect ( D3DCUBEMAP_FACES FaceType, UINT Level )
+    HRESULT AddDirtyRect ( D3DCUBEMAP_FACES FaceType, RECT* pDirtyRect ) ;
+
+TYPEDEF: IDirect3DCubeTexture9* LPDIRECT3DCUBETEXTURE9
+TYPEDEF: IDirect3DCubeTexture9* PDIRECT3DCUBETEXTURE9
+
+COM-INTERFACE: IDirect3DVertexBuffer9 IDirect3DResource9 {B64BB1B5-FD70-4df6-BF91-19D0A12455E3}
+    HRESULT Lock ( UINT OffsetToLock, UINT SizeToLock, void** ppbData, DWORD Flags )
+    HRESULT Unlock ( )
+    HRESULT GetDesc ( D3DVERTEXBUFFER_DESC* pDesc ) ;
+
+TYPEDEF: IDirect3DVertexBuffer9* LPDIRECT3DVERTEXBUFFER9
+TYPEDEF: IDirect3DVertexBuffer9* PDIRECT3DVERTEXBUFFER9
+
+COM-INTERFACE: IDirect3DIndexBuffer9 IDirect3DResource9 {7C9DD65E-D3F7-4529-ACEE-785830ACDE35}
+    HRESULT Lock ( UINT OffsetToLock, UINT SizeToLock, void** ppbData, DWORD Flags )
+    HRESULT Unlock ( )
+    HRESULT GetDesc ( D3DINDEXBUFFER_DESC* pDesc ) ;
+
+TYPEDEF: IDirect3DIndexBuffer9* LPDIRECT3DINDEXBUFFER9
+TYPEDEF: IDirect3DIndexBuffer9* PDIRECT3DINDEXBUFFER9
+
+COM-INTERFACE: IDirect3DSurface9 IDirect3DResource9 {0CFBAF3A-9FF6-429a-99B3-A2796AF8B89B}
+    HRESULT GetContainer ( REFIID riid, void** ppContainer )
+    HRESULT GetDesc ( D3DSURFACE_DESC* pDesc )
+    HRESULT LockRect ( D3DLOCKED_RECT* pLockedRect, RECT* pRect, DWORD Flags )
+    HRESULT UnlockRect ( )
+    HRESULT GetDC ( HDC* phdc )
+    HRESULT ReleaseDC ( HDC hdc ) ;
+
+TYPEDEF: IDirect3DSurface9* LPDIRECT3DSURFACE9
+TYPEDEF: IDirect3DSurface9* PDIRECT3DSURFACE9
+
+COM-INTERFACE: IDirect3DVolume9 IUnknown {24F416E6-1F67-4aa7-B88E-D33F6F3128A1}
+    HRESULT GetDevice ( IDirect3DDevice9** ppDevice )
+    HRESULT SetPrivateData ( REFGUID refguid, void* pData, DWORD SizeOfData, DWORD Flags )
+    HRESULT GetPrivateData ( REFGUID refguid, void* pData, DWORD* pSizeOfData )
+    HRESULT FreePrivateData ( REFGUID refguid )
+    HRESULT GetContainer ( REFIID riid, void** ppContainer )
+    HRESULT GetDesc ( D3DVOLUME_DESC *pDesc )
+    HRESULT LockBox ( D3DLOCKED_BOX* pLockedVolume, D3DBOX* pBox, DWORD Flags )
+    HRESULT UnlockBox ( ) ;
+
+TYPEDEF: IDirect3DVolume9* LPDIRECT3DVOLUME9
+TYPEDEF: IDirect3DVolume9* PDIRECT3DVOLUME9
+
+COM-INTERFACE: IDirect3DQuery9 IUnknown {d9771460-a695-4f26-bbd3-27b840b541cc}
+    HRESULT GetDevice ( IDirect3DDevice9** ppDevice )
+    D3DQUERYTYPE GetType ( )
+    DWORD GetDataSize ( )
+    HRESULT Issue ( DWORD dwIssueFlags )
+    HRESULT GetData ( void* pData, DWORD dwSize, DWORD dwGetDataFlags ) ;
+
+TYPEDEF: IDirect3DQuery9* LPDIRECT3DQUERY9
+TYPEDEF: IDirect3DQuery9* PDIRECT3DQUERY9
+
+CONSTANT: D3DSPD_IUNKNOWN                         HEX: 00000001
+
+CONSTANT: D3DCREATE_FPU_PRESERVE                  HEX: 00000002
+CONSTANT: D3DCREATE_MULTITHREADED                 HEX: 00000004
+
+CONSTANT: D3DCREATE_PUREDEVICE                    HEX: 00000010
+CONSTANT: D3DCREATE_SOFTWARE_VERTEXPROCESSING     HEX: 00000020
+CONSTANT: D3DCREATE_HARDWARE_VERTEXPROCESSING     HEX: 00000040
+CONSTANT: D3DCREATE_MIXED_VERTEXPROCESSING        HEX: 00000080
+
+CONSTANT: D3DCREATE_DISABLE_DRIVER_MANAGEMENT     HEX: 00000100
+CONSTANT: D3DCREATE_ADAPTERGROUP_DEVICE           HEX: 00000200
+CONSTANT: D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX  HEX: 00000400
+
+CONSTANT: D3DCREATE_NOWINDOWCHANGES               HEX: 00000800
+
+CONSTANT: D3DCREATE_DISABLE_PSGP_THREADING        HEX: 00002000
+CONSTANT: D3DCREATE_ENABLE_PRESENTSTATS           HEX: 00004000
+CONSTANT: D3DCREATE_DISABLE_PRINTSCREEN           HEX: 00008000
+CONSTANT: D3DCREATE_SCREENSAVER                   HEX: 10000000
+
+CONSTANT: D3DADAPTER_DEFAULT                     0
+CONSTANT: D3DENUM_WHQL_LEVEL                     2
+CONSTANT: D3DENUM_NO_DRIVERVERSION               4
+CONSTANT: D3DPRESENT_BACK_BUFFERS_MAX            3
+CONSTANT: D3DPRESENT_BACK_BUFFERS_MAX_EX         30
+
+CONSTANT: D3DSGR_NO_CALIBRATION                  HEX: 00000000
+CONSTANT: D3DSGR_CALIBRATE                       HEX: 00000001
+
+CONSTANT: D3DCURSOR_IMMEDIATE_UPDATE             HEX: 00000001
+
+CONSTANT: D3DPRESENT_DONOTWAIT                   HEX: 00000001
+CONSTANT: D3DPRESENT_LINEAR_CONTENT              HEX: 00000002
+
+CONSTANT: D3DPRESENT_DONOTFLIP                   HEX: 00000004
+CONSTANT: D3DPRESENT_FLIPRESTART                 HEX: 00000008
+CONSTANT: D3DPRESENT_VIDEO_RESTRICT_TO_MONITOR   HEX: 00000010
+CONSTANT: D3DPRESENT_UPDATEOVERLAYONLY           HEX: 00000020
+CONSTANT: D3DPRESENT_HIDEOVERLAY                 HEX: 00000040
+CONSTANT: D3DPRESENT_UPDATECOLORKEY              HEX: 00000080
+CONSTANT: D3DPRESENT_FORCEIMMEDIATE              HEX: 00000100
+
+: D3D_OK ( -- n ) S_OK ; inline
+
+CONSTANT: D3DERR_WRONGTEXTUREFORMAT               HEX: 88760818
+CONSTANT: D3DERR_UNSUPPORTEDCOLOROPERATION        HEX: 88760819
+CONSTANT: D3DERR_UNSUPPORTEDCOLORARG              HEX: 8876081A
+CONSTANT: D3DERR_UNSUPPORTEDALPHAOPERATION        HEX: 8876081B
+CONSTANT: D3DERR_UNSUPPORTEDALPHAARG              HEX: 8876081C
+CONSTANT: D3DERR_TOOMANYOPERATIONS                HEX: 8876081D
+CONSTANT: D3DERR_CONFLICTINGTEXTUREFILTER         HEX: 8876081E
+CONSTANT: D3DERR_UNSUPPORTEDFACTORVALUE           HEX: 8876081F
+CONSTANT: D3DERR_CONFLICTINGRENDERSTATE           HEX: 88760820
+CONSTANT: D3DERR_UNSUPPORTEDTEXTUREFILTER         HEX: 88760821
+CONSTANT: D3DERR_CONFLICTINGTEXTUREPALETTE        HEX: 88760825
+CONSTANT: D3DERR_DRIVERINTERNALERROR              HEX: 88760826
+CONSTANT: D3DERR_NOTFOUND                         HEX: 88760866
+CONSTANT: D3DERR_MOREDATA                         HEX: 88760867
+CONSTANT: D3DERR_DEVICELOST                       HEX: 88760868
+CONSTANT: D3DERR_DEVICENOTRESET                   HEX: 88760869
+CONSTANT: D3DERR_NOTAVAILABLE                     HEX: 8876086A
+CONSTANT: D3DERR_OUTOFVIDEOMEMORY                 HEX: 8876017C
+CONSTANT: D3DERR_INVALIDDEVICE                    HEX: 8876086B
+CONSTANT: D3DERR_INVALIDCALL                      HEX: 8876086C
+CONSTANT: D3DERR_DRIVERINVALIDCALL                HEX: 8876086D
+CONSTANT: D3DERR_WASSTILLDRAWING                  HEX: 8876021C
+CONSTANT: D3DOK_NOAUTOGEN                         HEX: 0876086F
+CONSTANT: D3DERR_DEVICEREMOVED                    HEX: 88760870
+CONSTANT: S_NOT_RESIDENT                          HEX: 08760875
+CONSTANT: S_RESIDENT_IN_SHARED_MEMORY             HEX: 08760876
+CONSTANT: S_PRESENT_MODE_CHANGED                  HEX: 08760877
+CONSTANT: S_PRESENT_OCCLUDED                      HEX: 08760878
+CONSTANT: D3DERR_DEVICEHUNG                       HEX: 88760874
+CONSTANT: D3DERR_UNSUPPORTEDOVERLAY               HEX: 8876087C
+CONSTANT: D3DERR_UNSUPPORTEDOVERLAYFORMAT         HEX: 8876087D
+CONSTANT: D3DERR_CANNOTPROTECTCONTENT             HEX: 8876087E
+CONSTANT: D3DERR_UNSUPPORTEDCRYPTO                HEX: 8876087F
+CONSTANT: D3DERR_PRESENT_STATISTICS_DISJOINT      HEX: 88760884
+
+FUNCTION: HRESULT Direct3DCreate9Ex ( UINT SDKVersion, IDirect3D9Ex** out ) ;
+
+COM-INTERFACE: IDirect3D9Ex IDirect3D9 {02177241-69FC-400C-8FF1-93A44DF6861D}
+    UINT GetAdapterModeCountEx ( UINT Adapter, D3DDISPLAYMODEFILTER* pFilter  )
+    HRESULT EnumAdapterModesEx ( UINT Adapter, D3DDISPLAYMODEFILTER* pFilter, UINT Mode, D3DDISPLAYMODEEX* pMode )
+    HRESULT GetAdapterDisplayModeEx ( UINT Adapter, D3DDISPLAYMODEEX* pMode, D3DDISPLAYROTATION* pRotation )
+    HRESULT CreateDeviceEx ( UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, D3DDISPLAYMODEEX* pFullscreenDisplayMode, IDirect3DDevice9Ex** ppReturnedDeviceInterface )
+    HRESULT GetAdapterLUID ( UINT Adapter, LUID* pLUID ) ;
+
+TYPEDEF: IDirect3D9Ex* LPDIRECT3D9EX
+TYPEDEF: IDirect3D9Ex* PDIRECT3D9EX
+
+COM-INTERFACE: IDirect3DDevice9Ex IDirect3DDevice9 {B18B10CE-2649-405a-870F-95F777D4313A}
+    HRESULT SetConvolutionMonoKernel ( UINT width, UINT height, float* rows, float* columns )
+    HRESULT ComposeRects ( IDirect3DSurface9* pSrc, IDirect3DSurface9* pDst, IDirect3DVertexBuffer9* pSrcRectDescs, UINT NumRects, IDirect3DVertexBuffer9* pDstRectDescs, D3DCOMPOSERECTSOP Operation, int Xoffset, int Yoffset )
+    HRESULT PresentEx ( RECT* pSourceRect, RECT* pDestRect, HWND hDestWindowOverride, RGNDATA* pDirtyRegion, DWORD dwFlags )
+    HRESULT GetGPUThreadPriority ( INT* pPriority )
+    HRESULT SetGPUThreadPriority ( INT Priority )
+    HRESULT WaitForVBlank ( UINT iSwapChain )
+    HRESULT CheckResourceResidency ( IDirect3DResource9** pResourceArray, UINT32 NumResources )
+    HRESULT SetMaximumFrameLatency ( UINT MaxLatency )
+    HRESULT GetMaximumFrameLatency ( UINT* pMaxLatency )
+    HRESULT CheckDeviceState ( HWND hDestinationWindow )
+    HRESULT CreateRenderTargetEx ( UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle, DWORD Usage )
+    HRESULT CreateOffscreenPlainSurfaceEx ( UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle, DWORD Usage )
+    HRESULT CreateDepthStencilSurfaceEx ( UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle, DWORD Usage )
+    HRESULT ResetEx ( D3DPRESENT_PARAMETERS* pPresentationParameters, D3DDISPLAYMODEEX *pFullscreenDisplayMode )
+    HRESULT GetDisplayModeEx ( UINT iSwapChain, D3DDISPLAYMODEEX* pMode, D3DDISPLAYROTATION* pRotation ) ;
+
+TYPEDEF: IDirect3DDevice9Ex* LPDIRECT3DDEVICE9EX
+TYPEDEF: IDirect3DDevice9Ex* PDIRECT3DDEVICE9EX
+
+COM-INTERFACE: IDirect3DSwapChain9Ex IDirect3DSwapChain9 {91886CAF-1C3D-4d2e-A0AB-3E4C7D8D3303}
+    HRESULT GetLastPresentCount ( UINT* pLastPresentCount )
+    HRESULT GetPresentStats ( D3DPRESENTSTATS* pPresentationStatistics )
+    HRESULT GetDisplayModeEx ( D3DDISPLAYMODEEX* pMode, D3DDISPLAYROTATION* pRotation ) ;
+
+TYPEDEF: IDirect3DSwapChain9Ex* LPDIRECT3DSWAPCHAIN9EX
+TYPEDEF: IDirect3DSwapChain9Ex* PDIRECT3DSWAPCHAIN9EX
+
+COM-INTERFACE: IDirect3D9ExOverlayExtension IUnknown {187aeb13-aaf5-4c59-876d-e059088c0df8}
+    HRESULT CheckDeviceOverlayType ( UINT Adapter, D3DDEVTYPE DevType, UINT OverlayWidth, UINT OverlayHeight, D3DFORMAT OverlayFormat, D3DDISPLAYMODEEX* pDisplayMode, D3DDISPLAYROTATION DisplayRotation, D3DOVERLAYCAPS* pOverlayCaps ) ;
+
+TYPEDEF: IDirect3D9ExOverlayExtension* LPDIRECT3D9EXOVERLAYEXTENSION
+TYPEDEF: IDirect3D9ExOverlayExtension* PDIRECT3D9EXOVERLAYEXTENSION
+
+COM-INTERFACE: IDirect3DDevice9Video IUnknown {26DC4561-A1EE-4ae7-96DA-118A36C0EC95}
+    HRESULT GetContentProtectionCaps ( GUID* pCryptoType, GUID* pDecodeProfile, D3DCONTENTPROTECTIONCAPS* pCaps )
+    HRESULT CreateAuthenticatedChannel ( D3DAUTHENTICATEDCHANNELTYPE ChannelType, IDirect3DAuthenticatedChannel9** ppAuthenticatedChannel, HANDLE* pChannelHandle )
+    HRESULT CreateCryptoSession ( GUID* pCryptoType, GUID* pDecodeProfile, IDirect3DCryptoSession9** ppCryptoSession, HANDLE* pCryptoHandle ) ;
+
+TYPEDEF: IDirect3DDevice9Video* LPDIRECT3DDEVICE9VIDEO
+TYPEDEF: IDirect3DDevice9Video* PDIRECT3DDEVICE9VIDEO
+
+COM-INTERFACE: IDirect3DAuthenticatedChannel9 IUnknown {FF24BEEE-DA21-4beb-98B5-D2F899F98AF9}
+    HRESULT GetCertificateSize ( UINT* pCertificateSize )
+    HRESULT GetCertificate ( UINT CertifacteSize, BYTE* ppCertificate )
+    HRESULT NegotiateKeyExchange ( UINT DataSize, VOID* pData )
+    HRESULT Query ( UINT InputSize, VOID* pInput, UINT OutputSize, VOID* pOutput )
+    HRESULT Configure ( UINT InputSize, VOID* pInput, D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT* pOutput ) ;
+
+TYPEDEF: IDirect3DAuthenticatedChannel9* LPDIRECT3DAUTHENTICATEDCHANNEL9
+TYPEDEF: IDirect3DAuthenticatedChannel9* PDIRECT3DAUTHENTICATEDCHANNEL9
+
+COM-INTERFACE: IDirect3DCryptoSession9 IUnknown {FA0AB799-7A9C-48ca-8C5B-237E71A54434}
+    HRESULT GetCertificateSize ( UINT* pCertificateSize )
+    HRESULT GetCertificate ( UINT CertifacteSize, BYTE* ppCertificate )
+    HRESULT NegotiateKeyExchange ( UINT DataSize, VOID* pData )
+    HRESULT EncryptionBlt ( IDirect3DSurface9* pSrcSurface, IDirect3DSurface9* pDstSurface, UINT DstSurfaceSize, VOID* pIV )
+    HRESULT DecryptionBlt ( IDirect3DSurface9* pSrcSurface, IDirect3DSurface9* pDstSurface, UINT SrcSurfaceSize, D3DENCRYPTED_BLOCK_INFO* pEncryptedBlockInfo, VOID* pContentKey, VOID* pIV )
+    HRESULT GetSurfacePitch ( IDirect3DSurface9* pSrcSurface, UINT* pSurfacePitch )
+    HRESULT StartSessionKeyRefresh ( VOID* pRandomNumber, UINT RandomNumberSize )
+    HRESULT FinishSessionKeyRefresh ( )
+    HRESULT GetEncryptionBltKey ( VOID* pReadbackKey, UINT KeySize ) ;
+
+TYPEDEF: IDirect3DCryptoSession9* LPDIRECT3DCRYPTOSESSION9
+TYPEDEF: IDirect3DCryptoSession9* PDIRECT3DCRYPTOSESSION9
diff --git a/basis/windows/directx/d3d9/summary.txt b/basis/windows/directx/d3d9/summary.txt
new file mode 100644 (file)
index 0000000..aafb26a
--- /dev/null
@@ -0,0 +1 @@
+DirectX 9 bindings. Corresponds to d3d9.h.
diff --git a/basis/windows/directx/d3d9/tags.txt b/basis/windows/directx/d3d9/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3d9caps/authors.txt b/basis/windows/directx/d3d9caps/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3d9caps/d3d9caps.factor b/basis/windows/directx/d3d9caps/d3d9caps.factor
new file mode 100644 (file)
index 0000000..5da1961
--- /dev/null
@@ -0,0 +1,386 @@
+USING: classes.struct windows.types windows.kernel32
+windows.directx.d3d9types alien.c-types ;
+IN: windows.directx.d3d9caps
+
+STRUCT: D3DVSHADERCAPS2_0
+    { Caps                    DWORD }
+    { DynamicFlowControlDepth INT   }
+    { NumTemps                INT   }
+    { StaticFlowControlDepth  INT   } ;
+
+CONSTANT: D3DVS20CAPS_PREDICATION 1
+
+CONSTANT: D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH  24
+CONSTANT: D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH  0
+CONSTANT: D3DVS20_MAX_NUMTEMPS    32
+CONSTANT: D3DVS20_MIN_NUMTEMPS    12
+CONSTANT: D3DVS20_MAX_STATICFLOWCONTROLDEPTH    4
+CONSTANT: D3DVS20_MIN_STATICFLOWCONTROLDEPTH    1
+
+STRUCT: D3DPSHADERCAPS2_0
+    { Caps                    DWORD }
+    { DynamicFlowControlDepth INT   }
+    { NumTemps                INT   }
+    { StaticFlowControlDepth  INT   }
+    { NumInstructionSlots     INT   } ;
+
+CONSTANT: D3DPS20CAPS_ARBITRARYSWIZZLE        1
+CONSTANT: D3DPS20CAPS_GRADIENTINSTRUCTIONS    2
+CONSTANT: D3DPS20CAPS_PREDICATION             4
+CONSTANT: D3DPS20CAPS_NODEPENDENTREADLIMIT    8
+CONSTANT: D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT   16
+
+CONSTANT: D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH    24
+CONSTANT: D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH    0
+CONSTANT: D3DPS20_MAX_NUMTEMPS    32
+CONSTANT: D3DPS20_MIN_NUMTEMPS    12
+CONSTANT: D3DPS20_MAX_STATICFLOWCONTROLDEPTH    4
+CONSTANT: D3DPS20_MIN_STATICFLOWCONTROLDEPTH    0
+CONSTANT: D3DPS20_MAX_NUMINSTRUCTIONSLOTS    512
+CONSTANT: D3DPS20_MIN_NUMINSTRUCTIONSLOTS    96
+
+CONSTANT: D3DMIN30SHADERINSTRUCTIONS 512
+CONSTANT: D3DMAX30SHADERINSTRUCTIONS 32768
+
+STRUCT: D3DOVERLAYCAPS
+    { Caps                      UINT }
+    { MaxOverlayDisplayWidth    UINT }
+    { MaxOverlayDisplayHeight   UINT } ;
+
+CONSTANT: D3DOVERLAYCAPS_FULLRANGERGB          HEX: 00000001
+CONSTANT: D3DOVERLAYCAPS_LIMITEDRANGERGB       HEX: 00000002
+CONSTANT: D3DOVERLAYCAPS_YCbCr_BT601           HEX: 00000004
+CONSTANT: D3DOVERLAYCAPS_YCbCr_BT709           HEX: 00000008
+CONSTANT: D3DOVERLAYCAPS_YCbCr_BT601_xvYCC     HEX: 00000010
+CONSTANT: D3DOVERLAYCAPS_YCbCr_BT709_xvYCC     HEX: 00000020
+CONSTANT: D3DOVERLAYCAPS_STRETCHX              HEX: 00000040
+CONSTANT: D3DOVERLAYCAPS_STRETCHY              HEX: 00000080
+
+
+STRUCT: D3DCONTENTPROTECTIONCAPS
+    { Caps                      DWORD     }
+    { KeyExchangeType           GUID      }
+    { BufferAlignmentStart      UINT      }
+    { BlockAlignmentSize        UINT      }
+    { ProtectedMemorySize       ULONGLONG } ;
+CONSTANT: D3DCPCAPS_SOFTWARE              HEX: 00000001
+CONSTANT: D3DCPCAPS_HARDWARE              HEX: 00000002
+CONSTANT: D3DCPCAPS_PROTECTIONALWAYSON    HEX: 00000004
+CONSTANT: D3DCPCAPS_PARTIALDECRYPTION     HEX: 00000008
+CONSTANT: D3DCPCAPS_CONTENTKEY            HEX: 00000010
+CONSTANT: D3DCPCAPS_FRESHENSESSIONKEY     HEX: 00000020
+CONSTANT: D3DCPCAPS_ENCRYPTEDREADBACK     HEX: 00000040
+CONSTANT: D3DCPCAPS_ENCRYPTEDREADBACKKEY  HEX: 00000080
+CONSTANT: D3DCPCAPS_SEQUENTIAL_CTR_IV     HEX: 00000100
+CONSTANT: D3DCPCAPS_ENCRYPTSLICEDATAONLY  HEX: 00000200
+
+STRUCT: D3DCAPS9
+    { DeviceType                          D3DDEVTYPE        }
+    { AdapterOrdinal                      UINT              }
+    { Caps                                DWORD             }
+    { Caps2                               DWORD             }
+    { Caps3                               DWORD             }
+    { PresentationIntervals               DWORD             }
+    { CursorCaps                          DWORD             }
+    { DevCaps                             DWORD             }
+    { PrimitiveMiscCaps                   DWORD             }
+    { RasterCaps                          DWORD             }
+    { ZCmpCaps                            DWORD             }
+    { SrcBlendCaps                        DWORD             }
+    { DestBlendCaps                       DWORD             }
+    { AlphaCmpCaps                        DWORD             }
+    { ShadeCaps                           DWORD             }
+    { TextureCaps                         DWORD             }
+    { TextureFilterCaps                   DWORD             }
+    { CubeTextureFilterCaps               DWORD             }
+    { VolumeTextureFilterCaps             DWORD             }
+    { TextureAddressCaps                  DWORD             }
+    { VolumeTextureAddressCaps            DWORD             }
+    { LineCaps                            DWORD             }
+    { MaxTextureWidth                     DWORD             }
+    { MaxTextureHeight                    DWORD             }
+    { MaxVolumeExtent                     DWORD             }
+    { MaxTextureRepeat                    DWORD             }
+    { MaxTextureAspectRatio               DWORD             }
+    { MaxAnisotropy                       DWORD             }
+    { MaxVertexW                          float             }
+    { GuardBandLeft                       float             }
+    { GuardBandTop                        float             }
+    { GuardBandRight                      float             }
+    { GuardBandBottom                     float             }
+    { ExtentsAdjust                       float             }
+    { StencilCaps                         DWORD             }
+    { FVFCaps                             DWORD             }
+    { TextureOpCaps                       DWORD             }
+    { MaxTextureBlendStages               DWORD             }
+    { MaxSimultaneousTextures             DWORD             }
+    { VertexProcessingCaps                DWORD             }
+    { MaxActiveLights                     DWORD             }
+    { MaxUserClipPlanes                   DWORD             }
+    { MaxVertexBlendMatrices              DWORD             }
+    { MaxVertexBlendMatrixIndex           DWORD             }
+    { MaxPointSize                        float             }
+    { MaxPrimitiveCount                   DWORD             }
+    { MaxVertexIndex                      DWORD             }
+    { MaxStreams                          DWORD             }
+    { MaxStreamStride                     DWORD             }
+    { VertexShaderVersion                 DWORD             }
+    { MaxVertexShaderConst                DWORD             }
+    { PixelShaderVersion                  DWORD             }
+    { PixelShader1xMaxValue               float             }
+    { DevCaps2                            DWORD             }
+    { MaxNpatchTessellationLevel          float             }
+    { Reserved5                           DWORD             }
+    { MasterAdapterOrdinal                UINT              }
+    { AdapterOrdinalInGroup               UINT              }
+    { NumberOfAdaptersInGroup             UINT              }
+    { DeclTypes                           DWORD             }
+    { NumSimultaneousRTs                  DWORD             }
+    { StretchRectFilterCaps               DWORD             }
+    { VS20Caps                            D3DVSHADERCAPS2_0 }
+    { PS20Caps                            D3DPSHADERCAPS2_0 }
+    { VertexTextureFilterCaps             DWORD             }
+    { MaxVShaderInstructionsExecuted      DWORD             }
+    { MaxPShaderInstructionsExecuted      DWORD             }
+    { MaxVertexShader30InstructionSlots   DWORD             }
+    { MaxPixelShader30InstructionSlots    DWORD             } ;
+
+CONSTANT: D3DCAPS_OVERLAY                 HEX: 00000800
+CONSTANT: D3DCAPS_READ_SCANLINE           HEX: 00020000
+
+CONSTANT: D3DCAPS2_FULLSCREENGAMMA        HEX: 00020000
+CONSTANT: D3DCAPS2_CANCALIBRATEGAMMA      HEX: 00100000
+CONSTANT: D3DCAPS2_RESERVED               HEX: 02000000
+CONSTANT: D3DCAPS2_CANMANAGERESOURCE      HEX: 10000000
+CONSTANT: D3DCAPS2_DYNAMICTEXTURES        HEX: 20000000
+CONSTANT: D3DCAPS2_CANAUTOGENMIPMAP       HEX: 40000000
+
+CONSTANT: D3DCAPS2_CANSHARERESOURCE       HEX: 80000000
+
+CONSTANT: D3DCAPS3_RESERVED               HEX: 8000001f
+
+CONSTANT: D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD   HEX: 00000020
+
+CONSTANT: D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION HEX: 00000080
+
+CONSTANT: D3DCAPS3_COPY_TO_VIDMEM         HEX: 00000100
+CONSTANT: D3DCAPS3_COPY_TO_SYSTEMMEM      HEX: 00000200
+CONSTANT: D3DCAPS3_DXVAHD                 HEX: 00000400
+
+CONSTANT: D3DPRESENT_INTERVAL_DEFAULT     HEX: 00000000
+CONSTANT: D3DPRESENT_INTERVAL_ONE         HEX: 00000001
+CONSTANT: D3DPRESENT_INTERVAL_TWO         HEX: 00000002
+CONSTANT: D3DPRESENT_INTERVAL_THREE       HEX: 00000004
+CONSTANT: D3DPRESENT_INTERVAL_FOUR        HEX: 00000008
+CONSTANT: D3DPRESENT_INTERVAL_IMMEDIATE   HEX: 80000000
+
+CONSTANT: D3DCURSORCAPS_COLOR             HEX: 00000001
+CONSTANT: D3DCURSORCAPS_LOWRES            HEX: 00000002
+
+CONSTANT: D3DDEVCAPS_EXECUTESYSTEMMEMORY  HEX: 00000010
+CONSTANT: D3DDEVCAPS_EXECUTEVIDEOMEMORY   HEX: 00000020
+CONSTANT: D3DDEVCAPS_TLVERTEXSYSTEMMEMORY HEX: 00000040
+CONSTANT: D3DDEVCAPS_TLVERTEXVIDEOMEMORY  HEX: 00000080
+CONSTANT: D3DDEVCAPS_TEXTURESYSTEMMEMORY  HEX: 00000100
+CONSTANT: D3DDEVCAPS_TEXTUREVIDEOMEMORY   HEX: 00000200
+CONSTANT: D3DDEVCAPS_DRAWPRIMTLVERTEX     HEX: 00000400
+CONSTANT: D3DDEVCAPS_CANRENDERAFTERFLIP   HEX: 00000800
+CONSTANT: D3DDEVCAPS_TEXTURENONLOCALVIDMEM HEX: 00001000
+CONSTANT: D3DDEVCAPS_DRAWPRIMITIVES2      HEX: 00002000
+CONSTANT: D3DDEVCAPS_SEPARATETEXTUREMEMORIES HEX: 00004000
+CONSTANT: D3DDEVCAPS_DRAWPRIMITIVES2EX    HEX: 00008000
+CONSTANT: D3DDEVCAPS_HWTRANSFORMANDLIGHT  HEX: 00010000
+CONSTANT: D3DDEVCAPS_CANBLTSYSTONONLOCAL  HEX: 00020000
+CONSTANT: D3DDEVCAPS_HWRASTERIZATION      HEX: 00080000
+CONSTANT: D3DDEVCAPS_PUREDEVICE           HEX: 00100000
+CONSTANT: D3DDEVCAPS_QUINTICRTPATCHES     HEX: 00200000
+CONSTANT: D3DDEVCAPS_RTPATCHES            HEX: 00400000
+CONSTANT: D3DDEVCAPS_RTPATCHHANDLEZERO    HEX: 00800000
+CONSTANT: D3DDEVCAPS_NPATCHES             HEX: 01000000
+
+CONSTANT: D3DPMISCCAPS_MASKZ              HEX: 00000002
+CONSTANT: D3DPMISCCAPS_CULLNONE           HEX: 00000010
+CONSTANT: D3DPMISCCAPS_CULLCW             HEX: 00000020
+CONSTANT: D3DPMISCCAPS_CULLCCW            HEX: 00000040
+CONSTANT: D3DPMISCCAPS_COLORWRITEENABLE   HEX: 00000080
+CONSTANT: D3DPMISCCAPS_CLIPPLANESCALEDPOINTS HEX: 00000100
+CONSTANT: D3DPMISCCAPS_CLIPTLVERTS        HEX: 00000200
+CONSTANT: D3DPMISCCAPS_TSSARGTEMP         HEX: 00000400
+CONSTANT: D3DPMISCCAPS_BLENDOP            HEX: 00000800
+CONSTANT: D3DPMISCCAPS_NULLREFERENCE      HEX: 00001000
+CONSTANT: D3DPMISCCAPS_INDEPENDENTWRITEMASKS     HEX: 00004000
+CONSTANT: D3DPMISCCAPS_PERSTAGECONSTANT   HEX: 00008000
+CONSTANT: D3DPMISCCAPS_FOGANDSPECULARALPHA   HEX: 00010000
+CONSTANT: D3DPMISCCAPS_SEPARATEALPHABLEND         HEX: 00020000
+CONSTANT: D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS    HEX: 00040000
+CONSTANT: D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING HEX: 00080000
+CONSTANT: D3DPMISCCAPS_FOGVERTEXCLAMPED           HEX: 00100000
+
+CONSTANT: D3DPMISCCAPS_POSTBLENDSRGBCONVERT       HEX: 00200000
+
+CONSTANT: D3DLINECAPS_TEXTURE             HEX: 00000001
+CONSTANT: D3DLINECAPS_ZTEST               HEX: 00000002
+CONSTANT: D3DLINECAPS_BLEND               HEX: 00000004
+CONSTANT: D3DLINECAPS_ALPHACMP            HEX: 00000008
+CONSTANT: D3DLINECAPS_FOG                 HEX: 00000010
+CONSTANT: D3DLINECAPS_ANTIALIAS           HEX: 00000020
+
+CONSTANT: D3DPRASTERCAPS_DITHER                 HEX: 00000001
+CONSTANT: D3DPRASTERCAPS_ZTEST                  HEX: 00000010
+CONSTANT: D3DPRASTERCAPS_FOGVERTEX              HEX: 00000080
+CONSTANT: D3DPRASTERCAPS_FOGTABLE               HEX: 00000100
+CONSTANT: D3DPRASTERCAPS_MIPMAPLODBIAS          HEX: 00002000
+CONSTANT: D3DPRASTERCAPS_ZBUFFERLESSHSR         HEX: 00008000
+CONSTANT: D3DPRASTERCAPS_FOGRANGE               HEX: 00010000
+CONSTANT: D3DPRASTERCAPS_ANISOTROPY             HEX: 00020000
+CONSTANT: D3DPRASTERCAPS_WBUFFER                HEX: 00040000
+CONSTANT: D3DPRASTERCAPS_WFOG                   HEX: 00100000
+CONSTANT: D3DPRASTERCAPS_ZFOG                   HEX: 00200000
+CONSTANT: D3DPRASTERCAPS_COLORPERSPECTIVE       HEX: 00400000
+CONSTANT: D3DPRASTERCAPS_SCISSORTEST            HEX: 01000000
+CONSTANT: D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS    HEX: 02000000
+CONSTANT: D3DPRASTERCAPS_DEPTHBIAS              HEX: 04000000 
+CONSTANT: D3DPRASTERCAPS_MULTISAMPLE_TOGGLE     HEX: 08000000
+
+CONSTANT: D3DPCMPCAPS_NEVER               HEX: 00000001
+CONSTANT: D3DPCMPCAPS_LESS                HEX: 00000002
+CONSTANT: D3DPCMPCAPS_EQUAL               HEX: 00000004
+CONSTANT: D3DPCMPCAPS_LESSEQUAL           HEX: 00000008
+CONSTANT: D3DPCMPCAPS_GREATER             HEX: 00000010
+CONSTANT: D3DPCMPCAPS_NOTEQUAL            HEX: 00000020
+CONSTANT: D3DPCMPCAPS_GREATEREQUAL        HEX: 00000040
+CONSTANT: D3DPCMPCAPS_ALWAYS              HEX: 00000080
+
+CONSTANT: D3DPBLENDCAPS_ZERO              HEX: 00000001
+CONSTANT: D3DPBLENDCAPS_ONE               HEX: 00000002
+CONSTANT: D3DPBLENDCAPS_SRCCOLOR          HEX: 00000004
+CONSTANT: D3DPBLENDCAPS_INVSRCCOLOR       HEX: 00000008
+CONSTANT: D3DPBLENDCAPS_SRCALPHA          HEX: 00000010
+CONSTANT: D3DPBLENDCAPS_INVSRCALPHA       HEX: 00000020
+CONSTANT: D3DPBLENDCAPS_DESTALPHA         HEX: 00000040
+CONSTANT: D3DPBLENDCAPS_INVDESTALPHA      HEX: 00000080
+CONSTANT: D3DPBLENDCAPS_DESTCOLOR         HEX: 00000100
+CONSTANT: D3DPBLENDCAPS_INVDESTCOLOR      HEX: 00000200
+CONSTANT: D3DPBLENDCAPS_SRCALPHASAT       HEX: 00000400
+CONSTANT: D3DPBLENDCAPS_BOTHSRCALPHA      HEX: 00000800
+CONSTANT: D3DPBLENDCAPS_BOTHINVSRCALPHA   HEX: 00001000
+CONSTANT: D3DPBLENDCAPS_BLENDFACTOR       HEX: 00002000
+
+CONSTANT: D3DPBLENDCAPS_SRCCOLOR2         HEX: 00004000
+CONSTANT: D3DPBLENDCAPS_INVSRCCOLOR2      HEX: 00008000
+
+CONSTANT: D3DPSHADECAPS_COLORGOURAUDRGB       HEX: 00000008
+CONSTANT: D3DPSHADECAPS_SPECULARGOURAUDRGB    HEX: 00000200
+CONSTANT: D3DPSHADECAPS_ALPHAGOURAUDBLEND     HEX: 00004000
+CONSTANT: D3DPSHADECAPS_FOGGOURAUD            HEX: 00080000
+
+CONSTANT: D3DPTEXTURECAPS_PERSPECTIVE         HEX: 00000001
+CONSTANT: D3DPTEXTURECAPS_POW2                HEX: 00000002
+CONSTANT: D3DPTEXTURECAPS_ALPHA               HEX: 00000004
+CONSTANT: D3DPTEXTURECAPS_SQUAREONLY          HEX: 00000020
+CONSTANT: D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE HEX: 00000040
+CONSTANT: D3DPTEXTURECAPS_ALPHAPALETTE        HEX: 00000080
+
+CONSTANT: D3DPTEXTURECAPS_NONPOW2CONDITIONAL  HEX: 00000100
+CONSTANT: D3DPTEXTURECAPS_PROJECTED           HEX: 00000400
+CONSTANT: D3DPTEXTURECAPS_CUBEMAP             HEX: 00000800
+CONSTANT: D3DPTEXTURECAPS_VOLUMEMAP           HEX: 00002000
+CONSTANT: D3DPTEXTURECAPS_MIPMAP              HEX: 00004000
+CONSTANT: D3DPTEXTURECAPS_MIPVOLUMEMAP        HEX: 00008000
+CONSTANT: D3DPTEXTURECAPS_MIPCUBEMAP          HEX: 00010000
+CONSTANT: D3DPTEXTURECAPS_CUBEMAP_POW2        HEX: 00020000
+CONSTANT: D3DPTEXTURECAPS_VOLUMEMAP_POW2      HEX: 00040000
+CONSTANT: D3DPTEXTURECAPS_NOPROJECTEDBUMPENV  HEX: 00200000
+
+CONSTANT: D3DPTFILTERCAPS_MINFPOINT           HEX: 00000100
+CONSTANT: D3DPTFILTERCAPS_MINFLINEAR          HEX: 00000200
+CONSTANT: D3DPTFILTERCAPS_MINFANISOTROPIC     HEX: 00000400
+CONSTANT: D3DPTFILTERCAPS_MINFPYRAMIDALQUAD   HEX: 00000800
+CONSTANT: D3DPTFILTERCAPS_MINFGAUSSIANQUAD    HEX: 00001000
+CONSTANT: D3DPTFILTERCAPS_MIPFPOINT           HEX: 00010000
+CONSTANT: D3DPTFILTERCAPS_MIPFLINEAR          HEX: 00020000
+
+CONSTANT: D3DPTFILTERCAPS_CONVOLUTIONMONO     HEX: 00040000
+
+CONSTANT: D3DPTFILTERCAPS_MAGFPOINT           HEX: 01000000
+CONSTANT: D3DPTFILTERCAPS_MAGFLINEAR          HEX: 02000000
+CONSTANT: D3DPTFILTERCAPS_MAGFANISOTROPIC     HEX: 04000000
+CONSTANT: D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD   HEX: 08000000
+CONSTANT: D3DPTFILTERCAPS_MAGFGAUSSIANQUAD    HEX: 10000000
+
+CONSTANT: D3DPTADDRESSCAPS_WRAP           HEX: 00000001
+CONSTANT: D3DPTADDRESSCAPS_MIRROR         HEX: 00000002
+CONSTANT: D3DPTADDRESSCAPS_CLAMP          HEX: 00000004
+CONSTANT: D3DPTADDRESSCAPS_BORDER         HEX: 00000008
+CONSTANT: D3DPTADDRESSCAPS_INDEPENDENTUV  HEX: 00000010
+CONSTANT: D3DPTADDRESSCAPS_MIRRORONCE     HEX: 00000020
+
+CONSTANT: D3DSTENCILCAPS_KEEP             HEX: 00000001
+CONSTANT: D3DSTENCILCAPS_ZERO             HEX: 00000002
+CONSTANT: D3DSTENCILCAPS_REPLACE          HEX: 00000004
+CONSTANT: D3DSTENCILCAPS_INCRSAT          HEX: 00000008
+CONSTANT: D3DSTENCILCAPS_DECRSAT          HEX: 00000010
+CONSTANT: D3DSTENCILCAPS_INVERT           HEX: 00000020
+CONSTANT: D3DSTENCILCAPS_INCR             HEX: 00000040
+CONSTANT: D3DSTENCILCAPS_DECR             HEX: 00000080
+CONSTANT: D3DSTENCILCAPS_TWOSIDED         HEX: 00000100
+
+CONSTANT: D3DTEXOPCAPS_DISABLE                    HEX: 00000001
+CONSTANT: D3DTEXOPCAPS_SELECTARG1                 HEX: 00000002
+CONSTANT: D3DTEXOPCAPS_SELECTARG2                 HEX: 00000004
+CONSTANT: D3DTEXOPCAPS_MODULATE                   HEX: 00000008
+CONSTANT: D3DTEXOPCAPS_MODULATE2X                 HEX: 00000010
+CONSTANT: D3DTEXOPCAPS_MODULATE4X                 HEX: 00000020
+CONSTANT: D3DTEXOPCAPS_ADD                        HEX: 00000040
+CONSTANT: D3DTEXOPCAPS_ADDSIGNED                  HEX: 00000080
+CONSTANT: D3DTEXOPCAPS_ADDSIGNED2X                HEX: 00000100
+CONSTANT: D3DTEXOPCAPS_SUBTRACT                   HEX: 00000200
+CONSTANT: D3DTEXOPCAPS_ADDSMOOTH                  HEX: 00000400
+CONSTANT: D3DTEXOPCAPS_BLENDDIFFUSEALPHA          HEX: 00000800
+CONSTANT: D3DTEXOPCAPS_BLENDTEXTUREALPHA          HEX: 00001000
+CONSTANT: D3DTEXOPCAPS_BLENDFACTORALPHA           HEX: 00002000
+CONSTANT: D3DTEXOPCAPS_BLENDTEXTUREALPHAPM        HEX: 00004000
+CONSTANT: D3DTEXOPCAPS_BLENDCURRENTALPHA          HEX: 00008000
+CONSTANT: D3DTEXOPCAPS_PREMODULATE                HEX: 00010000
+CONSTANT: D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR     HEX: 00020000
+CONSTANT: D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA     HEX: 00040000
+CONSTANT: D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR  HEX: 00080000
+CONSTANT: D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA  HEX: 00100000
+CONSTANT: D3DTEXOPCAPS_BUMPENVMAP                 HEX: 00200000
+CONSTANT: D3DTEXOPCAPS_BUMPENVMAPLUMINANCE        HEX: 00400000
+CONSTANT: D3DTEXOPCAPS_DOTPRODUCT3                HEX: 00800000
+CONSTANT: D3DTEXOPCAPS_MULTIPLYADD                HEX: 01000000
+CONSTANT: D3DTEXOPCAPS_LERP                       HEX: 02000000
+
+CONSTANT: D3DFVFCAPS_TEXCOORDCOUNTMASK    HEX: 0000ffff
+CONSTANT: D3DFVFCAPS_DONOTSTRIPELEMENTS   HEX: 00080000
+CONSTANT: D3DFVFCAPS_PSIZE                HEX: 00100000
+
+CONSTANT: D3DVTXPCAPS_TEXGEN              HEX: 00000001
+CONSTANT: D3DVTXPCAPS_MATERIALSOURCE7     HEX: 00000002
+CONSTANT: D3DVTXPCAPS_DIRECTIONALLIGHTS   HEX: 00000008
+CONSTANT: D3DVTXPCAPS_POSITIONALLIGHTS    HEX: 00000010
+CONSTANT: D3DVTXPCAPS_LOCALVIEWER         HEX: 00000020
+CONSTANT: D3DVTXPCAPS_TWEENING            HEX: 00000040
+CONSTANT: D3DVTXPCAPS_TEXGEN_SPHEREMAP    HEX: 00000100
+CONSTANT: D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER   HEX: 00000200
+
+CONSTANT: D3DDEVCAPS2_STREAMOFFSET                        HEX: 00000001
+CONSTANT: D3DDEVCAPS2_DMAPNPATCH                          HEX: 00000002
+CONSTANT: D3DDEVCAPS2_ADAPTIVETESSRTPATCH                 HEX: 00000004
+CONSTANT: D3DDEVCAPS2_ADAPTIVETESSNPATCH                  HEX: 00000008
+CONSTANT: D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES       HEX: 00000010
+CONSTANT: D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH                HEX: 00000020
+CONSTANT: D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET  HEX: 00000040
+
+CONSTANT: D3DDTCAPS_UBYTE4     HEX: 00000001
+CONSTANT: D3DDTCAPS_UBYTE4N    HEX: 00000002
+CONSTANT: D3DDTCAPS_SHORT2N    HEX: 00000004
+CONSTANT: D3DDTCAPS_SHORT4N    HEX: 00000008
+CONSTANT: D3DDTCAPS_USHORT2N   HEX: 00000010
+CONSTANT: D3DDTCAPS_USHORT4N   HEX: 00000020
+CONSTANT: D3DDTCAPS_UDEC3      HEX: 00000040
+CONSTANT: D3DDTCAPS_DEC3N      HEX: 00000080
+CONSTANT: D3DDTCAPS_FLOAT16_2  HEX: 00000100
+CONSTANT: D3DDTCAPS_FLOAT16_4  HEX: 00000200
diff --git a/basis/windows/directx/d3d9caps/summary.txt b/basis/windows/directx/d3d9caps/summary.txt
new file mode 100644 (file)
index 0000000..52f7cef
--- /dev/null
@@ -0,0 +1 @@
+DirectX 9 bindings. Corresponds to d3d9caps.h.
diff --git a/basis/windows/directx/d3d9caps/tags.txt b/basis/windows/directx/d3d9caps/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3d9types/authors.txt b/basis/windows/directx/d3d9types/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3d9types/d3d9types.factor b/basis/windows/directx/d3d9types/d3d9types.factor
new file mode 100644 (file)
index 0000000..9f4358f
--- /dev/null
@@ -0,0 +1,1520 @@
+USING: alien.syntax windows.types classes.struct math alien.c-types
+math.bitwise kernel locals windows.kernel32 ;
+IN: windows.directx.d3d9types
+
+TYPEDEF: DWORD D3DCOLOR
+
+STRUCT: D3DVECTOR
+    { x FLOAT }
+    { y FLOAT }
+    { z FLOAT } ;
+
+STRUCT: D3DCOLORVALUE
+    { r FLOAT }
+    { g FLOAT }
+    { b FLOAT }
+    { a FLOAT } ;
+
+STRUCT: D3DRECT
+    { x1 LONG }
+    { y1 LONG }
+    { x2 LONG }
+    { y2 LONG } ;
+
+STRUCT: D3DMATRIX
+    { m FLOAT[4][4] } ;
+
+STRUCT: D3DVIEWPORT9
+    { X            DWORD }
+    { Y            DWORD }
+    { Width        DWORD }
+    { Height       DWORD }
+    { MinZ         FLOAT }
+    { MaxZ         FLOAT } ;
+
+CONSTANT: D3DMAXUSERCLIPPLANES 32
+
+CONSTANT: D3DCLIPPLANE0 1
+CONSTANT: D3DCLIPPLANE1 2
+CONSTANT: D3DCLIPPLANE2 4
+CONSTANT: D3DCLIPPLANE3 8
+CONSTANT: D3DCLIPPLANE4 16
+CONSTANT: D3DCLIPPLANE5 32
+
+CONSTANT: D3DCS_LEFT        HEX: 00000001
+CONSTANT: D3DCS_RIGHT       HEX: 00000002
+CONSTANT: D3DCS_TOP         HEX: 00000004
+CONSTANT: D3DCS_BOTTOM      HEX: 00000008
+CONSTANT: D3DCS_FRONT       HEX: 00000010
+CONSTANT: D3DCS_BACK        HEX: 00000020
+CONSTANT: D3DCS_PLANE0      HEX: 00000040
+CONSTANT: D3DCS_PLANE1      HEX: 00000080
+CONSTANT: D3DCS_PLANE2      HEX: 00000100
+CONSTANT: D3DCS_PLANE3      HEX: 00000200
+CONSTANT: D3DCS_PLANE4      HEX: 00000400
+CONSTANT: D3DCS_PLANE5      HEX: 00000800
+
+: D3DCS_ALL ( -- n )
+    { D3DCS_LEFT
+      D3DCS_RIGHT
+      D3DCS_TOP
+      D3DCS_BOTTOM
+      D3DCS_FRONT
+      D3DCS_BACK
+      D3DCS_PLANE0
+      D3DCS_PLANE1
+      D3DCS_PLANE2
+      D3DCS_PLANE3
+      D3DCS_PLANE4
+      D3DCS_PLANE5 } flags ; inline
+
+STRUCT: D3DCLIPSTATUS9
+    { ClipUnion        DWORD }
+    { ClipIntersection DWORD } ;
+
+STRUCT: D3DMATERIAL9
+    { Diffuse         D3DCOLORVALUE }
+    { Ambient         D3DCOLORVALUE }
+    { Specular        D3DCOLORVALUE }
+    { Emissive        D3DCOLORVALUE }
+    { Power           FLOAT         } ;
+
+TYPEDEF: int D3DLIGHTTYPE
+CONSTANT: D3DLIGHT_POINT          1
+CONSTANT: D3DLIGHT_SPOT           2
+CONSTANT: D3DLIGHT_DIRECTIONAL    3
+CONSTANT: D3DLIGHT_FORCE_DWORD    HEX: 7fffffff
+
+STRUCT: D3DLIGHT9
+    { Type                   D3DLIGHTTYPE  }
+    { Diffuse                D3DCOLORVALUE }
+    { Specular               D3DCOLORVALUE }
+    { Ambient                D3DCOLORVALUE }
+    { Position               D3DVECTOR     }
+    { Direction              D3DVECTOR     }
+    { Range                  FLOAT         }
+    { Falloff                FLOAT         }
+    { Attenuation0           FLOAT         }
+    { Attenuation1           FLOAT         }
+    { Attenuation2           FLOAT         }
+    { Theta                  FLOAT         }
+    { Phi                    FLOAT         } ;
+
+CONSTANT: D3DCLEAR_TARGET            HEX: 00000001
+CONSTANT: D3DCLEAR_ZBUFFER           HEX: 00000002
+CONSTANT: D3DCLEAR_STENCIL           HEX: 00000004
+
+TYPEDEF: int D3DSHADEMODE
+CONSTANT: D3DSHADE_FLAT               1
+CONSTANT: D3DSHADE_GOURAUD            2
+CONSTANT: D3DSHADE_PHONG              3
+CONSTANT: D3DSHADE_FORCE_DWORD        HEX: 7fffffff
+
+TYPEDEF: int D3DFILLMODE
+CONSTANT: D3DFILL_POINT               1
+CONSTANT: D3DFILL_WIREFRAME           2
+CONSTANT: D3DFILL_SOLID               3
+CONSTANT: D3DFILL_FORCE_DWORD         HEX: 7fffffff
+
+TYPEDEF: int D3DBLEND
+CONSTANT: D3DBLEND_ZERO               1
+CONSTANT: D3DBLEND_ONE                2
+CONSTANT: D3DBLEND_SRCCOLOR           3
+CONSTANT: D3DBLEND_INVSRCCOLOR        4
+CONSTANT: D3DBLEND_SRCALPHA           5
+CONSTANT: D3DBLEND_INVSRCALPHA        6
+CONSTANT: D3DBLEND_DESTALPHA          7
+CONSTANT: D3DBLEND_INVDESTALPHA       8
+CONSTANT: D3DBLEND_DESTCOLOR          9
+CONSTANT: D3DBLEND_INVDESTCOLOR       10
+CONSTANT: D3DBLEND_SRCALPHASAT        11
+CONSTANT: D3DBLEND_BOTHSRCALPHA       12
+CONSTANT: D3DBLEND_BOTHINVSRCALPHA    13
+CONSTANT: D3DBLEND_BLENDFACTOR        14
+CONSTANT: D3DBLEND_INVBLENDFACTOR     15
+CONSTANT: D3DBLEND_SRCCOLOR2          16
+CONSTANT: D3DBLEND_INVSRCCOLOR2       17
+CONSTANT: D3DBLEND_FORCE_DWORD        HEX: 7fffffff
+
+TYPEDEF: int D3DBLENDOP
+CONSTANT: D3DBLENDOP_ADD              1
+CONSTANT: D3DBLENDOP_SUBTRACT         2
+CONSTANT: D3DBLENDOP_REVSUBTRACT      3
+CONSTANT: D3DBLENDOP_MIN              4
+CONSTANT: D3DBLENDOP_MAX              5
+CONSTANT: D3DBLENDOP_FORCE_DWORD      HEX: 7fffffff
+
+TYPEDEF: int D3DTEXTUREADDRESS
+CONSTANT: D3DTADDRESS_WRAP            1
+CONSTANT: D3DTADDRESS_MIRROR          2
+CONSTANT: D3DTADDRESS_CLAMP           3
+CONSTANT: D3DTADDRESS_BORDER          4
+CONSTANT: D3DTADDRESS_MIRRORONCE      5
+CONSTANT: D3DTADDRESS_FORCE_DWORD     HEX: 7fffffff
+
+TYPEDEF: int D3DCULL
+CONSTANT: D3DCULL_NONE                1
+CONSTANT: D3DCULL_CW                  2
+CONSTANT: D3DCULL_CCW                 3
+CONSTANT: D3DCULL_FORCE_DWORD         HEX: 7fffffff
+
+TYPEDEF: int D3DCMPFUNC
+CONSTANT: D3DCMP_NEVER                1
+CONSTANT: D3DCMP_LESS                 2
+CONSTANT: D3DCMP_EQUAL                3
+CONSTANT: D3DCMP_LESSEQUAL            4
+CONSTANT: D3DCMP_GREATER              5
+CONSTANT: D3DCMP_NOTEQUAL             6
+CONSTANT: D3DCMP_GREATEREQUAL         7
+CONSTANT: D3DCMP_ALWAYS               8
+CONSTANT: D3DCMP_FORCE_DWORD          HEX: 7fffffff
+
+TYPEDEF: int D3DSTENCILOP
+CONSTANT: D3DSTENCILOP_KEEP           1
+CONSTANT: D3DSTENCILOP_ZERO           2
+CONSTANT: D3DSTENCILOP_REPLACE        3
+CONSTANT: D3DSTENCILOP_INCRSAT        4
+CONSTANT: D3DSTENCILOP_DECRSAT        5
+CONSTANT: D3DSTENCILOP_INVERT         6
+CONSTANT: D3DSTENCILOP_INCR           7
+CONSTANT: D3DSTENCILOP_DECR           8
+CONSTANT: D3DSTENCILOP_FORCE_DWORD    HEX: 7fffffff
+
+TYPEDEF: int D3DFOGMODE
+CONSTANT: D3DFOG_NONE                 0
+CONSTANT: D3DFOG_EXP                  1
+CONSTANT: D3DFOG_EXP2                 2
+CONSTANT: D3DFOG_LINEAR               3
+CONSTANT: D3DFOG_FORCE_DWORD          HEX: 7fffffff
+
+TYPEDEF: int D3DZBUFFERTYPE
+CONSTANT: D3DZB_FALSE                 0
+CONSTANT: D3DZB_TRUE                  1
+CONSTANT: D3DZB_USEW                  2
+CONSTANT: D3DZB_FORCE_DWORD           HEX: 7fffffff
+
+TYPEDEF: int D3DPRIMITIVETYPE
+CONSTANT: D3DPT_POINTLIST             1
+CONSTANT: D3DPT_LINELIST              2
+CONSTANT: D3DPT_LINESTRIP             3
+CONSTANT: D3DPT_TRIANGLELIST          4
+CONSTANT: D3DPT_TRIANGLESTRIP         5
+CONSTANT: D3DPT_TRIANGLEFAN           6
+CONSTANT: D3DPT_FORCE_DWORD           HEX: 7fffffff
+
+TYPEDEF: int D3DTRANSFORMSTATETYPE
+CONSTANT: D3DTS_VIEW          2
+CONSTANT: D3DTS_PROJECTION    3
+CONSTANT: D3DTS_TEXTURE0      16
+CONSTANT: D3DTS_TEXTURE1      17
+CONSTANT: D3DTS_TEXTURE2      18
+CONSTANT: D3DTS_TEXTURE3      19
+CONSTANT: D3DTS_TEXTURE4      20
+CONSTANT: D3DTS_TEXTURE5      21
+CONSTANT: D3DTS_TEXTURE6      22
+CONSTANT: D3DTS_TEXTURE7      23
+CONSTANT: D3DTS_FORCE_DWORD   HEX: 7fffffff
+
+TYPEDEF: int D3DRENDERSTATETYPE
+CONSTANT: D3DRS_ZENABLE                   7
+CONSTANT: D3DRS_FILLMODE                  8
+CONSTANT: D3DRS_SHADEMODE                 9
+CONSTANT: D3DRS_ZWRITEENABLE              14
+CONSTANT: D3DRS_ALPHATESTENABLE           15
+CONSTANT: D3DRS_LASTPIXEL                 16
+CONSTANT: D3DRS_SRCBLEND                  19
+CONSTANT: D3DRS_DESTBLEND                 20
+CONSTANT: D3DRS_CULLMODE                  22
+CONSTANT: D3DRS_ZFUNC                     23
+CONSTANT: D3DRS_ALPHAREF                  24
+CONSTANT: D3DRS_ALPHAFUNC                 25
+CONSTANT: D3DRS_DITHERENABLE              26
+CONSTANT: D3DRS_ALPHABLENDENABLE          27
+CONSTANT: D3DRS_FOGENABLE                 28
+CONSTANT: D3DRS_SPECULARENABLE            29
+CONSTANT: D3DRS_FOGCOLOR                  34
+CONSTANT: D3DRS_FOGTABLEMODE              35
+CONSTANT: D3DRS_FOGSTART                  36
+CONSTANT: D3DRS_FOGEND                    37
+CONSTANT: D3DRS_FOGDENSITY                38
+CONSTANT: D3DRS_RANGEFOGENABLE            48
+CONSTANT: D3DRS_STENCILENABLE             52
+CONSTANT: D3DRS_STENCILFAIL               53
+CONSTANT: D3DRS_STENCILZFAIL              54
+CONSTANT: D3DRS_STENCILPASS               55
+CONSTANT: D3DRS_STENCILFUNC               56
+CONSTANT: D3DRS_STENCILREF                57
+CONSTANT: D3DRS_STENCILMASK               58
+CONSTANT: D3DRS_STENCILWRITEMASK          59
+CONSTANT: D3DRS_TEXTUREFACTOR             60
+CONSTANT: D3DRS_WRAP0                     128
+CONSTANT: D3DRS_WRAP1                     129
+CONSTANT: D3DRS_WRAP2                     130
+CONSTANT: D3DRS_WRAP3                     131
+CONSTANT: D3DRS_WRAP4                     132
+CONSTANT: D3DRS_WRAP5                     133
+CONSTANT: D3DRS_WRAP6                     134
+CONSTANT: D3DRS_WRAP7                     135
+CONSTANT: D3DRS_CLIPPING                  136
+CONSTANT: D3DRS_LIGHTING                  137
+CONSTANT: D3DRS_AMBIENT                   139
+CONSTANT: D3DRS_FOGVERTEXMODE             140
+CONSTANT: D3DRS_COLORVERTEX               141
+CONSTANT: D3DRS_LOCALVIEWER               142
+CONSTANT: D3DRS_NORMALIZENORMALS          143
+CONSTANT: D3DRS_DIFFUSEMATERIALSOURCE     145
+CONSTANT: D3DRS_SPECULARMATERIALSOURCE    146
+CONSTANT: D3DRS_AMBIENTMATERIALSOURCE     147
+CONSTANT: D3DRS_EMISSIVEMATERIALSOURCE    148
+CONSTANT: D3DRS_VERTEXBLEND               151
+CONSTANT: D3DRS_CLIPPLANEENABLE           152
+CONSTANT: D3DRS_POINTSIZE                 154
+CONSTANT: D3DRS_POINTSIZE_MIN             155
+CONSTANT: D3DRS_POINTSPRITEENABLE         156
+CONSTANT: D3DRS_POINTSCALEENABLE          157
+CONSTANT: D3DRS_POINTSCALE_A              158
+CONSTANT: D3DRS_POINTSCALE_B              159
+CONSTANT: D3DRS_POINTSCALE_C              160
+CONSTANT: D3DRS_MULTISAMPLEANTIALIAS      161
+CONSTANT: D3DRS_MULTISAMPLEMASK           162
+CONSTANT: D3DRS_PATCHEDGESTYLE            163
+CONSTANT: D3DRS_DEBUGMONITORTOKEN         165
+CONSTANT: D3DRS_POINTSIZE_MAX             166
+CONSTANT: D3DRS_INDEXEDVERTEXBLENDENABLE  167
+CONSTANT: D3DRS_COLORWRITEENABLE          168
+CONSTANT: D3DRS_TWEENFACTOR               170
+CONSTANT: D3DRS_BLENDOP                   171
+CONSTANT: D3DRS_POSITIONDEGREE            172
+CONSTANT: D3DRS_NORMALDEGREE              173
+CONSTANT: D3DRS_SCISSORTESTENABLE         174
+CONSTANT: D3DRS_SLOPESCALEDEPTHBIAS       175
+CONSTANT: D3DRS_ANTIALIASEDLINEENABLE     176
+CONSTANT: D3DRS_MINTESSELLATIONLEVEL      178
+CONSTANT: D3DRS_MAXTESSELLATIONLEVEL      179
+CONSTANT: D3DRS_ADAPTIVETESS_X            180
+CONSTANT: D3DRS_ADAPTIVETESS_Y            181
+CONSTANT: D3DRS_ADAPTIVETESS_Z            182
+CONSTANT: D3DRS_ADAPTIVETESS_W            183
+CONSTANT: D3DRS_ENABLEADAPTIVETESSELLATION 184
+CONSTANT: D3DRS_TWOSIDEDSTENCILMODE       185
+CONSTANT: D3DRS_CCW_STENCILFAIL           186
+CONSTANT: D3DRS_CCW_STENCILZFAIL          187
+CONSTANT: D3DRS_CCW_STENCILPASS           188
+CONSTANT: D3DRS_CCW_STENCILFUNC           189
+CONSTANT: D3DRS_COLORWRITEENABLE1         190
+CONSTANT: D3DRS_COLORWRITEENABLE2         191
+CONSTANT: D3DRS_COLORWRITEENABLE3         192
+CONSTANT: D3DRS_BLENDFACTOR               193
+CONSTANT: D3DRS_SRGBWRITEENABLE           194
+CONSTANT: D3DRS_DEPTHBIAS                 195
+CONSTANT: D3DRS_WRAP8                     198
+CONSTANT: D3DRS_WRAP9                     199
+CONSTANT: D3DRS_WRAP10                    200
+CONSTANT: D3DRS_WRAP11                    201
+CONSTANT: D3DRS_WRAP12                    202
+CONSTANT: D3DRS_WRAP13                    203
+CONSTANT: D3DRS_WRAP14                    204
+CONSTANT: D3DRS_WRAP15                    205
+CONSTANT: D3DRS_SEPARATEALPHABLENDENABLE  206
+CONSTANT: D3DRS_SRCBLENDALPHA             207
+CONSTANT: D3DRS_DESTBLENDALPHA            208
+CONSTANT: D3DRS_BLENDOPALPHA              209
+CONSTANT: D3DRS_FORCE_DWORD               HEX: 7fffffff
+
+CONSTANT: D3D_MAX_SIMULTANEOUS_RENDERTARGETS 4
+
+TYPEDEF: int D3DMATERIALCOLORSOURCE
+CONSTANT: D3DMCS_MATERIAL         0
+CONSTANT: D3DMCS_COLOR1           1
+CONSTANT: D3DMCS_COLOR2           2
+CONSTANT: D3DMCS_FORCE_DWORD      HEX: 7fffffff
+
+CONSTANT: D3DRENDERSTATE_WRAPBIAS                 128
+
+CONSTANT: D3DWRAP_U   HEX: 00000001
+CONSTANT: D3DWRAP_V   HEX: 00000002
+CONSTANT: D3DWRAP_W   HEX: 00000004
+
+CONSTANT: D3DWRAPCOORD_0   HEX: 00000001
+CONSTANT: D3DWRAPCOORD_1   HEX: 00000002
+CONSTANT: D3DWRAPCOORD_2   HEX: 00000004
+CONSTANT: D3DWRAPCOORD_3   HEX: 00000008
+
+CONSTANT: D3DCOLORWRITEENABLE_RED     1
+CONSTANT: D3DCOLORWRITEENABLE_GREEN   2
+CONSTANT: D3DCOLORWRITEENABLE_BLUE    4
+CONSTANT: D3DCOLORWRITEENABLE_ALPHA   8
+
+TYPEDEF: int D3DTEXTURESTAGESTATETYPE
+CONSTANT: D3DTSS_COLOROP        1
+CONSTANT: D3DTSS_COLORARG1      2
+CONSTANT: D3DTSS_COLORARG2      3
+CONSTANT: D3DTSS_ALPHAOP        4
+CONSTANT: D3DTSS_ALPHAARG1      5
+CONSTANT: D3DTSS_ALPHAARG2      6
+CONSTANT: D3DTSS_BUMPENVMAT00   7
+CONSTANT: D3DTSS_BUMPENVMAT01   8
+CONSTANT: D3DTSS_BUMPENVMAT10   9
+CONSTANT: D3DTSS_BUMPENVMAT11   10
+CONSTANT: D3DTSS_TEXCOORDINDEX  11
+CONSTANT: D3DTSS_BUMPENVLSCALE  22
+CONSTANT: D3DTSS_BUMPENVLOFFSET 23
+CONSTANT: D3DTSS_TEXTURETRANSFORMFLAGS 24
+CONSTANT: D3DTSS_COLORARG0      26
+CONSTANT: D3DTSS_ALPHAARG0      27
+CONSTANT: D3DTSS_RESULTARG      28
+CONSTANT: D3DTSS_CONSTANT       32
+CONSTANT: D3DTSS_FORCE_DWORD   HEX: 7fffffff
+
+TYPEDEF: int D3DSAMPLERSTATETYPE
+CONSTANT: D3DSAMP_ADDRESSU       1
+CONSTANT: D3DSAMP_ADDRESSV       2
+CONSTANT: D3DSAMP_ADDRESSW       3
+CONSTANT: D3DSAMP_BORDERCOLOR    4
+CONSTANT: D3DSAMP_MAGFILTER      5
+CONSTANT: D3DSAMP_MINFILTER      6
+CONSTANT: D3DSAMP_MIPFILTER      7
+CONSTANT: D3DSAMP_MIPMAPLODBIAS  8
+CONSTANT: D3DSAMP_MAXMIPLEVEL    9
+CONSTANT: D3DSAMP_MAXANISOTROPY  10
+CONSTANT: D3DSAMP_SRGBTEXTURE    11
+CONSTANT: D3DSAMP_ELEMENTINDEX   12
+CONSTANT: D3DSAMP_DMAPOFFSET     13
+CONSTANT: D3DSAMP_FORCE_DWORD   HEX: 7fffffff
+
+CONSTANT: D3DDMAPSAMPLER 256
+
+CONSTANT: D3DVERTEXTEXTURESAMPLER0 257
+CONSTANT: D3DVERTEXTEXTURESAMPLER1 258
+CONSTANT: D3DVERTEXTEXTURESAMPLER2 259
+CONSTANT: D3DVERTEXTEXTURESAMPLER3 260
+
+CONSTANT: D3DTSS_TCI_PASSTHRU                             HEX: 00000000
+CONSTANT: D3DTSS_TCI_CAMERASPACENORMAL                    HEX: 00010000
+CONSTANT: D3DTSS_TCI_CAMERASPACEPOSITION                  HEX: 00020000
+CONSTANT: D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR          HEX: 00030000
+CONSTANT: D3DTSS_TCI_SPHEREMAP                            HEX: 00040000
+
+TYPEDEF: int D3DTEXTUREOP
+CONSTANT: D3DTOP_DISABLE              1
+CONSTANT: D3DTOP_SELECTARG1           2
+CONSTANT: D3DTOP_SELECTARG2           3
+CONSTANT: D3DTOP_MODULATE             4
+CONSTANT: D3DTOP_MODULATE2X           5
+CONSTANT: D3DTOP_MODULATE4X           6
+CONSTANT: D3DTOP_ADD                  7
+CONSTANT: D3DTOP_ADDSIGNED            8
+CONSTANT: D3DTOP_ADDSIGNED2X          9
+CONSTANT: D3DTOP_SUBTRACT             10
+CONSTANT: D3DTOP_ADDSMOOTH            11
+CONSTANT: D3DTOP_BLENDDIFFUSEALPHA    12
+CONSTANT: D3DTOP_BLENDTEXTUREALPHA    13
+CONSTANT: D3DTOP_BLENDFACTORALPHA     14
+CONSTANT: D3DTOP_BLENDTEXTUREALPHAPM  15
+CONSTANT: D3DTOP_BLENDCURRENTALPHA    16
+CONSTANT: D3DTOP_PREMODULATE            17
+CONSTANT: D3DTOP_MODULATEALPHA_ADDCOLOR 18
+CONSTANT: D3DTOP_MODULATECOLOR_ADDALPHA 19
+CONSTANT: D3DTOP_MODULATEINVALPHA_ADDCOLOR 20
+CONSTANT: D3DTOP_MODULATEINVCOLOR_ADDALPHA 21
+CONSTANT: D3DTOP_BUMPENVMAP           22
+CONSTANT: D3DTOP_BUMPENVMAPLUMINANCE  23
+CONSTANT: D3DTOP_DOTPRODUCT3          24
+CONSTANT: D3DTOP_MULTIPLYADD          25
+CONSTANT: D3DTOP_LERP                 26
+CONSTANT: D3DTOP_FORCE_DWORD HEX: 7fffffff
+
+CONSTANT: D3DTA_SELECTMASK        HEX: 0000000f
+CONSTANT: D3DTA_DIFFUSE           HEX: 00000000
+CONSTANT: D3DTA_CURRENT           HEX: 00000001
+CONSTANT: D3DTA_TEXTURE           HEX: 00000002
+CONSTANT: D3DTA_TFACTOR           HEX: 00000003
+CONSTANT: D3DTA_SPECULAR          HEX: 00000004
+CONSTANT: D3DTA_TEMP              HEX: 00000005
+CONSTANT: D3DTA_CONSTANT          HEX: 00000006
+CONSTANT: D3DTA_COMPLEMENT        HEX: 00000010
+CONSTANT: D3DTA_ALPHAREPLICATE    HEX: 00000020
+
+TYPEDEF: int D3DTEXTUREFILTERTYPE
+CONSTANT: D3DTEXF_NONE            0
+CONSTANT: D3DTEXF_POINT           1
+CONSTANT: D3DTEXF_LINEAR          2
+CONSTANT: D3DTEXF_ANISOTROPIC     3
+CONSTANT: D3DTEXF_PYRAMIDALQUAD   6
+CONSTANT: D3DTEXF_GAUSSIANQUAD    7
+CONSTANT: D3DTEXF_CONVOLUTIONMONO 8
+CONSTANT: D3DTEXF_FORCE_DWORD     HEX: 7fffffff
+
+CONSTANT: D3DPV_DONOTCOPYDATA     1
+
+CONSTANT: D3DFVF_RESERVED0        HEX: 001
+CONSTANT: D3DFVF_POSITION_MASK    HEX: 400E
+CONSTANT: D3DFVF_XYZ              HEX: 002
+CONSTANT: D3DFVF_XYZRHW           HEX: 004
+CONSTANT: D3DFVF_XYZB1            HEX: 006
+CONSTANT: D3DFVF_XYZB2            HEX: 008
+CONSTANT: D3DFVF_XYZB3            HEX: 00a
+CONSTANT: D3DFVF_XYZB4            HEX: 00c
+CONSTANT: D3DFVF_XYZB5            HEX: 00e
+CONSTANT: D3DFVF_XYZW             HEX: 4002
+
+CONSTANT: D3DFVF_NORMAL           HEX: 010
+CONSTANT: D3DFVF_PSIZE            HEX: 020
+CONSTANT: D3DFVF_DIFFUSE          HEX: 040
+CONSTANT: D3DFVF_SPECULAR         HEX: 080
+
+CONSTANT: D3DFVF_TEXCOUNT_MASK    HEX: f00
+CONSTANT: D3DFVF_TEXCOUNT_SHIFT   8
+CONSTANT: D3DFVF_TEX0             HEX: 000
+CONSTANT: D3DFVF_TEX1             HEX: 100
+CONSTANT: D3DFVF_TEX2             HEX: 200
+CONSTANT: D3DFVF_TEX3             HEX: 300
+CONSTANT: D3DFVF_TEX4             HEX: 400
+CONSTANT: D3DFVF_TEX5             HEX: 500
+CONSTANT: D3DFVF_TEX6             HEX: 600
+CONSTANT: D3DFVF_TEX7             HEX: 700
+CONSTANT: D3DFVF_TEX8             HEX: 800
+
+CONSTANT: D3DFVF_LASTBETA_UBYTE4   HEX: 1000
+CONSTANT: D3DFVF_LASTBETA_D3DCOLOR HEX: 8000
+
+CONSTANT: D3DFVF_RESERVED2         HEX: 6000
+
+TYPEDEF: int D3DDECLUSAGE
+CONSTANT: D3DDECLUSAGE_POSITION     0
+CONSTANT: D3DDECLUSAGE_BLENDWEIGHT  1
+CONSTANT: D3DDECLUSAGE_BLENDINDICES 2
+CONSTANT: D3DDECLUSAGE_NORMAL       3
+CONSTANT: D3DDECLUSAGE_PSIZE        4
+CONSTANT: D3DDECLUSAGE_TEXCOORD     5
+CONSTANT: D3DDECLUSAGE_TANGENT      6
+CONSTANT: D3DDECLUSAGE_BINORMAL     7
+CONSTANT: D3DDECLUSAGE_TESSFACTOR   8
+CONSTANT: D3DDECLUSAGE_POSITIONT    9
+CONSTANT: D3DDECLUSAGE_COLOR        10
+CONSTANT: D3DDECLUSAGE_FOG          11
+CONSTANT: D3DDECLUSAGE_DEPTH        12
+CONSTANT: D3DDECLUSAGE_SAMPLE       13
+
+CONSTANT: MAXD3DDECLUSAGE         13
+CONSTANT: MAXD3DDECLUSAGEINDEX    15
+CONSTANT: MAXD3DDECLLENGTH        64
+
+TYPEDEF: int D3DDECLMETHOD
+C-ENUM:
+    D3DDECLMETHOD_DEFAULT
+    D3DDECLMETHOD_PARTIALU
+    D3DDECLMETHOD_PARTIALV
+    D3DDECLMETHOD_CROSSUV
+    D3DDECLMETHOD_UV
+    D3DDECLMETHOD_LOOKUP
+    D3DDECLMETHOD_LOOKUPPRESAMPLED ;
+
+: MAXD3DDECLMETHOD ( -- n ) D3DDECLMETHOD_LOOKUPPRESAMPLED ; inline
+
+TYPEDEF: int D3DDECLTYPE
+CONSTANT: D3DDECLTYPE_FLOAT1    0
+CONSTANT: D3DDECLTYPE_FLOAT2    1
+CONSTANT: D3DDECLTYPE_FLOAT3    2
+CONSTANT: D3DDECLTYPE_FLOAT4    3
+CONSTANT: D3DDECLTYPE_D3DCOLOR  4
+CONSTANT: D3DDECLTYPE_UBYTE4    5
+CONSTANT: D3DDECLTYPE_SHORT2    6
+CONSTANT: D3DDECLTYPE_SHORT4    7
+CONSTANT: D3DDECLTYPE_UBYTE4N   8
+CONSTANT: D3DDECLTYPE_SHORT2N   9
+CONSTANT: D3DDECLTYPE_SHORT4N   10
+CONSTANT: D3DDECLTYPE_USHORT2N  11
+CONSTANT: D3DDECLTYPE_USHORT4N  12
+CONSTANT: D3DDECLTYPE_UDEC3     13
+CONSTANT: D3DDECLTYPE_DEC3N     14
+CONSTANT: D3DDECLTYPE_FLOAT16_2 15
+CONSTANT: D3DDECLTYPE_FLOAT16_4 16
+CONSTANT: D3DDECLTYPE_UNUSED    17
+
+: MAXD3DDECLTYPE ( -- n ) D3DDECLTYPE_UNUSED ; inline
+
+STRUCT: D3DVERTEXELEMENT9
+    { Stream        WORD }
+    { Offset        WORD }
+    { Type          BYTE }
+    { Method        BYTE }
+    { Usage         BYTE }
+    { UsageIndex    BYTE } ;
+TYPEDEF: D3DVERTEXELEMENT9* LPD3DVERTEXELEMENT9
+
+CONSTANT: D3DDP_MAXTEXCOORD   8
+
+CONSTANT: D3DSTREAMSOURCE_INDEXEDDATA  HEX: 40000000
+CONSTANT: D3DSTREAMSOURCE_INSTANCEDATA HEX: 80000000
+
+CONSTANT: D3DSI_OPCODE_MASK       HEX: 0000FFFF
+CONSTANT: D3DSI_INSTLENGTH_MASK   HEX: 0F000000
+CONSTANT: D3DSI_INSTLENGTH_SHIFT  24
+
+TYPEDEF: int D3DSHADER_INSTRUCTION_OPCODE_TYPE
+CONSTANT: D3DSIO_NOP          0
+CONSTANT: D3DSIO_MOV          1
+CONSTANT: D3DSIO_ADD          2
+CONSTANT: D3DSIO_SUB          3
+CONSTANT: D3DSIO_MAD          4
+CONSTANT: D3DSIO_MUL          5
+CONSTANT: D3DSIO_RCP          6
+CONSTANT: D3DSIO_RSQ          7
+CONSTANT: D3DSIO_DP3          8
+CONSTANT: D3DSIO_DP4          9
+CONSTANT: D3DSIO_MIN          10
+CONSTANT: D3DSIO_MAX          11
+CONSTANT: D3DSIO_SLT          12
+CONSTANT: D3DSIO_SGE          13
+CONSTANT: D3DSIO_EXP          14
+CONSTANT: D3DSIO_LOG          15
+CONSTANT: D3DSIO_LIT          16
+CONSTANT: D3DSIO_DST          17
+CONSTANT: D3DSIO_LRP          18
+CONSTANT: D3DSIO_FRC          19
+CONSTANT: D3DSIO_M4x4         20
+CONSTANT: D3DSIO_M4x3         21
+CONSTANT: D3DSIO_M3x4         22
+CONSTANT: D3DSIO_M3x3         23
+CONSTANT: D3DSIO_M3x2         24
+CONSTANT: D3DSIO_CALL         25
+CONSTANT: D3DSIO_CALLNZ       26
+CONSTANT: D3DSIO_LOOP         27
+CONSTANT: D3DSIO_RET          28
+CONSTANT: D3DSIO_ENDLOOP      29
+CONSTANT: D3DSIO_LABEL        30
+CONSTANT: D3DSIO_DCL          31
+CONSTANT: D3DSIO_POW          32
+CONSTANT: D3DSIO_CRS          33
+CONSTANT: D3DSIO_SGN          34
+CONSTANT: D3DSIO_ABS          35
+CONSTANT: D3DSIO_NRM          36
+CONSTANT: D3DSIO_SINCOS       37
+CONSTANT: D3DSIO_REP          38
+CONSTANT: D3DSIO_ENDREP       39
+CONSTANT: D3DSIO_IF           40
+CONSTANT: D3DSIO_IFC          41
+CONSTANT: D3DSIO_ELSE         42
+CONSTANT: D3DSIO_ENDIF        43
+CONSTANT: D3DSIO_BREAK        44
+CONSTANT: D3DSIO_BREAKC       45
+CONSTANT: D3DSIO_MOVA         46
+CONSTANT: D3DSIO_DEFB         47
+CONSTANT: D3DSIO_DEFI         48
+CONSTANT: D3DSIO_TEXCOORD     64
+CONSTANT: D3DSIO_TEXKILL      65
+CONSTANT: D3DSIO_TEX          66
+CONSTANT: D3DSIO_TEXBEM       67
+CONSTANT: D3DSIO_TEXBEML      68
+CONSTANT: D3DSIO_TEXREG2AR    69
+CONSTANT: D3DSIO_TEXREG2GB    70
+CONSTANT: D3DSIO_TEXM3x2PAD   71
+CONSTANT: D3DSIO_TEXM3x2TEX   72
+CONSTANT: D3DSIO_TEXM3x3PAD   73
+CONSTANT: D3DSIO_TEXM3x3TEX   74
+CONSTANT: D3DSIO_RESERVED0    75
+CONSTANT: D3DSIO_TEXM3x3SPEC  76
+CONSTANT: D3DSIO_TEXM3x3VSPEC 77
+CONSTANT: D3DSIO_EXPP         78
+CONSTANT: D3DSIO_LOGP         79
+CONSTANT: D3DSIO_CND          80
+CONSTANT: D3DSIO_DEF          81
+CONSTANT: D3DSIO_TEXREG2RGB   82
+CONSTANT: D3DSIO_TEXDP3TEX    83
+CONSTANT: D3DSIO_TEXM3x2DEPTH 84
+CONSTANT: D3DSIO_TEXDP3       85
+CONSTANT: D3DSIO_TEXM3x3      86
+CONSTANT: D3DSIO_TEXDEPTH     87
+CONSTANT: D3DSIO_CMP          88
+CONSTANT: D3DSIO_BEM          89
+CONSTANT: D3DSIO_DP2ADD       90
+CONSTANT: D3DSIO_DSX          91
+CONSTANT: D3DSIO_DSY          92
+CONSTANT: D3DSIO_TEXLDD       93
+CONSTANT: D3DSIO_SETP         94
+CONSTANT: D3DSIO_TEXLDL       95
+CONSTANT: D3DSIO_BREAKP       96
+CONSTANT: D3DSIO_PHASE        HEX: FFFD
+CONSTANT: D3DSIO_COMMENT      HEX: FFFE
+CONSTANT: D3DSIO_END          HEX: FFFF
+CONSTANT: D3DSIO_FORCE_DWORD  HEX: 7fffffff
+
+CONSTANT: D3DSI_COISSUE           HEX: 40000000
+
+CONSTANT: D3DSP_OPCODESPECIFICCONTROL_MASK  HEX: 00ff0000
+CONSTANT: D3DSP_OPCODESPECIFICCONTROL_SHIFT 16
+
+: D3DSI_TEXLD_PROJECT ( -- n ) 1 D3DSP_OPCODESPECIFICCONTROL_SHIFT shift ; inline
+: D3DSI_TEXLD_BIAS    ( -- n ) 2 D3DSP_OPCODESPECIFICCONTROL_SHIFT shift ; inline
+
+TYPEDEF: int D3DSHADER_COMPARISON
+CONSTANT: D3DSPC_RESERVED0 0
+CONSTANT: D3DSPC_GT        1
+CONSTANT: D3DSPC_EQ        2
+CONSTANT: D3DSPC_GE        3
+CONSTANT: D3DSPC_LT        4
+CONSTANT: D3DSPC_NE        5
+CONSTANT: D3DSPC_LE        6
+CONSTANT: D3DSPC_RESERVED1 7  
+
+CONSTANT: D3DSHADER_COMPARISON_SHIFT D3DSP_OPCODESPECIFICCONTROL_SHIFT
+: D3DSHADER_COMPARISON_MASK ( -- n ) 7 D3DSHADER_COMPARISON_SHIFT shift ; inline
+
+CONSTANT: D3DSHADER_INSTRUCTION_PREDICATED    HEX: 10000000
+
+CONSTANT: D3DSP_DCL_USAGE_SHIFT 0
+CONSTANT: D3DSP_DCL_USAGE_MASK  HEX: 0000000f
+
+CONSTANT: D3DSP_DCL_USAGEINDEX_SHIFT 16
+CONSTANT: D3DSP_DCL_USAGEINDEX_MASK  HEX: 000f0000
+
+CONSTANT: D3DSP_TEXTURETYPE_SHIFT 27
+CONSTANT: D3DSP_TEXTURETYPE_MASK  HEX: 78000000
+
+TYPEDEF: int D3DSAMPLER_TEXTURE_TYPE
+: D3DSTT_UNKNOWN ( -- n ) 0 D3DSP_TEXTURETYPE_SHIFT shift ; inline
+: D3DSTT_2D      ( -- n ) 2 D3DSP_TEXTURETYPE_SHIFT shift ; inline
+: D3DSTT_CUBE    ( -- n ) 3 D3DSP_TEXTURETYPE_SHIFT shift ; inline
+: D3DSTT_VOLUME  ( -- n ) 4 D3DSP_TEXTURETYPE_SHIFT shift ; inline
+CONSTANT: D3DSTT_FORCE_DWORD HEX: 7fffffff
+
+CONSTANT: D3DSP_REGNUM_MASK       HEX: 000007FF
+
+CONSTANT: D3DSP_WRITEMASK_0       HEX: 00010000
+CONSTANT: D3DSP_WRITEMASK_1       HEX: 00020000
+CONSTANT: D3DSP_WRITEMASK_2       HEX: 00040000
+CONSTANT: D3DSP_WRITEMASK_3       HEX: 00080000
+CONSTANT: D3DSP_WRITEMASK_ALL     HEX: 000F0000
+
+CONSTANT: D3DSP_DSTMOD_SHIFT      20
+CONSTANT: D3DSP_DSTMOD_MASK       HEX: 00F00000
+
+: D3DSPDM_NONE             ( -- n ) 0 D3DSP_DSTMOD_SHIFT shift ; inline
+: D3DSPDM_SATURATE         ( -- n ) 1 D3DSP_DSTMOD_SHIFT shift ; inline
+: D3DSPDM_PARTIALPRECISION ( -- n ) 2 D3DSP_DSTMOD_SHIFT shift ; inline
+: D3DSPDM_MSAMPCENTROID    ( -- n ) 4 D3DSP_DSTMOD_SHIFT shift ; inline
+
+CONSTANT: D3DSP_DSTSHIFT_SHIFT    24
+CONSTANT: D3DSP_DSTSHIFT_MASK     HEX: 0F000000
+
+CONSTANT: D3DSP_REGTYPE_SHIFT     28
+CONSTANT: D3DSP_REGTYPE_SHIFT2    8
+CONSTANT: D3DSP_REGTYPE_MASK      HEX: 70000000
+CONSTANT: D3DSP_REGTYPE_MASK2     HEX: 00001800
+
+TYPEDEF: int D3DSHADER_PARAM_REGISTER_TYPE
+CONSTANT: D3DSPR_TEMP           0
+CONSTANT: D3DSPR_INPUT          1
+CONSTANT: D3DSPR_CONST          2
+CONSTANT: D3DSPR_ADDR           3
+CONSTANT: D3DSPR_TEXTURE        3
+CONSTANT: D3DSPR_RASTOUT        4
+CONSTANT: D3DSPR_ATTROUT        5
+CONSTANT: D3DSPR_TEXCRDOUT      6
+CONSTANT: D3DSPR_OUTPUT         6
+CONSTANT: D3DSPR_CONSTINT       7
+CONSTANT: D3DSPR_COLOROUT       8
+CONSTANT: D3DSPR_DEPTHOUT       9
+CONSTANT: D3DSPR_SAMPLER        10
+CONSTANT: D3DSPR_CONST2         11
+CONSTANT: D3DSPR_CONST3         12
+CONSTANT: D3DSPR_CONST4         13
+CONSTANT: D3DSPR_CONSTBOOL      14
+CONSTANT: D3DSPR_LOOP           15
+CONSTANT: D3DSPR_TEMPFLOAT16    16
+CONSTANT: D3DSPR_MISCTYPE       17
+CONSTANT: D3DSPR_LABEL          18
+CONSTANT: D3DSPR_PREDICATE      19
+CONSTANT: D3DSPR_FORCE_DWORD  HEX: 7fffffff
+
+TYPEDEF: int D3DSHADER_MISCTYPE_OFFSETS
+CONSTANT: D3DSMO_POSITION   0
+CONSTANT: D3DSMO_FACE       1
+
+TYPEDEF: int D3DVS_RASTOUT_OFFSETS
+CONSTANT: D3DSRO_POSITION   0
+CONSTANT: D3DSRO_FOG        1
+CONSTANT: D3DSRO_POINT_SIZE 2
+CONSTANT: D3DSRO_FORCE_DWORD HEX: 7fffffff
+
+CONSTANT: D3DVS_ADDRESSMODE_SHIFT 13
+: D3DVS_ADDRESSMODE_MASK ( -- n ) 1 D3DVS_ADDRESSMODE_SHIFT shift ; inline
+
+TYPEDEF: int D3DVS_ADDRESSMODE_TYPE
+: D3DVS_ADDRMODE_ABSOLUTE ( -- n ) 0 D3DVS_ADDRESSMODE_SHIFT shift ; inline
+: D3DVS_ADDRMODE_RELATIVE ( -- n ) 1 D3DVS_ADDRESSMODE_SHIFT shift ; inline
+CONSTANT: D3DVS_ADDRMODE_FORCE_DWORD HEX: 7fffffff
+
+CONSTANT: D3DSHADER_ADDRESSMODE_SHIFT 13
+: D3DSHADER_ADDRESSMODE_MASK ( -- n ) 1 D3DSHADER_ADDRESSMODE_SHIFT shift ; inline
+
+TYPEDEF: int D3DSHADER_ADDRESSMODE_TYPE
+: D3DSHADER_ADDRMODE_ABSOLUTE ( -- n ) 0 D3DSHADER_ADDRESSMODE_SHIFT shift ; inline
+: D3DSHADER_ADDRMODE_RELATIVE ( -- n ) 1 D3DSHADER_ADDRESSMODE_SHIFT shift ; inline
+CONSTANT: D3DSHADER_ADDRMODE_FORCE_DWORD HEX: 7fffffff
+
+CONSTANT: D3DVS_SWIZZLE_SHIFT     16
+CONSTANT: D3DVS_SWIZZLE_MASK      HEX: 00FF0000
+
+: D3DVS_X_X ( -- n ) 0 D3DVS_SWIZZLE_SHIFT shift ; inline
+: D3DVS_X_Y ( -- n ) 1 D3DVS_SWIZZLE_SHIFT shift ; inline
+: D3DVS_X_Z ( -- n ) 2 D3DVS_SWIZZLE_SHIFT shift ; inline
+: D3DVS_X_W ( -- n ) 3 D3DVS_SWIZZLE_SHIFT shift ; inline
+
+: D3DVS_Y_X ( -- n ) 0 D3DVS_SWIZZLE_SHIFT 2 + shift ; inline
+: D3DVS_Y_Y ( -- n ) 1 D3DVS_SWIZZLE_SHIFT 2 + shift ; inline
+: D3DVS_Y_Z ( -- n ) 2 D3DVS_SWIZZLE_SHIFT 2 + shift ; inline
+: D3DVS_Y_W ( -- n ) 3 D3DVS_SWIZZLE_SHIFT 2 + shift ; inline
+
+: D3DVS_Z_X ( -- n ) 0 D3DVS_SWIZZLE_SHIFT 4 + shift ; inline
+: D3DVS_Z_Y ( -- n ) 1 D3DVS_SWIZZLE_SHIFT 4 + shift ; inline
+: D3DVS_Z_Z ( -- n ) 2 D3DVS_SWIZZLE_SHIFT 4 + shift ; inline
+: D3DVS_Z_W ( -- n ) 3 D3DVS_SWIZZLE_SHIFT 4 + shift ; inline
+
+: D3DVS_W_X ( -- n ) 0 D3DVS_SWIZZLE_SHIFT 6 + shift ; inline
+: D3DVS_W_Y ( -- n ) 1 D3DVS_SWIZZLE_SHIFT 6 + shift ; inline
+: D3DVS_W_Z ( -- n ) 2 D3DVS_SWIZZLE_SHIFT 6 + shift ; inline
+: D3DVS_W_W ( -- n ) 3 D3DVS_SWIZZLE_SHIFT 6 + shift ; inline
+
+: D3DVS_NOSWIZZLE ( -- n )
+    { D3DVS_X_X D3DVS_Y_Y D3DVS_Z_Z D3DVS_W_W } flags ; inline
+
+CONSTANT: D3DSP_SWIZZLE_SHIFT     16
+CONSTANT: D3DSP_SWIZZLE_MASK      HEX: 00FF0000
+CONSTANT: D3DSP_SRCMOD_SHIFT      24
+CONSTANT: D3DSP_SRCMOD_MASK       HEX: 0F000000
+
+TYPEDEF: int D3DSHADER_PARAM_SRCMOD_TYPE
+: D3DSPSM_NONE    ( -- n ) 0 D3DSP_SRCMOD_SHIFT shift ; inline
+: D3DSPSM_NEG     ( -- n ) 1 D3DSP_SRCMOD_SHIFT shift ; inline
+: D3DSPSM_BIAS    ( -- n ) 2 D3DSP_SRCMOD_SHIFT shift ; inline
+: D3DSPSM_BIASNEG ( -- n ) 3 D3DSP_SRCMOD_SHIFT shift ; inline
+: D3DSPSM_SIGN    ( -- n ) 4 D3DSP_SRCMOD_SHIFT shift ; inline
+: D3DSPSM_SIGNNEG ( -- n ) 5 D3DSP_SRCMOD_SHIFT shift ; inline
+: D3DSPSM_COMP    ( -- n ) 6 D3DSP_SRCMOD_SHIFT shift ; inline
+: D3DSPSM_X2      ( -- n ) 7 D3DSP_SRCMOD_SHIFT shift ; inline
+: D3DSPSM_X2NEG   ( -- n ) 8 D3DSP_SRCMOD_SHIFT shift ; inline
+: D3DSPSM_DZ      ( -- n ) 9 D3DSP_SRCMOD_SHIFT shift ; inline
+: D3DSPSM_DW      ( -- n ) 10 D3DSP_SRCMOD_SHIFT shift ; inline
+: D3DSPSM_ABS     ( -- n ) 11 D3DSP_SRCMOD_SHIFT shift ; inline
+: D3DSPSM_ABSNEG  ( -- n ) 12 D3DSP_SRCMOD_SHIFT shift ; inline
+: D3DSPSM_NOT     ( -- n ) 13 D3DSP_SRCMOD_SHIFT shift ; inline
+CONSTANT: D3DSPSM_FORCE_DWORD HEX: 7fffffff
+
+: D3DPS_VERSION ( major minor -- n )
+    swap 8 shift bitor HEX: FFFF0000 bitor ; inline
+: D3DVS_VERSION ( major minor -- n )
+    swap 8 shift bitor HEX: FFFF0000 bitor ; inline
+
+: D3DSHADER_VERSION_MAJOR ( version -- n )
+    -8 shift HEX: FF bitand ; inline
+: D3DSHADER_VERSION_MINOR ( version -- n )
+    HEX: FF bitand ; inline
+
+CONSTANT: D3DSI_COMMENTSIZE_SHIFT 16
+CONSTANT: D3DSI_COMMENTSIZE_MASK  HEX: 7FFF0000
+
+CONSTANT: D3DPS_END()  HEX: 0000FFFF
+CONSTANT: D3DVS_END()  HEX: 0000FFFF
+
+TYPEDEF: int D3DBASISTYPE
+CONSTANT: D3DBASIS_BEZIER      0
+CONSTANT: D3DBASIS_BSPLINE     1
+CONSTANT: D3DBASIS_CATMULL_ROM 2
+CONSTANT: D3DBASIS_FORCE_DWORD HEX: 7fffffff
+
+TYPEDEF: int D3DDEGREETYPE
+CONSTANT: D3DDEGREE_LINEAR      1
+CONSTANT: D3DDEGREE_QUADRATIC   2
+CONSTANT: D3DDEGREE_CUBIC       3
+CONSTANT: D3DDEGREE_QUINTIC     5
+CONSTANT: D3DDEGREE_FORCE_DWORD HEX: 7fffffff
+
+TYPEDEF: int D3DPATCHEDGESTYLE
+CONSTANT: D3DPATCHEDGE_DISCRETE    0
+CONSTANT: D3DPATCHEDGE_CONTINUOUS  1
+CONSTANT: D3DPATCHEDGE_FORCE_DWORD HEX: 7fffffff
+
+TYPEDEF: int D3DSTATEBLOCKTYPE
+CONSTANT: D3DSBT_ALL           1
+CONSTANT: D3DSBT_PIXELSTATE    2
+CONSTANT: D3DSBT_VERTEXSTATE   3
+CONSTANT: D3DSBT_FORCE_DWORD   HEX: 7fffffff
+
+TYPEDEF: int D3DVERTEXBLENDFLAGS
+CONSTANT: D3DVBF_DISABLE  0
+CONSTANT: D3DVBF_1WEIGHTS 1
+CONSTANT: D3DVBF_2WEIGHTS 2
+CONSTANT: D3DVBF_3WEIGHTS 3
+CONSTANT: D3DVBF_TWEENING 255
+CONSTANT: D3DVBF_0WEIGHTS 256
+CONSTANT: D3DVBF_FORCE_DWORD HEX: 7fffffff
+
+TYPEDEF: int D3DTEXTURETRANSFORMFLAGS
+CONSTANT: D3DTTFF_DISABLE         0
+CONSTANT: D3DTTFF_COUNT1          1
+CONSTANT: D3DTTFF_COUNT2          2
+CONSTANT: D3DTTFF_COUNT3          3
+CONSTANT: D3DTTFF_COUNT4          4
+CONSTANT: D3DTTFF_PROJECTED       256
+CONSTANT: D3DTTFF_FORCE_DWORD     HEX: 7fffffff
+
+CONSTANT: D3DFVF_TEXTUREFORMAT2 0
+CONSTANT: D3DFVF_TEXTUREFORMAT1 3
+CONSTANT: D3DFVF_TEXTUREFORMAT3 1
+CONSTANT: D3DFVF_TEXTUREFORMAT4 2
+
+: D3DFVF_TEXCOORDSIZE3 ( CoordIndex -- n )
+    2 * 16 + D3DFVF_TEXTUREFORMAT3 swap shift ; inline
+: D3DFVF_TEXCOORDSIZE2 ( CoordIndex -- n )
+    drop D3DFVF_TEXTUREFORMAT2 ; inline
+: D3DFVF_TEXCOORDSIZE4 ( CoordIndex -- n )
+    2 * 16 + D3DFVF_TEXTUREFORMAT4 swap shift ; inline
+: D3DFVF_TEXCOORDSIZE1 ( CoordIndex -- n )
+    2 * 16 + D3DFVF_TEXTUREFORMAT1 swap shift ; inline
+
+TYPEDEF: int D3DDEVTYPE
+CONSTANT: D3DDEVTYPE_HAL         1
+CONSTANT: D3DDEVTYPE_REF         2
+CONSTANT: D3DDEVTYPE_SW          3
+CONSTANT: D3DDEVTYPE_NULLREF     4
+CONSTANT: D3DDEVTYPE_FORCE_DWORD  HEX: 7fffffff
+
+TYPEDEF: int D3DMULTISAMPLE_TYPE
+CONSTANT: D3DMULTISAMPLE_NONE            0
+CONSTANT: D3DMULTISAMPLE_NONMASKABLE     1
+CONSTANT: D3DMULTISAMPLE_2_SAMPLES       2
+CONSTANT: D3DMULTISAMPLE_3_SAMPLES       3
+CONSTANT: D3DMULTISAMPLE_4_SAMPLES       4
+CONSTANT: D3DMULTISAMPLE_5_SAMPLES       5
+CONSTANT: D3DMULTISAMPLE_6_SAMPLES       6
+CONSTANT: D3DMULTISAMPLE_7_SAMPLES       7
+CONSTANT: D3DMULTISAMPLE_8_SAMPLES       8
+CONSTANT: D3DMULTISAMPLE_9_SAMPLES       9
+CONSTANT: D3DMULTISAMPLE_10_SAMPLES      10
+CONSTANT: D3DMULTISAMPLE_11_SAMPLES      11
+CONSTANT: D3DMULTISAMPLE_12_SAMPLES      12
+CONSTANT: D3DMULTISAMPLE_13_SAMPLES      13
+CONSTANT: D3DMULTISAMPLE_14_SAMPLES      14
+CONSTANT: D3DMULTISAMPLE_15_SAMPLES      15
+CONSTANT: D3DMULTISAMPLE_16_SAMPLES      16
+CONSTANT: D3DMULTISAMPLE_FORCE_DWORD     HEX: 7fffffff
+
+:: MAKEFOURCC ( ch0 ch1 ch2 ch3 -- n )
+    ch3 HEX: ff bitand 24 shift
+    ch2 HEX: ff bitand 16 shift
+    ch1 HEX: ff bitand  8 shift
+    ch0 HEX: ff bitand bitor bitor bitor ; inline
+                                                                  
+TYPEDEF: int D3DFORMAT
+CONSTANT: D3DFMT_UNKNOWN              0
+CONSTANT: D3DFMT_R8G8B8               20
+CONSTANT: D3DFMT_A8R8G8B8             21
+CONSTANT: D3DFMT_X8R8G8B8             22
+CONSTANT: D3DFMT_R5G6B5               23
+CONSTANT: D3DFMT_X1R5G5B5             24
+CONSTANT: D3DFMT_A1R5G5B5             25
+CONSTANT: D3DFMT_A4R4G4B4             26
+CONSTANT: D3DFMT_R3G3B2               27
+CONSTANT: D3DFMT_A8                   28
+CONSTANT: D3DFMT_A8R3G3B2             29
+CONSTANT: D3DFMT_X4R4G4B4             30
+CONSTANT: D3DFMT_A2B10G10R10          31
+CONSTANT: D3DFMT_A8B8G8R8             32
+CONSTANT: D3DFMT_X8B8G8R8             33
+CONSTANT: D3DFMT_G16R16               34
+CONSTANT: D3DFMT_A2R10G10B10          35
+CONSTANT: D3DFMT_A16B16G16R16         36
+CONSTANT: D3DFMT_A8P8                 40
+CONSTANT: D3DFMT_P8                   41
+CONSTANT: D3DFMT_L8                   50
+CONSTANT: D3DFMT_A8L8                 51
+CONSTANT: D3DFMT_A4L4                 52
+CONSTANT: D3DFMT_V8U8                 60
+CONSTANT: D3DFMT_L6V5U5               61
+CONSTANT: D3DFMT_X8L8V8U8             62
+CONSTANT: D3DFMT_Q8W8V8U8             63
+CONSTANT: D3DFMT_V16U16               64
+CONSTANT: D3DFMT_A2W10V10U10          67
+#! : D3DFMT_UYVY                 ( -- n ) 'U' 'Y' 'V' 'Y' MAKEFOURCC
+#! D3DFMT_R8G8_B8G8            = MAKEFOURCC('R', 'G', 'B', 'G'),
+#! D3DFMT_YUY2                 = MAKEFOURCC('Y', 'U', 'Y', '2'),
+#! D3DFMT_G8R8_G8B8            = MAKEFOURCC('G', 'R', 'G', 'B'),
+#! D3DFMT_DXT1                 = MAKEFOURCC('D', 'X', 'T', '1'),
+#! D3DFMT_DXT2                 = MAKEFOURCC('D', 'X', 'T', '2'),
+#! D3DFMT_DXT3                 = MAKEFOURCC('D', 'X', 'T', '3'),
+#! D3DFMT_DXT4                 = MAKEFOURCC('D', 'X', 'T', '4'),
+#! D3DFMT_DXT5                 = MAKEFOURCC('D', 'X', 'T', '5'),
+CONSTANT: D3DFMT_D16_LOCKABLE         70
+CONSTANT: D3DFMT_D32                  71
+CONSTANT: D3DFMT_D15S1                73
+CONSTANT: D3DFMT_D24S8                75
+CONSTANT: D3DFMT_D24X8                77
+CONSTANT: D3DFMT_D24X4S4              79
+CONSTANT: D3DFMT_D16                  80
+CONSTANT: D3DFMT_D32F_LOCKABLE        82
+CONSTANT: D3DFMT_D24FS8               83
+CONSTANT: D3DFMT_D32_LOCKABLE         84
+CONSTANT: D3DFMT_S8_LOCKABLE          85
+CONSTANT: D3DFMT_L16                  81
+CONSTANT: D3DFMT_VERTEXDATA           100
+CONSTANT: D3DFMT_INDEX16              101
+CONSTANT: D3DFMT_INDEX32              102
+CONSTANT: D3DFMT_Q16W16V16U16         110
+#! D3DFMT_MULTI2_ARGB8         = MAKEFOURCC('M', 'E', 'T', '1'),
+CONSTANT: D3DFMT_R16F                 111
+CONSTANT: D3DFMT_G16R16F              112
+CONSTANT: D3DFMT_A16B16G16R16F        113
+CONSTANT: D3DFMT_R32F                 114
+CONSTANT: D3DFMT_G32R32F              115
+CONSTANT: D3DFMT_A32B32G32R32F        116
+CONSTANT: D3DFMT_CxV8U8               117
+CONSTANT: D3DFMT_A1                   118
+CONSTANT: D3DFMT_A2B10G10R10_XR_BIAS  119
+CONSTANT: D3DFMT_BINARYBUFFER         199
+CONSTANT: D3DFMT_FORCE_DWORD          HEX: 7fffffff
+
+STRUCT: D3DDISPLAYMODE
+    { Width                  UINT      }
+    { Height                 UINT      }
+    { RefreshRate            UINT      }
+    { Format                 D3DFORMAT } ;
+
+STRUCT: D3DDEVICE_CREATION_PARAMETERS
+    { AdapterOrdinal            UINT       }
+    { DeviceType                D3DDEVTYPE }
+    { hFocusWindow              HWND       }
+    { BehaviorFlags             DWORD      } ;
+
+TYPEDEF: int D3DSWAPEFFECT
+CONSTANT: D3DSWAPEFFECT_DISCARD           1
+CONSTANT: D3DSWAPEFFECT_FLIP              2
+CONSTANT: D3DSWAPEFFECT_COPY              3
+CONSTANT: D3DSWAPEFFECT_OVERLAY           4
+CONSTANT: D3DSWAPEFFECT_FLIPEX            5
+CONSTANT: D3DSWAPEFFECT_FORCE_DWORD       HEX: 7fffffff
+
+TYPEDEF: int D3DPOOL
+CONSTANT: D3DPOOL_DEFAULT                 0
+CONSTANT: D3DPOOL_MANAGED                 1
+CONSTANT: D3DPOOL_SYSTEMMEM               2
+CONSTANT: D3DPOOL_SCRATCH                 3
+CONSTANT: D3DPOOL_FORCE_DWORD             HEX: 7fffffff
+
+CONSTANT: D3DPRESENT_RATE_DEFAULT         HEX: 00000000
+
+STRUCT: D3DPRESENT_PARAMETERS
+    { BackBufferWidth             UINT                }
+    { BackBufferHeight            UINT                }
+    { BackBufferFormat            D3DFORMAT           }
+    { BackBufferCount             UINT                }
+    { MultiSampleType             D3DMULTISAMPLE_TYPE }
+    { MultiSampleQuality          DWORD               }
+    { SwapEffect                  D3DSWAPEFFECT       }
+    { hDeviceWindow               HWND                }
+    { Windowed                    BOOL                }
+    { EnableAutoDepthStencil      BOOL                }
+    { AutoDepthStencilFormat      D3DFORMAT           }
+    { Flags                       DWORD               }
+    { FullScreen_RefreshRateInHz  UINT                }
+    { PresentationInterval        UINT                } ;
+
+CONSTANT: D3DPRESENTFLAG_LOCKABLE_BACKBUFFER      HEX: 00000001
+CONSTANT: D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL     HEX: 00000002
+CONSTANT: D3DPRESENTFLAG_DEVICECLIP               HEX: 00000004
+CONSTANT: D3DPRESENTFLAG_VIDEO                    HEX: 00000010
+
+CONSTANT: D3DPRESENTFLAG_NOAUTOROTATE                    HEX: 00000020
+CONSTANT: D3DPRESENTFLAG_UNPRUNEDMODE                    HEX: 00000040
+CONSTANT: D3DPRESENTFLAG_OVERLAY_LIMITEDRGB              HEX: 00000080
+CONSTANT: D3DPRESENTFLAG_OVERLAY_YCbCr_BT709             HEX: 00000100
+CONSTANT: D3DPRESENTFLAG_OVERLAY_YCbCr_xvYCC             HEX: 00000200
+CONSTANT: D3DPRESENTFLAG_RESTRICTED_CONTENT              HEX: 00000400
+CONSTANT: D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER HEX: 00000800
+
+STRUCT: D3DGAMMARAMP
+    { red   WORD[256] }
+    { green WORD[256] }
+    { blue  WORD[256] } ;
+
+TYPEDEF: int D3DBACKBUFFER_TYPE
+CONSTANT: D3DBACKBUFFER_TYPE_MONO         0
+CONSTANT: D3DBACKBUFFER_TYPE_LEFT         1
+CONSTANT: D3DBACKBUFFER_TYPE_RIGHT        2
+CONSTANT: D3DBACKBUFFER_TYPE_FORCE_DWORD  HEX: 7fffffff
+
+TYPEDEF: int D3DRESOURCETYPE
+CONSTANT: D3DRTYPE_SURFACE                1
+CONSTANT: D3DRTYPE_VOLUME                 2
+CONSTANT: D3DRTYPE_TEXTURE                3
+CONSTANT: D3DRTYPE_VOLUMETEXTURE          4
+CONSTANT: D3DRTYPE_CUBETEXTURE            5
+CONSTANT: D3DRTYPE_VERTEXBUFFER           6
+CONSTANT: D3DRTYPE_INDEXBUFFER            7
+CONSTANT: D3DRTYPE_FORCE_DWORD            HEX: 7fffffff
+
+CONSTANT: D3DUSAGE_RENDERTARGET       HEX: 00000001
+CONSTANT: D3DUSAGE_DEPTHSTENCIL       HEX: 00000002
+CONSTANT: D3DUSAGE_DYNAMIC            HEX: 00000200
+
+CONSTANT: D3DUSAGE_NONSECURE          HEX: 00800000
+
+CONSTANT: D3DUSAGE_AUTOGENMIPMAP      HEX: 00000400
+CONSTANT: D3DUSAGE_DMAP               HEX: 00004000
+
+CONSTANT: D3DUSAGE_QUERY_LEGACYBUMPMAP            HEX: 00008000
+CONSTANT: D3DUSAGE_QUERY_SRGBREAD                 HEX: 00010000
+CONSTANT: D3DUSAGE_QUERY_FILTER                   HEX: 00020000
+CONSTANT: D3DUSAGE_QUERY_SRGBWRITE                HEX: 00040000
+CONSTANT: D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING HEX: 00080000
+CONSTANT: D3DUSAGE_QUERY_VERTEXTEXTURE            HEX: 00100000
+CONSTANT: D3DUSAGE_QUERY_WRAPANDMIP             HEX: 00200000
+
+CONSTANT: D3DUSAGE_WRITEONLY          HEX: 00000008
+CONSTANT: D3DUSAGE_SOFTWAREPROCESSING HEX: 00000010
+CONSTANT: D3DUSAGE_DONOTCLIP          HEX: 00000020
+CONSTANT: D3DUSAGE_POINTS             HEX: 00000040
+CONSTANT: D3DUSAGE_RTPATCHES          HEX: 00000080
+CONSTANT: D3DUSAGE_NPATCHES           HEX: 00000100
+
+CONSTANT: D3DUSAGE_TEXTAPI                         HEX: 10000000
+CONSTANT: D3DUSAGE_RESTRICTED_CONTENT              HEX: 00000800
+CONSTANT: D3DUSAGE_RESTRICT_SHARED_RESOURCE        HEX: 00002000
+CONSTANT: D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER HEX: 00001000
+
+TYPEDEF: int D3DCUBEMAP_FACES
+CONSTANT: D3DCUBEMAP_FACE_POSITIVE_X     0
+CONSTANT: D3DCUBEMAP_FACE_NEGATIVE_X     1
+CONSTANT: D3DCUBEMAP_FACE_POSITIVE_Y     2
+CONSTANT: D3DCUBEMAP_FACE_NEGATIVE_Y     3
+CONSTANT: D3DCUBEMAP_FACE_POSITIVE_Z     4
+CONSTANT: D3DCUBEMAP_FACE_NEGATIVE_Z     5
+CONSTANT: D3DCUBEMAP_FACE_FORCE_DWORD    HEX: 7fffffff
+
+CONSTANT: D3DLOCK_READONLY           HEX: 00000010
+CONSTANT: D3DLOCK_DISCARD            HEX: 00002000
+CONSTANT: D3DLOCK_NOOVERWRITE        HEX: 00001000
+CONSTANT: D3DLOCK_NOSYSLOCK          HEX: 00000800
+CONSTANT: D3DLOCK_DONOTWAIT          HEX: 00004000
+
+CONSTANT: D3DLOCK_NO_DIRTY_UPDATE     HEX: 00008000
+
+STRUCT: D3DVERTEXBUFFER_DESC
+    { Format              D3DFORMAT       }
+    { Type                D3DRESOURCETYPE }
+    { Usage               DWORD           }
+    { Pool                D3DPOOL         }
+    { Size                UINT            }
+    { FVF                 DWORD           } ;
+
+STRUCT: D3DINDEXBUFFER_DESC
+    { Format              D3DFORMAT       }
+    { Type                D3DRESOURCETYPE }
+    { Usage               DWORD           }
+    { Pool                D3DPOOL         }
+    { Size                UINT            } ;
+
+STRUCT: D3DSURFACE_DESC
+    { Format              D3DFORMAT           }
+    { Type                D3DRESOURCETYPE     }
+    { Usage               DWORD               }
+    { Pool                D3DPOOL             }
+    { MultiSampleType     D3DMULTISAMPLE_TYPE }
+    { MultiSampleQuality  DWORD               }
+    { Width               UINT                }
+    { Height              UINT                } ;
+
+STRUCT: D3DVOLUME_DESC
+
+    { Format              D3DFORMAT       }
+    { Type                D3DRESOURCETYPE }
+    { Usage               DWORD           }
+    { Pool                D3DPOOL         }
+    { Width               UINT            }
+    { Height              UINT            }
+    { Depth               UINT            } ;
+
+STRUCT: D3DLOCKED_RECT
+    { Pitch               INT   }
+    { pBits               void* } ;
+
+STRUCT: D3DBOX
+    { Left                  UINT }
+    { Top                   UINT }
+    { Right                 UINT }
+    { Bottom                UINT }
+    { Front                 UINT }
+    { Back                  UINT } ;
+
+STRUCT: D3DLOCKED_BOX
+    { RowPitch             INT   }
+    { SlicePitch           INT   }
+    { pBits                void* } ;
+
+STRUCT: D3DRANGE
+    { Offset                UINT }
+    { Size                  UINT } ;
+
+STRUCT: D3DRECTPATCH_INFO
+    { StartVertexOffsetWidth  UINT          }
+    { StartVertexOffsetHeight UINT          }
+    { Width                   UINT          }
+    { Height                  UINT          }
+    { Stride                  UINT          }
+    { Basis                   D3DBASISTYPE  }
+    { Degree                  D3DDEGREETYPE } ;
+
+STRUCT: D3DTRIPATCH_INFO
+    { StartVertexOffset       UINT          }
+    { NumVertices             UINT          }
+    { Basis                   D3DBASISTYPE  }
+    { Degree                  D3DDEGREETYPE } ;
+
+CONSTANT: MAX_DEVICE_IDENTIFIER_STRING        512
+
+STRUCT: D3DADAPTER_IDENTIFIER9
+    { Driver                      char[512]     }
+    { Description                 char[512]     }
+    { DeviceName                  char[32]      }
+    { DriverVersion               LARGE_INTEGER }
+    { VendorId                    DWORD         }
+    { DeviceId                    DWORD         }
+    { SubSysId                    DWORD         }
+    { Revision                    DWORD         }
+    { DeviceIdentifier            GUID          }
+    { WHQLLevel                   DWORD         } ;
+
+STRUCT: D3DRASTER_STATUS
+    { InVBlank            BOOL }
+    { ScanLine            UINT } ;
+
+TYPEDEF: int D3DDEBUGMONITORTOKENS
+CONSTANT: D3DDMT_ENABLE            0
+CONSTANT: D3DDMT_DISABLE           1
+CONSTANT: D3DDMT_FORCE_DWORD     HEX: 7fffffff
+
+TYPEDEF: int D3DQUERYTYPE
+CONSTANT: D3DQUERYTYPE_VCACHE                 4
+CONSTANT: D3DQUERYTYPE_RESOURCEMANAGER        5
+CONSTANT: D3DQUERYTYPE_VERTEXSTATS            6
+CONSTANT: D3DQUERYTYPE_EVENT                  8
+CONSTANT: D3DQUERYTYPE_OCCLUSION              9
+CONSTANT: D3DQUERYTYPE_TIMESTAMP              10
+CONSTANT: D3DQUERYTYPE_TIMESTAMPDISJOINT      11
+CONSTANT: D3DQUERYTYPE_TIMESTAMPFREQ          12
+CONSTANT: D3DQUERYTYPE_PIPELINETIMINGS        13
+CONSTANT: D3DQUERYTYPE_INTERFACETIMINGS       14
+CONSTANT: D3DQUERYTYPE_VERTEXTIMINGS          15
+CONSTANT: D3DQUERYTYPE_PIXELTIMINGS           16
+CONSTANT: D3DQUERYTYPE_BANDWIDTHTIMINGS       17
+CONSTANT: D3DQUERYTYPE_CACHEUTILIZATION       18
+CONSTANT: D3DQUERYTYPE_MEMORYPRESSURE         19
+
+CONSTANT: D3DISSUE_END   1
+CONSTANT: D3DISSUE_BEGIN 2
+
+CONSTANT: D3DGETDATA_FLUSH 1
+
+STRUCT: D3DRESOURCESTATS
+    { bThrashing              BOOL  }
+    { ApproxBytesDownloaded   DWORD }
+    { NumEvicts               DWORD }
+    { NumVidCreates           DWORD }
+    { LastPri                 DWORD }
+    { NumUsed                 DWORD }
+    { NumUsedInVidMem         DWORD }
+    { WorkingSet              DWORD }
+    { WorkingSetBytes         DWORD }
+    { TotalManaged            DWORD }
+    { TotalBytes              DWORD } ;
+
+CONSTANT: D3DRTYPECOUNT 8
+
+STRUCT: D3DDEVINFO_RESOURCEMANAGER
+    { stats D3DRESOURCESTATS[8] } ;
+TYPEDEF: D3DDEVINFO_RESOURCEMANAGER* LPD3DDEVINFO_RESOURCEMANAGER
+
+STRUCT: D3DDEVINFO_D3DVERTEXSTATS
+    { NumRenderedTriangles        DWORD }
+    { NumExtraClippingTriangles   DWORD } ;
+TYPEDEF: D3DDEVINFO_D3DVERTEXSTATS* LPD3DDEVINFO_D3DVERTEXSTATS
+
+STRUCT: D3DDEVINFO_VCACHE
+    { Pattern       DWORD }
+    { OptMethod     DWORD }
+    { CacheSize     DWORD }
+    { MagicNumber   DWORD } ;
+TYPEDEF: D3DDEVINFO_VCACHE* LPD3DDEVINFO_VCACHE
+
+STRUCT: D3DDEVINFO_D3D9PIPELINETIMINGS
+    { VertexProcessingTimePercent   FLOAT }
+    { PixelProcessingTimePercent    FLOAT }
+    { OtherGPUProcessingTimePercent FLOAT }
+    { GPUIdleTimePercent            FLOAT } ;
+
+STRUCT: D3DDEVINFO_D3D9INTERFACETIMINGS
+    { WaitingForGPUToUseApplicationResourceTimePercent FLOAT }
+    { WaitingForGPUToAcceptMoreCommandsTimePercent     FLOAT }
+    { WaitingForGPUToStayWithinLatencyTimePercent      FLOAT }
+    { WaitingForGPUExclusiveResourceTimePercent        FLOAT }
+    { WaitingForGPUOtherTimePercent                    FLOAT } ;
+
+STRUCT: D3DDEVINFO_D3D9STAGETIMINGS
+    { MemoryProcessingPercent      FLOAT }
+    { ComputationProcessingPercent FLOAT } ;
+
+STRUCT: D3DDEVINFO_D3D9BANDWIDTHTIMINGS
+    { MaxBandwidthUtilized                FLOAT }
+    { FrontEndUploadMemoryUtilizedPercent FLOAT }
+    { VertexRateUtilizedPercent           FLOAT }
+    { TriangleSetupRateUtilizedPercent    FLOAT }
+    { FillRateUtilizedPercent             FLOAT } ;
+
+STRUCT: D3DDEVINFO_D3D9CACHEUTILIZATION
+    { TextureCacheHitRate             FLOAT }
+    { PostTransformVertexCacheHitRate FLOAT } ;
+
+STRUCT: D3DMEMORYPRESSURE
+    { BytesEvictedFromProcess      UINT64 }
+    { SizeOfInefficientAllocation  UINT64 }
+    { LevelOfEfficiency            DWORD  } ;
+
+TYPEDEF: int D3DCOMPOSERECTSOP
+CONSTANT: D3DCOMPOSERECTS_COPY     1
+CONSTANT: D3DCOMPOSERECTS_OR       2
+CONSTANT: D3DCOMPOSERECTS_AND      3
+CONSTANT: D3DCOMPOSERECTS_NEG      4
+CONSTANT: D3DCOMPOSERECTS_FORCE_DWORD    HEX: 7fffffff
+
+STRUCT: D3DCOMPOSERECTDESC
+    { X       USHORT }
+    { Y       USHORT }
+    { Width   USHORT }
+    { Height  USHORT } ;
+
+STRUCT: D3DCOMPOSERECTDESTINATION
+    { SrcRectIndex USHORT }
+    { Reserved     USHORT }
+    { X            SHORT  }
+    { Y            SHORT  } ;
+
+CONSTANT: D3DCOMPOSERECTS_MAXNUMRECTS HEX: FFFF
+CONSTANT: D3DCONVOLUTIONMONO_MAXWIDTH  7
+: D3DCONVOLUTIONMONO_MAXHEIGHT ( -- n ) D3DCONVOLUTIONMONO_MAXWIDTH ; inline
+CONSTANT: D3DFMT_A1_SURFACE_MAXWIDTH  8192
+CONSTANT: D3DFMT_A1_SURFACE_MAXHEIGHT 2048
+
+STRUCT: D3DPRESENTSTATS
+    { PresentCount        UINT          }
+    { PresentRefreshCount UINT          }
+    { SyncRefreshCount    UINT          }
+    { SyncQPCTime         LARGE_INTEGER }
+    { SyncGPUTime         LARGE_INTEGER } ;
+
+TYPEDEF: int D3DSCANLINEORDERING
+CONSTANT: D3DSCANLINEORDERING_UNKNOWN                    0
+CONSTANT: D3DSCANLINEORDERING_PROGRESSIVE                1
+CONSTANT: D3DSCANLINEORDERING_INTERLACED                 2
+
+STRUCT: D3DDISPLAYMODEEX
+    { Size                UINT                }
+    { Width               UINT                }
+    { Height              UINT                }
+    { RefreshRate         UINT                }
+    { Format              D3DFORMAT           }
+    { ScanLineOrdering    D3DSCANLINEORDERING } ;
+
+STRUCT: D3DDISPLAYMODEFILTER
+    { Size                 UINT                }
+    { Format               D3DFORMAT           }
+    { ScanLineOrdering     D3DSCANLINEORDERING } ;
+
+TYPEDEF: int D3DDISPLAYROTATION
+CONSTANT: D3DDISPLAYROTATION_IDENTITY 1
+CONSTANT: D3DDISPLAYROTATION_90       2
+CONSTANT: D3DDISPLAYROTATION_180      3
+CONSTANT: D3DDISPLAYROTATION_270      4  
+
+CONSTANT: D3D9_RESOURCE_PRIORITY_MINIMUM       HEX: 28000000
+CONSTANT: D3D9_RESOURCE_PRIORITY_LOW           HEX: 50000000
+CONSTANT: D3D9_RESOURCE_PRIORITY_NORMAL        HEX: 78000000
+CONSTANT: D3D9_RESOURCE_PRIORITY_HIGH          HEX: a0000000
+CONSTANT: D3D9_RESOURCE_PRIORITY_MAXIMUM       HEX: c8000000
+
+CONSTANT: D3D_OMAC_SIZE    16
+
+STRUCT: D3D_OMAC
+    { Omac BYTE[D3D_OMAC_SIZE] } ;
+
+TYPEDEF: int D3DAUTHENTICATEDCHANNELTYPE
+CONSTANT: D3DAUTHENTICATEDCHANNEL_D3D9            1
+CONSTANT: D3DAUTHENTICATEDCHANNEL_DRIVER_SOFTWARE 2
+CONSTANT: D3DAUTHENTICATEDCHANNEL_DRIVER_HARDWARE 3
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT
+    { QueryType        GUID   }
+    { hChannel         HANDLE }
+    { SequenceNumber   UINT   } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT
+    { omac                D3D_OMAC }
+    { QueryType           GUID     }
+    { hChannel            HANDLE   }
+    { SequenceNumber      UINT     }
+    { ReturnCode          HRESULT  } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS
+    { Value  UINT } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT
+    { Output          D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT     }
+    { ProtectionFlags D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT
+    { Output      D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
+    { ChannelType D3DAUTHENTICATEDCHANNELTYPE          } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT
+    { Output         D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
+    { DeviceHandle   HANDLE                               } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT
+    { Input               D3DAUTHENTICATEDCHANNEL_QUERY_INPUT }
+    { DXVA2DecodeHandle   HANDLE                              } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT
+    { Output                D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
+    { DXVA2DecodeHandle     HANDLE                               }
+    { CryptoSessionHandle   HANDLE                               }
+    { DeviceHandle          HANDLE                               } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT
+    { Output                                 D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
+    { NumRestrictedSharedResourceProcesses   UINT                                 } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT
+    { Input            D3DAUTHENTICATEDCHANNEL_QUERY_INPUT }
+    { ProcessIndex     UINT                                } ;
+
+TYPEDEF: int D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE
+CONSTANT: PROCESSIDTYPE_UNKNOWN  0
+CONSTANT: PROCESSIDTYPE_DWM      1
+CONSTANT: PROCESSIDTYPE_HANDLE   2
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT
+    { Output           D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT          }
+    { ProcessIndex     UINT                                          }
+    { ProcessIdentifer D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE }
+    { ProcessHandle    HANDLE                                        } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT
+    { Output                                    D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
+    { NumUnrestrictedProtectedSharedResources   UINT                                 } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT
+    { Input                D3DAUTHENTICATEDCHANNEL_QUERY_INPUT }
+    { DeviceHandle         HANDLE                              }
+    { CryptoSessionHandle  HANDLE                              } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT
+    { Output               D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
+    { DeviceHandle         HANDLE                               }
+    { CryptoSessionHandle  HANDLE                               }
+    { NumOutputIDs         UINT                                 } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT
+    { Input                D3DAUTHENTICATEDCHANNEL_QUERY_INPUT }
+    { DeviceHandle         HANDLE                              }
+    { CryptoSessionHandle  HANDLE                              }
+    { OutputIDIndex        UINT                                } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT
+    { Output               D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
+    { DeviceHandle         HANDLE                               }
+    { CryptoSessionHandle  HANDLE                               }
+    { OutputIDIndex        UINT                                 }
+    { OutputID             UINT64                               } ;
+
+TYPEDEF: int D3DBUSTYPE
+CONSTANT: D3DBUSTYPE_OTHER                                     HEX: 00000000
+CONSTANT: D3DBUSTYPE_PCI                                       HEX: 00000001
+CONSTANT: D3DBUSTYPE_PCIX                                      HEX: 00000002
+CONSTANT: D3DBUSTYPE_PCIEXPRESS                                HEX: 00000003
+CONSTANT: D3DBUSTYPE_AGP                                       HEX: 00000004
+CONSTANT: D3DBUSIMPL_MODIFIER_INSIDE_OF_CHIPSET                HEX: 00010000
+CONSTANT: D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP   HEX: 00020000
+CONSTANT: D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET HEX: 00030000
+CONSTANT: D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR         HEX: 00040000
+CONSTANT: D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE HEX: 00050000
+CONSTANT: D3DBUSIMPL_MODIFIER_NON_STANDARD                     HEX: 80000000
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT
+    { Output                           D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
+    { BusType                          D3DBUSTYPE                           }
+    { bAccessibleInContiguousBlocks    BOOL                                 }
+    { bAccessibleInNonContiguousBlocks BOOL                                 } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT
+    { Output               D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
+    { NumEncryptionGuids   UINT                                 } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT
+    { Input               D3DAUTHENTICATEDCHANNEL_QUERY_INPUT }
+    { EncryptionGuidIndex UINT                                } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT
+    { Output                    D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
+    { EncryptionGuidIndex       UINT                                 }
+    { EncryptionGuid            GUID                                 } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT
+    { Output               D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT }
+    { EncryptionGuid       GUID                                 } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT
+    { omac                          D3D_OMAC }
+    { ConfigureType                 GUID     }
+    { hChannel                      HANDLE   }
+    { SequenceNumber                UINT     } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT
+    { omac                          D3D_OMAC }
+    { ConfigureType                 GUID     }
+    { hChannel                      HANDLE   }
+    { SequenceNumber                UINT     }
+    { ReturnCode                    HRESULT  } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE
+    { Parameters               D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT }
+    { StartSequenceQuery       UINT                                    }
+    { StartSequenceConfigure   UINT                                    } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION
+    { Parameters   D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT  }
+    { Protections  D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION
+    { Parameters               D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT }
+    { DXVA2DecodeHandle        HANDLE                                  }
+    { CryptoSessionHandle      HANDLE                                  }
+    { DeviceHandle             HANDLE                                  } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE
+    { Parameters           D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT       }
+    { ProcessIdentiferType D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE }
+    { ProcessHandle        HANDLE                                        }
+    { AllowAccess          BOOL                                          } ;
+
+STRUCT: D3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION
+    { Parameters      D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT }
+    { EncryptionGuid  GUID                                    } ;
+
+STRUCT: D3DENCRYPTED_BLOCK_INFO
+    { NumEncryptedBytesAtBeginning UINT }
+    { NumBytesInSkipPattern        UINT }
+    { NumBytesInEncryptPattern     UINT } ;
+
+STRUCT: D3DAES_CTR_IV
+    { IV      UINT64 }
+    { Count   UINT64 } ;
diff --git a/basis/windows/directx/d3d9types/summary.txt b/basis/windows/directx/d3d9types/summary.txt
new file mode 100644 (file)
index 0000000..a5b7a8a
--- /dev/null
@@ -0,0 +1 @@
+DirectX 9 bindings. Corresponds to d3d9types.h.
diff --git a/basis/windows/directx/d3d9types/tags.txt b/basis/windows/directx/d3d9types/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dcommon/authors.txt b/basis/windows/directx/d3dcommon/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dcommon/d3dcommon.factor b/basis/windows/directx/d3dcommon/d3dcommon.factor
new file mode 100644 (file)
index 0000000..2e8b1ef
--- /dev/null
@@ -0,0 +1,18 @@
+USING: alien.c-types alien.syntax ;
+IN: windows.directx.d3dcommon
+
+CONSTANT: D3D_DRIVER_TYPE_UNKNOWN     0
+CONSTANT: D3D_DRIVER_TYPE_HARDWARE    1
+CONSTANT: D3D_DRIVER_TYPE_REFERENCE   2
+CONSTANT: D3D_DRIVER_TYPE_NULL        3
+CONSTANT: D3D_DRIVER_TYPE_SOFTWARE    4
+CONSTANT: D3D_DRIVER_TYPE_WARP        5
+TYPEDEF: int D3D_DRIVER_TYPE
+
+CONSTANT: D3D_FEATURE_LEVEL_9_1   HEX: 9100
+CONSTANT: D3D_FEATURE_LEVEL_9_2   HEX: 9200
+CONSTANT: D3D_FEATURE_LEVEL_9_3   HEX: 9300
+CONSTANT: D3D_FEATURE_LEVEL_10_0  HEX: a000
+CONSTANT: D3D_FEATURE_LEVEL_10_1  HEX: a100
+CONSTANT: D3D_FEATURE_LEVEL_11_0  HEX: b000
+TYPEDEF: int D3D_FEATURE_LEVEL
diff --git a/basis/windows/directx/d3dcommon/summary.txt b/basis/windows/directx/d3dcommon/summary.txt
new file mode 100644 (file)
index 0000000..0ab8cff
--- /dev/null
@@ -0,0 +1 @@
+Common constants. Corresponds to d3dcommon.h.
diff --git a/basis/windows/directx/d3dcommon/tags.txt b/basis/windows/directx/d3dcommon/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dcompiler/authors.txt b/basis/windows/directx/d3dcompiler/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dcompiler/d3dcompiler.factor b/basis/windows/directx/d3dcompiler/d3dcompiler.factor
new file mode 100644 (file)
index 0000000..90babe6
--- /dev/null
@@ -0,0 +1,89 @@
+USING: alien.c-types alien.syntax windows.ole32 windows.types ;
+IN: windows.directx.d3dcompiler
+
+LIBRARY: d3dcompiler
+
+C-TYPE: D3D_SHADER_MACRO
+C-TYPE: ID3DBlob
+TYPEDEF: ID3DBlob* LPD3DBLOB
+C-TYPE: ID3DInclude
+TYPEDEF: ID3DInclude* LPD3DINCLUDE
+C-TYPE: ID3D10Effect
+
+FUNCTION: HRESULT D3DCompile (
+    LPCVOID           pSrcData,
+    SIZE_T            SrcDataSize,
+    LPCSTR            pSourceName,
+    D3D_SHADER_MACRO* pDefines,
+    LPD3DINCLUDE      pInclude,
+    LPCSTR            pEntrypoint,
+    LPCSTR            pTarget,
+    UINT              Flags1,
+    UINT              Flags2,
+    LPD3DBLOB*        ppCode,
+    LPD3DBLOB*        ppErrorMsgs ) ;
+
+FUNCTION: HRESULT D3DPreprocess (
+    LPCVOID           pSrcData,
+    SIZE_T            SrcDataSize,
+    LPCSTR            pSourceName,
+    D3D_SHADER_MACRO* pDefines,
+    LPD3DINCLUDE      pInclude,
+    LPD3DBLOB*        ppCodeText,
+    LPD3DBLOB*        ppErrorMsgs ) ;
+
+FUNCTION: HRESULT D3DGetDebugInfo (
+    LPCVOID    pSrcData,
+    SIZE_T     SrcDataSize,
+    LPD3DBLOB* ppDebugInfo ) ;
+
+FUNCTION: HRESULT D3DReflect (
+    LPCVOID    pSrcData,
+    SIZE_T     SrcDataSize,
+    REFIID     pInterface,
+    void**     ppReflector ) ;
+
+CONSTANT: D3D_DISASM_ENABLE_COLOR_CODE            1
+CONSTANT: D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS  2
+CONSTANT: D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING 4
+CONSTANT: D3D_DISASM_ENABLE_INSTRUCTION_CYCLE     8
+
+FUNCTION: HRESULT D3DDisassemble (
+    LPCVOID    pSrcData,
+    SIZE_T     SrcDataSize,
+    UINT       Flags,
+    LPCSTR     szComments,
+    LPD3DBLOB* ppDisassembly ) ;
+
+FUNCTION: HRESULT D3DDisassemble10Effect (
+    ID3D10Effect* pEffect,      
+    UINT          Flags,
+    LPD3DBLOB*    ppDisassembly ) ;
+
+FUNCTION: HRESULT D3DGetInputSignatureBlob (
+    LPCVOID    pSrcData,
+    SIZE_T     SrcDataSize,
+    LPD3DBLOB* ppSignatureBlob ) ;
+
+FUNCTION: HRESULT D3DGetOutputSignatureBlob (
+    LPCVOID    pSrcData,
+    SIZE_T     SrcDataSize,
+    LPD3DBLOB* ppSignatureBlob ) ;
+
+FUNCTION: HRESULT D3DGetInputAndOutputSignatureBlob (
+    LPCVOID    pSrcData,
+    SIZE_T     SrcDataSize,
+    LPD3DBLOB* ppSignatureBlob ) ;
+
+CONSTANT: D3DCOMPILER_STRIP_REFLECTION_DATA 1
+CONSTANT: D3DCOMPILER_STRIP_DEBUG_INFO      2
+CONSTANT: D3DCOMPILER_STRIP_TEST_BLOBS      4
+CONSTANT: D3DCOMPILER_STRIP_FORCE_DWORD     HEX: 7fffffff
+TYPEDEF: int D3DCOMPILER_STRIP_FLAGS
+
+FUNCTION: HRESULT D3DStripShader (
+    LPCVOID    pShaderBytecode,
+    SIZE_T     BytecodeLength,
+    UINT       uStripFlags,
+    LPD3DBLOB* ppStrippedBlob ) ;
+
diff --git a/basis/windows/directx/d3dcompiler/summary.txt b/basis/windows/directx/d3dcompiler/summary.txt
new file mode 100644 (file)
index 0000000..4f61677
--- /dev/null
@@ -0,0 +1 @@
+Shader compiler bindings. Corresponds to d3dcompiler.h.
diff --git a/basis/windows/directx/d3dcompiler/tags.txt b/basis/windows/directx/d3dcompiler/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dcsx/authors.txt b/basis/windows/directx/d3dcsx/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dcsx/d3dcsx.factor b/basis/windows/directx/d3dcsx/d3dcsx.factor
new file mode 100644 (file)
index 0000000..c2d3af8
--- /dev/null
@@ -0,0 +1,82 @@
+USING: alien.c-types alien.syntax classes.struct windows.com windows.com.syntax
+windows.directx.d3d11 windows.types ;
+IN: windows.directx.d3dcsx
+
+LIBRARY: d3dcsx
+
+CONSTANT: D3DX11_SCAN_DATA_TYPE_FLOAT 1
+CONSTANT: D3DX11_SCAN_DATA_TYPE_INT   2
+CONSTANT: D3DX11_SCAN_DATA_TYPE_UINT  3
+TYPEDEF: int D3DX11_SCAN_DATA_TYPE
+
+CONSTANT: D3DX11_SCAN_OPCODE_ADD 1
+CONSTANT: D3DX11_SCAN_OPCODE_MIN 2
+CONSTANT: D3DX11_SCAN_OPCODE_MAX 3
+CONSTANT: D3DX11_SCAN_OPCODE_MUL 4
+CONSTANT: D3DX11_SCAN_OPCODE_AND 5
+CONSTANT: D3DX11_SCAN_OPCODE_OR  6
+CONSTANT: D3DX11_SCAN_OPCODE_XOR 7
+TYPEDEF: int D3DX11_SCAN_OPCODE
+
+CONSTANT: D3DX11_SCAN_DIRECTION_FORWARD  1
+CONSTANT: D3DX11_SCAN_DIRECTION_BACKWARD 2
+TYPEDEF: int D3DX11_SCAN_DIRECTION
+
+COM-INTERFACE: ID3DX11Scan IUnknown {5089b68f-e71d-4d38-be8e-f363b95a9405}
+    HRESULT SetScanDirection ( D3DX11_SCAN_DIRECTION Direction )
+    HRESULT Scan ( D3DX11_SCAN_DATA_TYPE ElementType, D3DX11_SCAN_OPCODE OpCode, UINT ElementScanSize, ID3D11UnorderedAccessView* pSrc, ID3D11UnorderedAccessView* pDst )
+    HRESULT Multiscan ( D3DX11_SCAN_DATA_TYPE ElementType, D3DX11_SCAN_OPCODE OpCode, UINT ElementScanSize, UINT ElementScanPitch, UINT ScanCount, ID3D11UnorderedAccessView* pSrc, ID3D11UnorderedAccessView* pDst ) ;
+
+FUNCTION: HRESULT D3DX11CreateScan ( ID3D11DeviceContext* pDeviceContext, UINT MaxElementScanSize, UINT MaxScanCount, ID3DX11Scan** ppScan ) ;
+
+COM-INTERFACE: ID3DX11SegmentedScan IUnknown {a915128c-d954-4c79-bfe1-64db923194d6}
+    HRESULT SetScanDirection ( D3DX11_SCAN_DIRECTION Direction )
+    HRESULT SegScan ( D3DX11_SCAN_DATA_TYPE ElementType, D3DX11_SCAN_OPCODE OpCode, UINT ElementScanSize, ID3D11UnorderedAccessView* pSrc, ID3D11UnorderedAccessView* pSrcElementFlags, ID3D11UnorderedAccessView* pDst ) ;
+
+FUNCTION: HRESULT D3DX11CreateSegmentedScan ( ID3D11DeviceContext* pDeviceContext, UINT MaxElementScanSize, ID3DX11SegmentedScan** ppScan ) ;
+
+CONSTANT: D3DX11_FFT_MAX_PRECOMPUTE_BUFFERS 4
+CONSTANT: D3DX11_FFT_MAX_TEMP_BUFFERS       4
+CONSTANT: D3DX11_FFT_MAX_DIMENSIONS         32
+
+COM-INTERFACE: ID3DX11FFT IUnknown {b3f7a938-4c93-4310-a675-b30d6de50553}
+    HRESULT SetForwardScale ( FLOAT ForwardScale )
+    FLOAT GetForwardScale ( )
+    HRESULT SetInverseScale ( FLOAT InverseScale )
+    FLOAT GetInverseScale ( )
+    HRESULT AttachBuffersAndPrecompute ( UINT NumTempBuffers, ID3D11UnorderedAccessView** ppTempBuffers, UINT NumPrecomputeBuffers, ID3D11UnorderedAccessView** ppPrecomputeBufferSizes )
+    HRESULT ForwardTransform ( ID3D11UnorderedAccessView* pInputBuffer, ID3D11UnorderedAccessView** ppOutputBuffer )
+    HRESULT InverseTransform ( ID3D11UnorderedAccessView* pInputBuffer, ID3D11UnorderedAccessView** ppOutputBuffer ) ;
+
+C-ENUM:
+    D3DX11_FFT_DATA_TYPE_REAL
+    D3DX11_FFT_DATA_TYPE_COMPLEX ;
+TYPEDEF: int D3DX11_FFT_DATA_TYPE
+
+CONSTANT: D3DX11_FFT_DIM_MASK_1D 1
+CONSTANT: D3DX11_FFT_DIM_MASK_2D 3
+CONSTANT: D3DX11_FFT_DIM_MASK_3D 7
+TYPEDEF: int D3DX11_FFT_DIM_MASK
+
+STRUCT: D3DX11_FFT_DESC
+    { NumDimensions  UINT                            }
+    { ElementLengths UINT[D3DX11_FFT_MAX_DIMENSIONS] }
+    { DimensionMask  UINT                            }
+    { Type           D3DX11_FFT_DATA_TYPE            } ;
+
+STRUCT: D3DX11_FFT_BUFFER_INFO
+    { NumTempBufferSize          UINT                                    }
+    { TempBufferFloatSizes       UINT[D3DX11_FFT_MAX_TEMP_BUFFERS]       }
+    { NumPrecomputeBufferSizes   UINT                                    }
+    { PrecomputeBufferFloatSizes UINT[D3DX11_FFT_MAX_PRECOMPUTE_BUFFERS] } ;
+
+CONSTANT: D3DX11_FFT_CREATE_FLAG_NO_PRECOMPUTE_BUFFERS 1
+TYPEDEF: int D3DX11_FFT_CREATE_FLAG
+
+FUNCTION: HRESULT D3DX11CreateFFT ( ID3D11DeviceContext* pDeviceContext, D3DX11_FFT_DESC* pDesc, UINT Flags, D3DX11_FFT_BUFFER_INFO* pBufferInfo, ID3DX11FFT** ppFFT ) ;
+FUNCTION: HRESULT D3DX11CreateFFT1DReal ( ID3D11DeviceContext* pDeviceContext, UINT X, UINT Flags, D3DX11_FFT_BUFFER_INFO* pBufferInfo, ID3DX11FFT** ppFFT ) ;
+FUNCTION: HRESULT D3DX11CreateFFT1DComplex ( ID3D11DeviceContext* pDeviceContext, UINT X, UINT Flags, D3DX11_FFT_BUFFER_INFO* pBufferInfo, ID3DX11FFT** ppFFT ) ;
+FUNCTION: HRESULT D3DX11CreateFFT2DReal ( ID3D11DeviceContext* pDeviceContext, UINT X, UINT Y, UINT Flags, D3DX11_FFT_BUFFER_INFO* pBufferInfo, ID3DX11FFT** ppFFT ) ;
+FUNCTION: HRESULT D3DX11CreateFFT2DComplex ( ID3D11DeviceContext* pDeviceContext, UINT X, UINT Y, UINT Flags, D3DX11_FFT_BUFFER_INFO* pBufferInfo, ID3DX11FFT** ppFFT ) ;
+FUNCTION: HRESULT D3DX11CreateFFT3DReal ( ID3D11DeviceContext* pDeviceContext, UINT X, UINT Y, UINT Z, UINT Flags, D3DX11_FFT_BUFFER_INFO* pBufferInfo, ID3DX11FFT** ppFFT ) ;
+FUNCTION: HRESULT D3DX11CreateFFT3DComplex ( ID3D11DeviceContext* pDeviceContext, UINT X, UINT Y, UINT Z, UINT Flags, D3DX11_FFT_BUFFER_INFO* pBufferInfo, ID3DX11FFT** ppFFT ) ;
diff --git a/basis/windows/directx/d3dcsx/summary.txt b/basis/windows/directx/d3dcsx/summary.txt
new file mode 100644 (file)
index 0000000..80da14c
--- /dev/null
@@ -0,0 +1 @@
+DirectCompute bindings. Corresponds to d3dcsx.h.
diff --git a/basis/windows/directx/d3dcsx/tags.txt b/basis/windows/directx/d3dcsx/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx10/authors.txt b/basis/windows/directx/d3dx10/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx10/d3dx10.factor b/basis/windows/directx/d3dx10/d3dx10.factor
new file mode 100644 (file)
index 0000000..3eda6f0
--- /dev/null
@@ -0,0 +1,12 @@
+USING: ;
+IN: windows.directx.d3dx10
+
+CONSTANT: D3DX10_ERR_CANNOT_MODIFY_INDEX_BUFFER HEX: 88760B54
+CONSTANT: D3DX10_ERR_INVALID_MESH               HEX: 88760B55
+CONSTANT: D3DX10_ERR_CANNOT_ATTR_SORT           HEX: 88760B56
+CONSTANT: D3DX10_ERR_SKINNING_NOT_SUPPORTED     HEX: 88760B57
+CONSTANT: D3DX10_ERR_TOO_MANY_INFLUENCES        HEX: 88760B58
+CONSTANT: D3DX10_ERR_INVALID_DATA               HEX: 88760B59
+CONSTANT: D3DX10_ERR_LOADED_MESH_HAS_NO_DATA    HEX: 88760B5A
+CONSTANT: D3DX10_ERR_DUPLICATE_NAMED_FRAGMENT   HEX: 88760B5B
+CONSTANT: D3DX10_ERR_CANNOT_REMOVE_LAST_ITEM    HEX: 88760B5C
diff --git a/basis/windows/directx/d3dx10/summary.txt b/basis/windows/directx/d3dx10/summary.txt
new file mode 100644 (file)
index 0000000..b80eea3
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 10 bindings. Corresponds to d3dx10.h.
diff --git a/basis/windows/directx/d3dx10/tags.txt b/basis/windows/directx/d3dx10/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx10async/authors.txt b/basis/windows/directx/d3dx10async/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx10async/d3dx10async.factor b/basis/windows/directx/d3dx10async/d3dx10async.factor
new file mode 100644 (file)
index 0000000..e216530
--- /dev/null
@@ -0,0 +1,121 @@
+USING: alien.syntax windows.directx.d3d10 windows.directx.d3d10shader
+windows.types ;
+IN: windows.directx.d3dx10async
+
+LIBRARY: d3dx10
+
+C-TYPE: ID3DX10ThreadPump
+C-TYPE: ID3D10EffectPool
+C-TYPE: D3DX10_IMAGE_LOAD_INFO
+C-TYPE: D3DX10_IMAGE_INFO
+
+FUNCTION: HRESULT D3DX10CompileFromFileA ( LPCSTR pSrcFile, D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
+        LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX10ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX10CompileFromFileW ( LPCWSTR pSrcFile, D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
+        LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX10ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+ALIAS: D3DX10CompileFromFile D3DX10CompileFromFileW
+
+FUNCTION: HRESULT D3DX10CompileFromResourceA ( HMODULE hSrcModule, LPCSTR pSrcResource, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, 
+    LPD3D10INCLUDE pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX10ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX10CompileFromResourceW ( HMODULE hSrcModule, LPCWSTR pSrcResource, LPCWSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, 
+    LPD3D10INCLUDE pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX10ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+ALIAS: D3DX10CompileFromResource D3DX10CompileFromResourceW
+
+FUNCTION: HRESULT D3DX10CompileFromMemory ( LPCSTR pSrcData, SIZE_T SrcDataLen, LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude, 
+    LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX10ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX10CreateEffectFromFileA ( LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, 
+    ID3D10Include* pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device* pDevice, 
+    ID3D10EffectPool* pEffectPool, ID3DX10ThreadPump* pPump, ID3D10Effect** ppEffect, ID3D10Blob** ppErrors, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX10CreateEffectFromFileW ( LPCWSTR pFileName, D3D10_SHADER_MACRO* pDefines, 
+    ID3D10Include* pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device* pDevice, 
+    ID3D10EffectPool* pEffectPool, ID3DX10ThreadPump* pPump, ID3D10Effect** ppEffect, ID3D10Blob** ppErrors, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX10CreateEffectFromMemory ( LPCVOID pData, SIZE_T DataLength, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, 
+    ID3D10Include* pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device* pDevice, 
+    ID3D10EffectPool* pEffectPool, ID3DX10ThreadPump* pPump, ID3D10Effect** ppEffect, ID3D10Blob** ppErrors, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX10CreateEffectFromResourceA ( HMODULE hModule, LPCSTR pResourceName, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, 
+    ID3D10Include* pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device* pDevice, 
+    ID3D10EffectPool* pEffectPool, ID3DX10ThreadPump* pPump, ID3D10Effect** ppEffect, ID3D10Blob** ppErrors, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX10CreateEffectFromResourceW ( HMODULE hModule, LPCWSTR pResourceName, LPCWSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, 
+    ID3D10Include* pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device* pDevice, 
+    ID3D10EffectPool* pEffectPool, ID3DX10ThreadPump* pPump, ID3D10Effect** ppEffect, ID3D10Blob** ppErrors, HRESULT* pHResult ) ;
+
+ALIAS: D3DX10CreateEffectFromFile          D3DX10CreateEffectFromFileW
+ALIAS: D3DX10CreateEffectFromResource      D3DX10CreateEffectFromResourceW
+
+FUNCTION: HRESULT D3DX10CreateEffectPoolFromFileA ( LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, 
+    ID3D10Include* pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device* pDevice, ID3DX10ThreadPump* pPump, 
+    ID3D10EffectPool** ppEffectPool, ID3D10Blob** ppErrors, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX10CreateEffectPoolFromFileW ( LPCWSTR pFileName, D3D10_SHADER_MACRO* pDefines, 
+    ID3D10Include* pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device* pDevice, ID3DX10ThreadPump* pPump, 
+    ID3D10EffectPool** ppEffectPool, ID3D10Blob** ppErrors, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX10CreateEffectPoolFromMemory ( LPCVOID pData, SIZE_T DataLength, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, 
+    ID3D10Include* pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device* pDevice,
+    ID3DX10ThreadPump* pPump, ID3D10EffectPool** ppEffectPool, ID3D10Blob** ppErrors, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX10CreateEffectPoolFromResourceA ( HMODULE hModule, LPCSTR pResourceName, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, 
+    ID3D10Include* pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device* pDevice,
+    ID3DX10ThreadPump* pPump, ID3D10EffectPool** ppEffectPool, ID3D10Blob** ppErrors, HRESULT* pHResult ) ;
+                                         
+FUNCTION: HRESULT D3DX10CreateEffectPoolFromResourceW ( HMODULE hModule, LPCWSTR pResourceName, LPCWSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, 
+    ID3D10Include* pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device* pDevice,
+    ID3DX10ThreadPump* pPump, ID3D10EffectPool** ppEffectPool, ID3D10Blob** ppErrors, HRESULT* pHResult ) ;
+
+ALIAS: D3DX10CreateEffectPoolFromFile      D3DX10CreateEffectPoolFromFileW
+ALIAS: D3DX10CreateEffectPoolFromResource  D3DX10CreateEffectPoolFromResourceW
+
+FUNCTION: HRESULT D3DX10PreprocessShaderFromFileA ( LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, 
+    LPD3D10INCLUDE pInclude, ID3DX10ThreadPump* pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX10PreprocessShaderFromFileW ( LPCWSTR pFileName, D3D10_SHADER_MACRO* pDefines, 
+    LPD3D10INCLUDE pInclude, ID3DX10ThreadPump* pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX10PreprocessShaderFromMemory ( LPCSTR pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, 
+    LPD3D10INCLUDE pInclude, ID3DX10ThreadPump* pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX10PreprocessShaderFromResourceA ( HMODULE hModule, LPCSTR pResourceName, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, 
+    LPD3D10INCLUDE pInclude, ID3DX10ThreadPump* pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX10PreprocessShaderFromResourceW ( HMODULE hModule, LPCWSTR pResourceName, LPCWSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, 
+    LPD3D10INCLUDE pInclude, ID3DX10ThreadPump* pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+ALIAS: D3DX10PreprocessShaderFromFile      D3DX10PreprocessShaderFromFileW
+ALIAS: D3DX10PreprocessShaderFromResource  D3DX10PreprocessShaderFromResourceW
+
+FUNCTION: HRESULT D3DX10CreateAsyncCompilerProcessor ( LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude, 
+        LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2,
+        ID3D10Blob** ppCompiledShader, ID3D10Blob** ppErrorBuffer, ID3DX10DataProcessor** ppProcessor ) ;
+
+FUNCTION: HRESULT D3DX10CreateAsyncEffectCreateProcessor ( LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude, 
+        LPCSTR pProfile, UINT Flags, UINT FXFlags, ID3D10Device* pDevice,
+        ID3D10EffectPool* pPool, ID3D10Blob** ppErrorBuffer, ID3DX10DataProcessor** ppProcessor ) ;
+
+FUNCTION: HRESULT D3DX10CreateAsyncEffectPoolCreateProcessor ( LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude, 
+        LPCSTR pProfile, UINT Flags, UINT FXFlags, ID3D10Device* pDevice,
+        ID3D10Blob** ppErrorBuffer, ID3DX10DataProcessor** ppProcessor ) ;
+
+FUNCTION: HRESULT D3DX10CreateAsyncShaderPreprocessProcessor ( LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude, 
+        ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorBuffer, ID3DX10DataProcessor** ppProcessor ) ;
+
+FUNCTION: HRESULT D3DX10CreateAsyncFileLoaderW ( LPCWSTR pFileName, ID3DX10DataLoader** ppDataLoader ) ;
+FUNCTION: HRESULT D3DX10CreateAsyncFileLoaderA ( LPCSTR pFileName, ID3DX10DataLoader** ppDataLoader ) ;
+FUNCTION: HRESULT D3DX10CreateAsyncMemoryLoader ( LPCVOID pData, SIZE_T cbData, ID3DX10DataLoader** ppDataLoader ) ;
+FUNCTION: HRESULT D3DX10CreateAsyncResourceLoaderW ( HMODULE hSrcModule, LPCWSTR pSrcResource, ID3DX10DataLoader** ppDataLoader ) ;
+FUNCTION: HRESULT D3DX10CreateAsyncResourceLoaderA ( HMODULE hSrcModule, LPCSTR pSrcResource, ID3DX10DataLoader** ppDataLoader ) ;
+
+ALIAS: D3DX10CreateAsyncFileLoader D3DX10CreateAsyncFileLoaderW
+ALIAS: D3DX10CreateAsyncResourceLoader D3DX10CreateAsyncResourceLoaderW
+
+FUNCTION: HRESULT D3DX10CreateAsyncTextureProcessor ( ID3D10Device* pDevice, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10DataProcessor** ppDataProcessor ) ;
+FUNCTION: HRESULT D3DX10CreateAsyncTextureInfoProcessor ( D3DX10_IMAGE_INFO* pImageInfo, ID3DX10DataProcessor** ppDataProcessor ) ;
+FUNCTION: HRESULT D3DX10CreateAsyncShaderResourceViewProcessor ( ID3D10Device* pDevice, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10DataProcessor** ppDataProcessor ) ;
diff --git a/basis/windows/directx/d3dx10async/summary.txt b/basis/windows/directx/d3dx10async/summary.txt
new file mode 100644 (file)
index 0000000..5fc96bc
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 10 bindings. Corresponds to d3dx10async.h.
diff --git a/basis/windows/directx/d3dx10async/tags.txt b/basis/windows/directx/d3dx10async/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx10core/authors.txt b/basis/windows/directx/d3dx10core/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx10core/d3dx10core.factor b/basis/windows/directx/d3dx10core/d3dx10core.factor
new file mode 100644 (file)
index 0000000..38271b5
--- /dev/null
@@ -0,0 +1,186 @@
+USING: alien.c-types alien.syntax classes.struct windows.com
+windows.com.syntax windows.directx.d3d10
+windows.directx.d3d10misc windows.directx.d3dx10math
+windows.directx.dxgi windows.gdi32 windows.types ;
+IN: windows.directx.d3dx10core
+
+LIBRARY: d3dx10
+
+CONSTANT: D3DX10_SDK_VERSION 42
+
+FUNCTION: HRESULT D3DX10CreateDevice (
+    IDXGIAdapter*     pAdapter,
+    D3D10_DRIVER_TYPE DriverType,
+    HMODULE           Software,
+    UINT              Flags,
+    ID3D10Device**    ppDevice ) ;
+
+FUNCTION: HRESULT D3DX10CreateDeviceAndSwapChain (
+    IDXGIAdapter*         pAdapter,
+    D3D10_DRIVER_TYPE     DriverType,
+    HMODULE               Software,
+    UINT                  Flags,
+    DXGI_SWAP_CHAIN_DESC* pSwapChainDesc,
+    IDXGISwapChain**      ppSwapChain,
+    ID3D10Device**        ppDevice ) ;
+
+C-TYPE: ID3D10Device1
+
+FUNCTION: HRESULT D3DX10GetFeatureLevel1 ( ID3D10Device* pDevice, ID3D10Device1** ppDevice1 ) ;
+
+FUNCTION: HRESULT D3DX10CheckVersion ( UINT D3DSdkVersion, UINT D3DX10SdkVersion ) ;
+
+CONSTANT: D3DX10_SPRITE_SORT_TEXTURE              HEX: 01
+CONSTANT: D3DX10_SPRITE_SORT_DEPTH_BACK_TO_FRONT  HEX: 02
+CONSTANT: D3DX10_SPRITE_SORT_DEPTH_FRONT_TO_BACK  HEX: 04
+CONSTANT: D3DX10_SPRITE_SAVE_STATE                HEX: 08
+CONSTANT: D3DX10_SPRITE_ADDREF_TEXTURES           HEX: 10
+TYPEDEF: int D3DX10_SPRITE_FLAG
+
+STRUCT: D3DX10_SPRITE
+    { matWorld            D3DXMATRIX                }
+    { TexCoord            D3DXVECTOR2               }
+    { TexSize             D3DXVECTOR2               }
+    { ColorModulate       D3DXCOLOR                 }
+    { pTexture            ID3D10ShaderResourceView* }
+    { TextureIndex        UINT                      } ;
+
+C-TYPE: ID3DX10Sprite
+TYPEDEF: ID3DX10Sprite* LPD3DX10SPRITE
+
+COM-INTERFACE: ID3DX10Sprite IUnknown {BA0B762D-8D28-43ec-B9DC-2F84443B0614}
+    HRESULT Begin ( UINT flags )
+    HRESULT DrawSpritesBuffered ( D3DX10_SPRITE* pSprites, UINT cSprites )
+    HRESULT Flush ( )
+    HRESULT DrawSpritesImmediate ( D3DX10_SPRITE* pSprites, UINT cSprites, UINT cbSprite, UINT flags )
+    HRESULT End ( )
+    HRESULT GetViewTransform ( D3DXMATRIX* pViewTransform )
+    HRESULT SetViewTransform ( D3DXMATRIX* pViewTransform )
+    HRESULT GetProjectionTransform ( D3DXMATRIX* pProjectionTransform )
+    HRESULT SetProjectionTransform ( D3DXMATRIX* pProjectionTransform )
+    HRESULT GetDevice ( ID3D10Device** ppDevice ) ;
+
+FUNCTION: HRESULT
+    D3DX10CreateSprite (
+        ID3D10Device*         pDevice,
+        UINT                  cDeviceBufferSize,
+        LPD3DX10SPRITE*       ppSprite ) ;
+
+COM-INTERFACE: ID3DX10DataLoader f {00000000-0000-0000-0000-000000000000}
+    HRESULT Load ( )
+    HRESULT Decompress ( void** ppData, SIZE_T* pcBytes )
+    HRESULT Destroy ( ) ;
+
+COM-INTERFACE: ID3DX10DataProcessor f {00000000-0000-0000-0000-000000000000}
+    HRESULT Process ( void* pData, SIZE_T cBytes )
+    HRESULT CreateDeviceObject ( void** ppDataObject )
+    HRESULT Destroy ( ) ;
+
+COM-INTERFACE: ID3DX10ThreadPump IUnknown {C93FECFA-6967-478a-ABBC-402D90621FCB}
+    HRESULT AddWorkItem ( ID3DX10DataLoader* pDataLoader, ID3DX10DataProcessor* pDataProcessor, HRESULT* pHResult, void** ppDeviceObject )
+    UINT GetWorkItemCount ( )
+    HRESULT WaitForAllItems ( )
+    HRESULT ProcessDeviceWorkItems ( UINT iWorkItemCount )
+    HRESULT PurgeAllItems ( )
+    HRESULT GetQueueStatus ( UINT* pIoQueue, UINT* pProcessQueue, UINT* pDeviceQueue ) ;
+
+FUNCTION: HRESULT D3DX10CreateThreadPump ( UINT cIoThreads, UINT cProcThreads, ID3DX10ThreadPump** ppThreadPump ) ;
+
+STRUCT: D3DX10_FONT_DESCA
+    { Height          INT               }
+    { Width           UINT              }
+    { Weight          UINT              }
+    { MipLevels       UINT              }
+    { Italic          BOOL              }
+    { CharSet         BYTE              }
+    { OutputPrecision BYTE              }
+    { Quality         BYTE              }
+    { PitchAndFamily  BYTE              }
+    { FaceName        CHAR[LF_FACESIZE] } ;
+TYPEDEF: D3DX10_FONT_DESCA* LPD3DX10_FONT_DESCA
+
+STRUCT: D3DX10_FONT_DESCW
+    { Height INT }
+    { Width UINT }
+    { Weight UINT }
+    { MipLevels UINT }
+    { Italic BOOL }
+    { CharSet BYTE }
+    { OutputPrecision BYTE }
+    { Quality BYTE }
+    { PitchAndFamily BYTE }
+    { FaceName WCHAR[LF_FACESIZE] } ;
+TYPEDEF: D3DX10_FONT_DESCW* LPD3DX10_FONT_DESCW
+
+TYPEDEF: D3DX10_FONT_DESCW D3DX10_FONT_DESC
+TYPEDEF: LPD3DX10_FONT_DESCW LPD3DX10_FONT_DESC
+
+C-TYPE: TEXTMETRICA
+C-TYPE: TEXTMETRICW
+
+COM-INTERFACE: ID3DX10Font IUnknown {D79DBB70-5F21-4d36-BBC2-FF525C213CDC}
+    HRESULT GetDevice ( ID3D10Device** ppDevice )
+    HRESULT GetDescA ( D3DX10_FONT_DESCA* pDesc )
+    HRESULT GetDescW ( D3DX10_FONT_DESCW* pDesc )
+    BOOL GetTextMetricsA ( TEXTMETRICA* pTextMetrics )
+    BOOL GetTextMetricsW ( TEXTMETRICW* pTextMetrics )
+    HDC GetDC ( )
+    HRESULT GetGlyphData ( UINT Glyph, ID3D10ShaderResourceView** ppTexture, RECT* pBlackBox, POINT* pCellInc )
+    HRESULT PreloadCharacters ( UINT First, UINT Last )
+    HRESULT PreloadGlyphs ( UINT First, UINT Last )
+    HRESULT PreloadTextA ( LPCSTR pString, INT Count )
+    HRESULT PreloadTextW ( LPCWSTR pString, INT Count )
+    INT DrawTextA ( LPD3DX10SPRITE pSprite, LPCSTR pString, INT Count, LPRECT pRect, UINT Format, D3DXCOLOR Color )
+    INT DrawTextW ( LPD3DX10SPRITE pSprite, LPCWSTR pString, INT Count, LPRECT pRect, UINT Format, D3DXCOLOR Color ) ;
+TYPEDEF: ID3DX10Font* LPD3DX10FONT
+
+FUNCTION: HRESULT
+    D3DX10CreateFontA (
+        ID3D10Device*           pDevice,
+        INT                     Height,
+        UINT                    Width,
+        UINT                    Weight,
+        UINT                    MipLevels,
+        BOOL                    Italic,
+        UINT                    CharSet,
+        UINT                    OutputPrecision,
+        UINT                    Quality,
+        UINT                    PitchAndFamily,
+        LPCSTR                  pFaceName,
+        LPD3DX10FONT*           ppFont ) ;
+
+FUNCTION: HRESULT
+    D3DX10CreateFontW (
+        ID3D10Device*           pDevice,
+        INT                     Height,
+        UINT                    Width,
+        UINT                    Weight,
+        UINT                    MipLevels,
+        BOOL                    Italic,
+        UINT                    CharSet,
+        UINT                    OutputPrecision,
+        UINT                    Quality,
+        UINT                    PitchAndFamily,
+        LPCWSTR                 pFaceName,
+        LPD3DX10FONT*           ppFont ) ;
+
+ALIAS: D3DX10CreateFont D3DX10CreateFontW
+
+FUNCTION: HRESULT
+    D3DX10CreateFontIndirectA (
+        ID3D10Device*             pDevice,
+        D3DX10_FONT_DESCA*        pDesc,
+        LPD3DX10FONT*             ppFont ) ;
+
+FUNCTION: HRESULT
+    D3DX10CreateFontIndirectW (
+        ID3D10Device*             pDevice,
+        D3DX10_FONT_DESCW*        pDesc,
+        LPD3DX10FONT*             ppFont ) ;
+
+ALIAS: D3DX10CreateFontIndirect D3DX10CreateFontIndirectW
+
+FUNCTION: HRESULT D3DX10UnsetAllDeviceObjects ( ID3D10Device* pDevice ) ;
+
+CONSTANT: D3DERR_INVALIDCALL     HEX: 8876086C
+CONSTANT: D3DERR_WASSTILLDRAWING HEX: 8876021C
diff --git a/basis/windows/directx/d3dx10core/summary.txt b/basis/windows/directx/d3dx10core/summary.txt
new file mode 100644 (file)
index 0000000..848433b
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 10 bindings. Corresponds to d3dx10core.h.
diff --git a/basis/windows/directx/d3dx10core/tags.txt b/basis/windows/directx/d3dx10core/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx10math/authors.txt b/basis/windows/directx/d3dx10math/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx10math/d3dx10math.factor b/basis/windows/directx/d3dx10math/d3dx10math.factor
new file mode 100644 (file)
index 0000000..9a244d9
--- /dev/null
@@ -0,0 +1,60 @@
+USING: alien.syntax classes.struct windows.types ;
+IN: windows.directx.d3dx10math
+
+STRUCT: D3DVECTOR
+    { x FLOAT }
+    { y FLOAT }
+    { z FLOAT } ;
+
+STRUCT: D3DMATRIX
+    { m FLOAT[4][4] } ;
+
+STRUCT: D3DXFLOAT16
+    { value WORD } ;
+
+TYPEDEF: D3DMATRIX D3DXMATRIX
+
+STRUCT: D3DXVECTOR2
+    { x FLOAT }
+    { y FLOAT } ;
+
+STRUCT: D3DXVECTOR2_16F
+    { x D3DXFLOAT16 }
+    { y D3DXFLOAT16 } ;
+
+TYPEDEF: D3DVECTOR D3DXVECTOR3
+
+STRUCT: D3DXVECTOR3_16F
+    { x D3DXFLOAT16 }
+    { y D3DXFLOAT16 }
+    { z D3DXFLOAT16 } ;
+
+STRUCT: D3DXVECTOR4
+    { x FLOAT }
+    { y FLOAT }
+    { z FLOAT }
+    { w FLOAT } ;
+
+STRUCT: D3DXVECTOR4_16F
+    { x D3DXFLOAT16 }
+    { y D3DXFLOAT16 }
+    { z D3DXFLOAT16 }
+    { w D3DXFLOAT16 } ;
+
+STRUCT: D3DXQUATERNION
+    { x FLOAT }
+    { y FLOAT }
+    { z FLOAT }
+    { w FLOAT } ;
+
+STRUCT: D3DXPLANE
+    { a FLOAT }
+    { b FLOAT }
+    { c FLOAT }
+    { d FLOAT } ;
+
+STRUCT: D3DXCOLOR
+    { r FLOAT }
+    { g FLOAT }
+    { b FLOAT }
+    { a FLOAT } ;
diff --git a/basis/windows/directx/d3dx10math/summary.txt b/basis/windows/directx/d3dx10math/summary.txt
new file mode 100644 (file)
index 0000000..e19a4c0
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 10 bindings. Corresponds to d3dx10math.h.
diff --git a/basis/windows/directx/d3dx10math/tags.txt b/basis/windows/directx/d3dx10math/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx10mesh/authors.txt b/basis/windows/directx/d3dx10mesh/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx10mesh/d3dx10mesh.factor b/basis/windows/directx/d3dx10mesh/d3dx10mesh.factor
new file mode 100644 (file)
index 0000000..13066dc
--- /dev/null
@@ -0,0 +1,149 @@
+USING: alien.c-types alien.syntax classes.struct windows.com
+windows.com.syntax windows.directx.d3d10
+windows.directx.d3d10misc windows.types ;
+IN: windows.directx.d3dx10mesh
+
+LIBRARY: d3dx10
+
+CONSTANT: D3DX10_MESH_32_BIT       1
+CONSTANT: D3DX10_MESH_GS_ADJACENCY 4
+
+TYPEDEF: int D3DX10_MESH
+
+STRUCT: D3DX10_ATTRIBUTE_RANGE
+    { AttribId     UINT }
+    { FaceStart    UINT }
+    { FaceCount    UINT }
+    { VertexStart  UINT }
+    { VertexCount  UINT } ;
+
+TYPEDEF: D3DX10_ATTRIBUTE_RANGE* LPD3DX10_ATTRIBUTE_RANGE
+
+CONSTANT: D3DX10_MESH_DISCARD_ATTRIBUTE_BUFFER HEX: 01
+CONSTANT: D3DX10_MESH_DISCARD_ATTRIBUTE_TABLE  HEX: 02
+CONSTANT: D3DX10_MESH_DISCARD_POINTREPS        HEX: 04
+CONSTANT: D3DX10_MESH_DISCARD_ADJACENCY        HEX: 08
+CONSTANT: D3DX10_MESH_DISCARD_DEVICE_BUFFERS   HEX: 10
+TYPEDEF: int D3DX10_MESH_DISCARD_FLAGS
+
+STRUCT: D3DX10_WELD_EPSILONS
+    { Position     FLOAT    }
+    { BlendWeights FLOAT    }
+    { Normal       FLOAT    }
+    { PSize        FLOAT    }
+    { Specular     FLOAT    }
+    { Diffuse      FLOAT    }
+    { Texcoord     FLOAT[8] }
+    { Tangent      FLOAT    }
+    { Binormal     FLOAT    }
+    { TessFactor   FLOAT    } ;
+
+TYPEDEF: D3DX10_WELD_EPSILONS* LPD3DX10_WELD_EPSILONS
+
+STRUCT: D3DX10_INTERSECT_INFO
+    { FaceIndex  UINT  }
+    { U          FLOAT }
+    { V          FLOAT }
+    { Dist       FLOAT } ;
+TYPEDEF: D3DX10_INTERSECT_INFO* LPD3DX10_INTERSECT_INFO
+
+COM-INTERFACE: ID3DX10MeshBuffer IUnknown {04B0D117-1041-46b1-AA8A-3952848BA22E}
+    HRESULT Map ( void** ppData, SIZE_T* pSize )
+    HRESULT Unmap ( )
+    SIZE_T GetSize ( ) ;
+
+COM-INTERFACE: ID3DX10Mesh IUnknown {4020E5C2-1403-4929-883F-E2E849FAC195}
+    UINT GetFaceCount ( )
+    UINT GetVertexCount ( )
+    UINT GetVertexBufferCount ( )
+    UINT GetFlags ( )
+    HRESULT GetVertexDescription ( D3D10_INPUT_ELEMENT_DESC** ppDesc, UINT* pDeclCount )
+    HRESULT SetVertexData ( UINT iBuffer, void* pData )
+    HRESULT GetVertexBuffer ( UINT iBuffer, ID3DX10MeshBuffer** ppVertexBuffer )
+    HRESULT SetIndexData ( void* pData, UINT cIndices )
+    HRESULT GetIndexBuffer ( ID3DX10MeshBuffer** ppIndexBuffer )
+    HRESULT SetAttributeData ( UINT* pData )
+    HRESULT GetAttributeBuffer ( ID3DX10MeshBuffer** ppAttributeBuffer )
+    HRESULT SetAttributeTable ( D3DX10_ATTRIBUTE_RANGE* pAttribTable, UINT cAttribTableSize )
+    HRESULT GetAttributeTable ( D3DX10_ATTRIBUTE_RANGE* pAttribTable, UINT* pAttribTableSize )
+    HRESULT GenerateAdjacencyAndPointReps ( FLOAT Epsilon )
+    HRESULT GenerateGSAdjacency ( )
+    HRESULT SetAdjacencyData ( UINT* pAdjacency )
+    HRESULT GetAdjacencyBuffer ( ID3DX10MeshBuffer** ppAdjacency )
+    HRESULT SetPointRepData ( UINT* pPointReps )
+    HRESULT GetPointRepBuffer ( ID3DX10MeshBuffer** ppPointReps )
+    HRESULT Discard ( D3DX10_MESH_DISCARD_FLAGS dwDiscard )
+    HRESULT CloneMesh ( UINT Flags, LPCSTR pPosSemantic, D3D10_INPUT_ELEMENT_DESC* pDesc, UINT DeclCount, ID3DX10Mesh** ppCloneMesh )
+    HRESULT Optimize ( UINT Flags, UINT* pFaceRemap, LPD3D10BLOB* ppVertexRemap )
+    HRESULT GenerateAttributeBufferFromTable ( )
+    HRESULT Intersect ( D3DXVECTOR3* pRayPos, D3DXVECTOR3* pRayDir,
+                                        UINT* pHitCount, UINT* pFaceIndex, float* pU, float* pV, float* pDist, ID3D10Blob** ppAllHits )
+    HRESULT IntersectSubset ( UINT AttribId, D3DXVECTOR3* pRayPos, D3DXVECTOR3* pRayDir,
+                                        UINT* pHitCount, UINT* pFaceIndex, float* pU, float* pV, float* pDist, ID3D10Blob** ppAllHits )
+    HRESULT CommitToDevice ( )
+    HRESULT DrawSubset ( UINT AttribId )
+    HRESULT DrawSubsetInstanced ( UINT AttribId, UINT InstanceCount, UINT StartInstanceLocation )
+    HRESULT GetDeviceVertexBuffer ( UINT iBuffer, ID3D10Buffer** ppVertexBuffer )
+    HRESULT GetDeviceIndexBuffer ( ID3D10Buffer** ppIndexBuffer ) ;
+
+FUNCTION: HRESULT
+    D3DX10CreateMesh (
+        ID3D10Device*             pDevice,
+        D3D10_INPUT_ELEMENT_DESC* pDeclaration,
+        UINT                      DeclCount,
+        LPCSTR                    pPositionSemantic,
+        UINT                      VertexCount,
+        UINT                      FaceCount,
+        UINT                      Options,
+        ID3DX10Mesh**             ppMesh        ) ;
+
+CONSTANT: D3DX10_MESHOPT_COMPACT            HEX: 01000000
+CONSTANT: D3DX10_MESHOPT_ATTR_SORT          HEX: 02000000
+CONSTANT: D3DX10_MESHOPT_VERTEX_CACHE       HEX: 04000000
+CONSTANT: D3DX10_MESHOPT_STRIP_REORDER      HEX: 08000000
+CONSTANT: D3DX10_MESHOPT_IGNORE_VERTS       HEX: 10000000
+CONSTANT: D3DX10_MESHOPT_DO_NOT_SPLIT       HEX: 20000000
+CONSTANT: D3DX10_MESHOPT_DEVICE_INDEPENDENT HEX: 00400000
+
+CONSTANT: D3DX10_SKININFO_NO_SCALING     0
+CONSTANT: D3DX10_SKININFO_SCALE_TO_1     1
+CONSTANT: D3DX10_SKININFO_SCALE_TO_TOTAL 2
+
+STRUCT: D3DX10_SKINNING_CHANNEL
+    { SrcOffset             UINT }
+    { DestOffset            UINT }
+    { IsNormal              BOOL } ;
+
+COM-INTERFACE: ID3DX10SkinInfo IUnknown {420BD604-1C76-4a34-A466-E45D0658A32C}
+    UINT GetNumVertices ( )
+    UINT GetNumBones ( )
+    UINT GetMaxBoneInfluences ( )
+    HRESULT AddVertices ( UINT  Count )
+    HRESULT RemapVertices ( UINT NewVertexCount, UINT* pVertexRemap )
+    HRESULT AddBones ( UINT Count )
+    HRESULT RemoveBone ( UINT Index )
+    HRESULT RemapBones ( UINT NewBoneCount, UINT* pBoneRemap )
+    HRESULT AddBoneInfluences ( UINT BoneIndex, UINT InfluenceCount, UINT* pIndices, float* pWeights )
+    HRESULT ClearBoneInfluences ( UINT BoneIndex )
+    UINT GetBoneInfluenceCount ( UINT BoneIndex )
+    HRESULT GetBoneInfluences ( UINT BoneIndex, UINT Offset, UINT Count, UINT* pDestIndices, float* pDestWeights )
+    HRESULT FindBoneInfluenceIndex ( UINT BoneIndex, UINT VertexIndex, UINT* pInfluenceIndex )
+    HRESULT SetBoneInfluence ( UINT BoneIndex, UINT InfluenceIndex, float Weight )
+    HRESULT GetBoneInfluence ( UINT BoneIndex, UINT InfluenceIndex, float* pWeight )
+    HRESULT Compact ( UINT MaxPerVertexInfluences, UINT ScaleMode, float MinWeight )
+    HRESULT DoSoftwareSkinning ( UINT StartVertex, UINT VertexCount, void* pSrcVertices, UINT SrcStride, void* pDestVertices, UINT DestStride, D3DXMATRIX* pBoneMatrices, D3DXMATRIX* pInverseTransposeBoneMatrices, D3DX10_SKINNING_CHANNEL* pChannelDescs, UINT NumChannels ) ;
+
+TYPEDEF: ID3DX10SkinInfo* LPD3DX10SKININFO
+
+FUNCTION: HRESULT
+    D3DX10CreateSkinInfo ( LPD3DX10SKININFO* ppSkinInfo ) ;
+
+STRUCT: D3DX10_ATTRIBUTE_WEIGHTS
+    { Position FLOAT    }
+    { Boundary FLOAT    }
+    { Normal   FLOAT    }
+    { Diffuse  FLOAT    }
+    { Specular FLOAT    }
+    { Texcoord FLOAT[8] }
+    { Tangent  FLOAT    }
+    { Binormal FLOAT    } ;
diff --git a/basis/windows/directx/d3dx10mesh/summary.txt b/basis/windows/directx/d3dx10mesh/summary.txt
new file mode 100644 (file)
index 0000000..b294d39
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 10 bindings. Corresponds to d3dx10mesh.h.
diff --git a/basis/windows/directx/d3dx10mesh/tags.txt b/basis/windows/directx/d3dx10mesh/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx10tex/authors.txt b/basis/windows/directx/d3dx10tex/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx10tex/d3dx10tex.factor b/basis/windows/directx/d3dx10tex/d3dx10tex.factor
new file mode 100644 (file)
index 0000000..c4e3712
--- /dev/null
@@ -0,0 +1,286 @@
+USING: alien.c-types alien.syntax classes.struct
+windows.directx.d3d10 windows.directx.d3d10misc
+windows.directx.d3dx10async windows.directx.dxgiformat
+windows.types ;
+IN: windows.directx.d3dx10tex
+
+LIBRARY: d3dx10
+
+CONSTANT: D3DX10_FILTER_NONE             HEX: 00000001
+CONSTANT: D3DX10_FILTER_POINT            HEX: 00000002
+CONSTANT: D3DX10_FILTER_LINEAR           HEX: 00000003
+CONSTANT: D3DX10_FILTER_TRIANGLE         HEX: 00000004
+CONSTANT: D3DX10_FILTER_BOX              HEX: 00000005
+
+CONSTANT: D3DX10_FILTER_MIRROR_U         HEX: 00010000
+CONSTANT: D3DX10_FILTER_MIRROR_V         HEX: 00020000
+CONSTANT: D3DX10_FILTER_MIRROR_W         HEX: 00040000
+CONSTANT: D3DX10_FILTER_MIRROR           HEX: 00070000
+
+CONSTANT: D3DX10_FILTER_DITHER           HEX: 00080000
+CONSTANT: D3DX10_FILTER_DITHER_DIFFUSION HEX: 00100000
+
+CONSTANT: D3DX10_FILTER_SRGB_IN          HEX: 00200000
+CONSTANT: D3DX10_FILTER_SRGB_OUT         HEX: 00400000
+CONSTANT: D3DX10_FILTER_SRGB             HEX: 00600000
+TYPEDEF: int D3DX10_FILTER_FLAG
+
+CONSTANT: D3DX10_NORMALMAP_MIRROR_U          HEX: 00010000
+CONSTANT: D3DX10_NORMALMAP_MIRROR_V          HEX: 00020000
+CONSTANT: D3DX10_NORMALMAP_MIRROR            HEX: 00030000
+CONSTANT: D3DX10_NORMALMAP_INVERTSIGN        HEX: 00080000
+CONSTANT: D3DX10_NORMALMAP_COMPUTE_OCCLUSION HEX: 00100000
+TYPEDEF: int D3DX10_NORMALMAP_FLAG
+
+CONSTANT: D3DX10_CHANNEL_RED        1
+CONSTANT: D3DX10_CHANNEL_BLUE       2
+CONSTANT: D3DX10_CHANNEL_GREEN      4
+CONSTANT: D3DX10_CHANNEL_ALPHA      8
+CONSTANT: D3DX10_CHANNEL_LUMINANCE  16
+TYPEDEF: int D3DX10_CHANNEL_FLAG
+
+CONSTANT: D3DX10_IFF_BMP          0
+CONSTANT: D3DX10_IFF_JPG          1
+CONSTANT: D3DX10_IFF_PNG          3
+CONSTANT: D3DX10_IFF_DDS          4
+CONSTANT: D3DX10_IFF_TIFF         10
+CONSTANT: D3DX10_IFF_GIF          11
+CONSTANT: D3DX10_IFF_WMP          12
+CONSTANT: D3DX10_IFF_FORCE_DWORD  HEX: 7fffffff
+TYPEDEF: int D3DX10_IMAGE_FILE_FORMAT
+
+CONSTANT: D3DX10_STF_USEINPUTBLOB 1
+TYPEDEF: int D3DX10_SAVE_TEXTURE_FLAG
+
+STRUCT: D3DX10_IMAGE_INFO
+    { Width             UINT                     }
+    { Height            UINT                     }
+    { Depth             UINT                     }
+    { ArraySize         UINT                     }
+    { MipLevels         UINT                     }
+    { MiscFlags         UINT                     }
+    { Format            DXGI_FORMAT              }
+    { ResourceDimension D3D10_RESOURCE_DIMENSION }
+    { ImageFileFormat   D3DX10_IMAGE_FILE_FORMAT } ;
+
+STRUCT: D3DX10_IMAGE_LOAD_INFO
+    { Width          UINT               }
+    { Height         UINT               }
+    { Depth          UINT               }
+    { FirstMipLevel  UINT               }
+    { MipLevels      UINT               }
+    { Usage          D3D10_USAGE        }
+    { BindFlags      UINT               }
+    { CpuAccessFlags UINT               }
+    { MiscFlags      UINT               }
+    { Format         DXGI_FORMAT        }
+    { Filter         UINT               }
+    { MipFilter      UINT               }
+    { pSrcInfo       D3DX10_IMAGE_INFO* } ;
+
+FUNCTION: HRESULT
+    D3DX10GetImageInfoFromFileA (
+        LPCSTR                    pSrcFile,
+        ID3DX10ThreadPump*        pPump,
+        D3DX10_IMAGE_INFO*        pSrcInfo,
+        HRESULT*                  pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX10GetImageInfoFromFileW (
+        LPCWSTR                   pSrcFile,
+        ID3DX10ThreadPump*        pPump,
+        D3DX10_IMAGE_INFO*        pSrcInfo,
+        HRESULT*                  pHResult ) ;
+
+ALIAS: D3DX10GetImageInfoFromFile D3DX10GetImageInfoFromFileW
+
+FUNCTION: HRESULT
+    D3DX10GetImageInfoFromResourceA (
+        HMODULE                   hSrcModule,
+        LPCSTR                    pSrcResource,
+        ID3DX10ThreadPump*        pPump,
+        D3DX10_IMAGE_INFO*        pSrcInfo,
+        HRESULT*                  pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX10GetImageInfoFromResourceW (
+        HMODULE                   hSrcModule,
+        LPCWSTR                   pSrcResource,
+        ID3DX10ThreadPump*        pPump,
+        D3DX10_IMAGE_INFO*        pSrcInfo,
+        HRESULT*                  pHResult ) ;
+
+ALIAS: D3DX10GetImageInfoFromResource D3DX10GetImageInfoFromResourceW
+
+FUNCTION: HRESULT
+    D3DX10GetImageInfoFromMemory (
+        LPCVOID                   pSrcData,
+        SIZE_T                    SrcDataSize,
+        ID3DX10ThreadPump*        pPump,
+        D3DX10_IMAGE_INFO*        pSrcInfo,
+        HRESULT*                  pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX10CreateShaderResourceViewFromFileA (
+        ID3D10Device*               pDevice,
+        LPCSTR                      pSrcFile,
+        D3DX10_IMAGE_LOAD_INFO*     pLoadInfo,
+        ID3DX10ThreadPump*          pPump,
+        ID3D10ShaderResourceView**  ppShaderResourceView,
+        HRESULT*                    pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX10CreateShaderResourceViewFromFileW (
+        ID3D10Device*               pDevice,
+        LPCWSTR                     pSrcFile,
+        D3DX10_IMAGE_LOAD_INFO*     pLoadInfo,
+        ID3DX10ThreadPump*          pPump,
+        ID3D10ShaderResourceView**  ppShaderResourceView,
+        HRESULT*                    pHResult ) ;
+
+ALIAS: D3DX10CreateShaderResourceViewFromFile D3DX10CreateShaderResourceViewFromFileW
+
+FUNCTION: HRESULT
+    D3DX10CreateTextureFromFileA (
+        ID3D10Device*               pDevice,
+        LPCSTR                      pSrcFile,
+        D3DX10_IMAGE_LOAD_INFO*     pLoadInfo,
+        ID3DX10ThreadPump*          pPump,
+        ID3D10Resource**            ppTexture,
+        HRESULT*                    pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX10CreateTextureFromFileW (
+        ID3D10Device*               pDevice,
+        LPCWSTR                     pSrcFile,
+        D3DX10_IMAGE_LOAD_INFO*     pLoadInfo,
+        ID3DX10ThreadPump*          pPump,
+        ID3D10Resource**            ppTexture,
+        HRESULT*                    pHResult ) ;
+
+ALIAS: D3DX10CreateTextureFromFile D3DX10CreateTextureFromFileW
+
+FUNCTION: HRESULT
+    D3DX10CreateShaderResourceViewFromResourceA (
+        ID3D10Device*              pDevice,
+        HMODULE                    hSrcModule,
+        LPCSTR                     pSrcResource,
+        D3DX10_IMAGE_LOAD_INFO*    pLoadInfo,
+        ID3DX10ThreadPump*         pPump,
+        ID3D10ShaderResourceView** ppShaderResourceView,
+        HRESULT*                   pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX10CreateShaderResourceViewFromResourceW (
+        ID3D10Device*              pDevice,
+        HMODULE                    hSrcModule,
+        LPCWSTR                    pSrcResource,
+        D3DX10_IMAGE_LOAD_INFO*    pLoadInfo,
+        ID3DX10ThreadPump*         pPump,
+        ID3D10ShaderResourceView** ppShaderResourceView,
+        HRESULT*                   pHResult ) ;
+
+ALIAS: D3DX10CreateShaderResourceViewFromResource D3DX10CreateShaderResourceViewFromResourceW
+
+FUNCTION: HRESULT
+    D3DX10CreateTextureFromResourceA (
+        ID3D10Device*            pDevice,
+        HMODULE                  hSrcModule,
+        LPCSTR                   pSrcResource,
+        D3DX10_IMAGE_LOAD_INFO*  pLoadInfo,
+        ID3DX10ThreadPump*       pPump,
+        ID3D10Resource**         ppTexture,
+        HRESULT*                 pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX10CreateTextureFromResourceW (
+        ID3D10Device*           pDevice,
+        HMODULE                 hSrcModule,
+        LPCWSTR                 pSrcResource,
+        D3DX10_IMAGE_LOAD_INFO* pLoadInfo,
+        ID3DX10ThreadPump*      pPump,
+        ID3D10Resource**        ppTexture,
+        HRESULT*                pHResult ) ;
+
+ALIAS: D3DX10CreateTextureFromResource D3DX10CreateTextureFromResourceW
+
+FUNCTION: HRESULT
+    D3DX10CreateShaderResourceViewFromMemory (
+        ID3D10Device*              pDevice,
+        LPCVOID                    pSrcData,
+        SIZE_T                     SrcDataSize,
+        D3DX10_IMAGE_LOAD_INFO*    pLoadInfo,
+        ID3DX10ThreadPump*         pPump,
+        ID3D10ShaderResourceView** ppShaderResourceView,
+        HRESULT*                   pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX10CreateTextureFromMemory (
+        ID3D10Device*             pDevice,
+        LPCVOID                   pSrcData,
+        SIZE_T                    SrcDataSize,
+        D3DX10_IMAGE_LOAD_INFO*   pLoadInfo,
+        ID3DX10ThreadPump*        pPump,
+        ID3D10Resource**          ppTexture,
+        HRESULT*                  pHResult ) ;
+
+STRUCT: D3DX10_TEXTURE_LOAD_INFO
+    { pSrcBox                    D3D10_BOX* }
+    { pDstBox                    D3D10_BOX* }
+    { SrcFirstMip                UINT       }
+    { DstFirstMip                UINT       }
+    { NumMips                    UINT       }
+    { SrcFirstElement            UINT       }
+    { DstFirstElement            UINT       }
+    { NumElements                UINT       }
+    { Filter                     UINT       }
+    { MipFilter                  UINT       } ;
+
+FUNCTION: HRESULT
+    D3DX10LoadTextureFromTexture (
+        ID3D10Resource*            pSrcTexture,
+        D3DX10_TEXTURE_LOAD_INFO*  pLoadInfo,
+        ID3D10Resource*            pDstTexture ) ;
+
+FUNCTION: HRESULT
+    D3DX10FilterTexture (
+        ID3D10Resource*           pTexture,
+        UINT                      SrcLevel,
+        UINT                      MipFilter ) ;
+
+FUNCTION: HRESULT
+    D3DX10SaveTextureToFileA (
+        ID3D10Resource*           pSrcTexture,
+        D3DX10_IMAGE_FILE_FORMAT  DestFormat,
+        LPCSTR                    pDestFile ) ;
+
+FUNCTION: HRESULT
+    D3DX10SaveTextureToFileW (
+        ID3D10Resource*           pSrcTexture,
+        D3DX10_IMAGE_FILE_FORMAT  DestFormat,
+        LPCWSTR                   pDestFile ) ;
+
+ALIAS: D3DX10SaveTextureToFile D3DX10SaveTextureToFileW
+
+FUNCTION: HRESULT
+    D3DX10SaveTextureToMemory (
+        ID3D10Resource*            pSrcTexture,
+        D3DX10_IMAGE_FILE_FORMAT   DestFormat,
+        LPD3D10BLOB*               ppDestBuf,
+        UINT                       Flags ) ;
+
+FUNCTION: HRESULT
+    D3DX10ComputeNormalMap (
+        ID3D10Texture2D* pSrcTexture,
+        UINT             Flags,
+        UINT             Channel,
+        FLOAT            Amplitude,
+        ID3D10Texture2D* pDestTexture ) ;
+
+FUNCTION: HRESULT
+    D3DX10SHProjectCubeMap (
+        UINT             Order,
+        ID3D10Texture2D* pCubeMap,
+        FLOAT*           pROut,
+        FLOAT*           pGOut,
+        FLOAT*           pBOut ) ;
diff --git a/basis/windows/directx/d3dx10tex/summary.txt b/basis/windows/directx/d3dx10tex/summary.txt
new file mode 100644 (file)
index 0000000..25ff94b
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 10 bindings. Corresponds to d3dx10tex.h.
diff --git a/basis/windows/directx/d3dx10tex/tags.txt b/basis/windows/directx/d3dx10tex/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx11/authors.txt b/basis/windows/directx/d3dx11/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx11/d3dx11.factor b/basis/windows/directx/d3dx11/d3dx11.factor
new file mode 100644 (file)
index 0000000..63b1733
--- /dev/null
@@ -0,0 +1,12 @@
+USING: ;
+IN: windows.directx.d3dx11
+
+CONSTANT: D3DX11_ERR_CANNOT_MODIFY_INDEX_BUFFER HEX: 88760B54
+CONSTANT: D3DX11_ERR_INVALID_MESH               HEX: 88760B55
+CONSTANT: D3DX11_ERR_CANNOT_ATTR_SORT           HEX: 88760B56
+CONSTANT: D3DX11_ERR_SKINNING_NOT_SUPPORTED     HEX: 88760B57
+CONSTANT: D3DX11_ERR_TOO_MANY_INFLUENCES        HEX: 88760B58
+CONSTANT: D3DX11_ERR_INVALID_DATA               HEX: 88760B59
+CONSTANT: D3DX11_ERR_LOADED_MESH_HAS_NO_DATA    HEX: 88760B5A
+CONSTANT: D3DX11_ERR_DUPLICATE_NAMED_FRAGMENT   HEX: 88760B5B
+CONSTANT: D3DX11_ERR_CANNOT_REMOVE_LAST_ITEM    HEX: 88760B5C
diff --git a/basis/windows/directx/d3dx11/summary.txt b/basis/windows/directx/d3dx11/summary.txt
new file mode 100644 (file)
index 0000000..58dfe46
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 11 bindings. Corresponds to d3dx11.h.
diff --git a/basis/windows/directx/d3dx11/tags.txt b/basis/windows/directx/d3dx11/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx11async/authors.txt b/basis/windows/directx/d3dx11async/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx11async/d3dx11async.factor b/basis/windows/directx/d3dx11async/d3dx11async.factor
new file mode 100644 (file)
index 0000000..369ffd6
--- /dev/null
@@ -0,0 +1,59 @@
+USING: alien.syntax alien.c-types classes.struct windows.types
+windows.directx.d3d10shader windows.directx.d3dx11core
+windows.directx.d3d11 windows.directx.d3dx11tex ;
+IN: windows.directx.d3dx11async
+
+LIBRARY: d3dx11
+
+FUNCTION: HRESULT D3DX11CompileFromFileA ( LPCSTR pSrcFile, D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
+        LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+FUNCTION: HRESULT D3DX11CompileFromFileW ( LPCWSTR pSrcFile, D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
+        LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+ALIAS: D3DX11CompileFromFile D3DX11CompileFromFileW
+
+FUNCTION: HRESULT D3DX11CompileFromResourceA ( HMODULE hSrcModule, LPCSTR pSrcResource, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, 
+    LPD3D10INCLUDE pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+FUNCTION: HRESULT D3DX11CompileFromResourceW ( HMODULE hSrcModule, LPCWSTR pSrcResource, LPCWSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, 
+    LPD3D10INCLUDE pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+ALIAS: D3DX11CompileFromResource D3DX11CompileFromResourceW
+
+FUNCTION: HRESULT D3DX11CompileFromMemory ( LPCSTR pSrcData, SIZE_T SrcDataLen, LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude, 
+    LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX11PreprocessShaderFromFileA ( LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, 
+    LPD3D10INCLUDE pInclude, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX11PreprocessShaderFromFileW ( LPCWSTR pFileName, D3D10_SHADER_MACRO* pDefines, 
+    LPD3D10INCLUDE pInclude, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX11PreprocessShaderFromMemory ( LPCSTR pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, 
+    LPD3D10INCLUDE pInclude, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX11PreprocessShaderFromResourceA ( HMODULE hModule, LPCSTR pResourceName, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, 
+    LPD3D10INCLUDE pInclude, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+FUNCTION: HRESULT D3DX11PreprocessShaderFromResourceW ( HMODULE hModule, LPCWSTR pResourceName, LPCWSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, 
+    LPD3D10INCLUDE pInclude, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult ) ;
+
+ALIAS: D3DX11PreprocessShaderFromFile      D3DX11PreprocessShaderFromFileW
+ALIAS: D3DX11PreprocessShaderFromResource  D3DX11PreprocessShaderFromResourceW
+
+FUNCTION: HRESULT D3DX11CreateAsyncCompilerProcessor ( LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude, 
+        LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2,
+        ID3D10Blob** ppCompiledShader, ID3D10Blob** ppErrorBuffer, ID3DX11DataProcessor** ppProcessor ) ;
+
+FUNCTION: HRESULT D3DX11CreateAsyncShaderPreprocessProcessor ( LPCSTR pFileName, D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude, 
+        ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorBuffer, ID3DX11DataProcessor** ppProcessor ) ;
+
+FUNCTION: HRESULT D3DX11CreateAsyncFileLoaderW ( LPCWSTR pFileName, ID3DX11DataLoader** ppDataLoader ) ;
+FUNCTION: HRESULT D3DX11CreateAsyncFileLoaderA ( LPCSTR pFileName, ID3DX11DataLoader** ppDataLoader ) ;
+FUNCTION: HRESULT D3DX11CreateAsyncMemoryLoader ( LPCVOID pData, SIZE_T cbData, ID3DX11DataLoader** ppDataLoader ) ;
+FUNCTION: HRESULT D3DX11CreateAsyncResourceLoaderW ( HMODULE hSrcModule, LPCWSTR pSrcResource, ID3DX11DataLoader** ppDataLoader ) ;
+FUNCTION: HRESULT D3DX11CreateAsyncResourceLoaderA ( HMODULE hSrcModule, LPCSTR pSrcResource, ID3DX11DataLoader** ppDataLoader ) ;
+
+ALIAS: D3DX11CreateAsyncFileLoader D3DX11CreateAsyncFileLoaderW
+ALIAS: D3DX11CreateAsyncResourceLoader D3DX11CreateAsyncResourceLoaderW
+
+FUNCTION: HRESULT D3DX11CreateAsyncTextureProcessor ( ID3D11Device* pDevice, D3DX11_IMAGE_LOAD_INFO* pLoadInfo, ID3DX11DataProcessor** ppDataProcessor ) ;
+FUNCTION: HRESULT D3DX11CreateAsyncTextureInfoProcessor ( D3DX11_IMAGE_INFO* pImageInfo, ID3DX11DataProcessor** ppDataProcessor ) ;
+FUNCTION: HRESULT D3DX11CreateAsyncShaderResourceViewProcessor ( ID3D11Device* pDevice, D3DX11_IMAGE_LOAD_INFO* pLoadInfo, ID3DX11DataProcessor** ppDataProcessor ) ;
diff --git a/basis/windows/directx/d3dx11async/summary.txt b/basis/windows/directx/d3dx11async/summary.txt
new file mode 100644 (file)
index 0000000..e80d034
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 11 bindings. Corresponds to d3dx11async.h.
diff --git a/basis/windows/directx/d3dx11async/tags.txt b/basis/windows/directx/d3dx11async/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx11core/authors.txt b/basis/windows/directx/d3dx11core/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx11core/d3dx11core.factor b/basis/windows/directx/d3dx11core/d3dx11core.factor
new file mode 100644 (file)
index 0000000..fc8ce1a
--- /dev/null
@@ -0,0 +1,31 @@
+USING: alien.syntax windows.types windows.com.syntax alien.c-types windows.com
+windows.directx.d3d11 ;
+IN: windows.directx.d3dx11core
+
+LIBRARY: d3dx11
+
+FUNCTION: HRESULT D3DX11CheckVersion ( UINT D3DSdkVersion, UINT D3DX11SdkVersion ) ;
+
+COM-INTERFACE: ID3DX11DataLoader f {00000000-0000-0000-0000-000000000000}
+    HRESULT Load ( )
+    HRESULT Decompress ( void** ppData, SIZE_T* pcBytes )
+    HRESULT Destroy ( ) ;
+
+COM-INTERFACE: ID3DX11DataProcessor f {00000000-0000-0000-0000-000000000000}
+    HRESULT Process ( void* pData, SIZE_T cBytes )
+    HRESULT CreateDeviceObject ( void** ppDataObject )
+    HRESULT Destroy ( ) ;
+
+COM-INTERFACE: ID3DX11ThreadPump IUnknown {C93FECFA-6967-478a-ABBC-402D90621FCB}
+    HRESULT AddWorkItem ( ID3DX11DataLoader* pDataLoader, ID3DX11DataProcessor* pDataProcessor, HRESULT* pHResult, void** ppDeviceObject )
+    UINT GetWorkItemCount ( )
+    HRESULT WaitForAllItems ( )
+    HRESULT ProcessDeviceWorkItems ( UINT iWorkItemCount )
+    HRESULT PurgeAllItems ( )
+    HRESULT GetQueueStatus ( UINT* pIoQueue, UINT* pProcessQueue, UINT* pDeviceQueue ) ;
+
+FUNCTION: HRESULT D3DX11CreateThreadPump ( UINT cIoThreads, UINT cProcThreads, ID3DX11ThreadPump** ppThreadPump ) ;
+FUNCTION: HRESULT D3DX11UnsetAllDeviceObjects ( ID3D11DeviceContext* pContext ) ;
+
+CONSTANT: D3DERR_INVALIDCALL     HEX: 8876086C
+CONSTANT: D3DERR_WASSTILLDRAWING HEX: 8876021C
diff --git a/basis/windows/directx/d3dx11core/summary.txt b/basis/windows/directx/d3dx11core/summary.txt
new file mode 100644 (file)
index 0000000..83ab3f1
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 11 bindings. Corresponds to d3dx11core.h.
diff --git a/basis/windows/directx/d3dx11core/tags.txt b/basis/windows/directx/d3dx11core/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx11tex/authors.txt b/basis/windows/directx/d3dx11tex/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx11tex/d3dx11tex.factor b/basis/windows/directx/d3dx11tex/d3dx11tex.factor
new file mode 100644 (file)
index 0000000..d21fa0c
--- /dev/null
@@ -0,0 +1,293 @@
+USING: alien.syntax alien.c-types classes.struct windows.types
+windows.directx.dxgiformat windows.directx.d3d11
+windows.directx.d3dx11core ;
+IN: windows.directx.d3dx11tex
+
+LIBRARY: d3dx11
+
+CONSTANT: D3DX11_FILTER_NONE             HEX: 00000001
+CONSTANT: D3DX11_FILTER_POINT            HEX: 00000002
+CONSTANT: D3DX11_FILTER_LINEAR           HEX: 00000003
+CONSTANT: D3DX11_FILTER_TRIANGLE         HEX: 00000004
+CONSTANT: D3DX11_FILTER_BOX              HEX: 00000005
+
+CONSTANT: D3DX11_FILTER_MIRROR_U         HEX: 00010000
+CONSTANT: D3DX11_FILTER_MIRROR_V         HEX: 00020000
+CONSTANT: D3DX11_FILTER_MIRROR_W         HEX: 00040000
+CONSTANT: D3DX11_FILTER_MIRROR           HEX: 00070000
+
+CONSTANT: D3DX11_FILTER_DITHER           HEX: 00080000
+CONSTANT: D3DX11_FILTER_DITHER_DIFFUSION HEX: 00100000
+
+CONSTANT: D3DX11_FILTER_SRGB_IN          HEX: 00200000
+CONSTANT: D3DX11_FILTER_SRGB_OUT         HEX: 00400000
+CONSTANT: D3DX11_FILTER_SRGB             HEX: 00600000
+TYPEDEF: int D3DX11_FILTER_FLAG
+
+CONSTANT: D3DX11_NORMALMAP_MIRROR_U          HEX: 00010000
+CONSTANT: D3DX11_NORMALMAP_MIRROR_V          HEX: 00020000
+CONSTANT: D3DX11_NORMALMAP_MIRROR            HEX: 00030000
+CONSTANT: D3DX11_NORMALMAP_INVERTSIGN        HEX: 00080000
+CONSTANT: D3DX11_NORMALMAP_COMPUTE_OCCLUSION HEX: 00100000
+TYPEDEF: int D3DX11_NORMALMAP_FLAG
+
+CONSTANT: D3DX11_CHANNEL_RED        1
+CONSTANT: D3DX11_CHANNEL_BLUE       2
+CONSTANT: D3DX11_CHANNEL_GREEN      4
+CONSTANT: D3DX11_CHANNEL_ALPHA      8
+CONSTANT: D3DX11_CHANNEL_LUMINANCE  16
+TYPEDEF: int D3DX11_CHANNEL_FLAG
+
+CONSTANT: D3DX11_IFF_BMP          0
+CONSTANT: D3DX11_IFF_JPG          1
+CONSTANT: D3DX11_IFF_PNG          3
+CONSTANT: D3DX11_IFF_DDS          4
+CONSTANT: D3DX11_IFF_TIFF         10
+CONSTANT: D3DX11_IFF_GIF          11
+CONSTANT: D3DX11_IFF_WMP          12
+CONSTANT: D3DX11_IFF_FORCE_DWORD  HEX: 7fffffff
+TYPEDEF: int D3DX11_IMAGE_FILE_FORMAT
+
+CONSTANT: D3DX11_STF_USEINPUTBLOB 1
+TYPEDEF: int D3DX11_SAVE_TEXTURE_FLAG
+
+STRUCT: D3DX11_IMAGE_INFO
+    { Width             UINT                     }
+    { Height            UINT                     }
+    { Depth             UINT                     }
+    { ArraySize         UINT                     }
+    { MipLevels         UINT                     }
+    { MiscFlags         UINT                     }
+    { Format            DXGI_FORMAT              }
+    { ResourceDimension D3D11_RESOURCE_DIMENSION }
+    { ImageFileFormat   D3DX11_IMAGE_FILE_FORMAT } ;
+
+STRUCT: D3DX11_IMAGE_LOAD_INFO
+    { Width          UINT               }
+    { Height         UINT               }
+    { Depth          UINT               }
+    { FirstMipLevel  UINT               }
+    { MipLevels      UINT               }
+    { Usage          D3D11_USAGE        }
+    { BindFlags      UINT               }
+    { CpuAccessFlags UINT               }
+    { MiscFlags      UINT               }
+    { Format         DXGI_FORMAT        }
+    { Filter         UINT               }
+    { MipFilter      UINT               }
+    { pSrcInfo       D3DX11_IMAGE_INFO* } ;
+
+FUNCTION: HRESULT
+    D3DX11GetImageInfoFromFileA (
+        LPCSTR                    pSrcFile,
+        ID3DX11ThreadPump*        pPump,
+        D3DX11_IMAGE_INFO*        pSrcInfo,
+        HRESULT*                  pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX11GetImageInfoFromFileW (
+        LPCWSTR                   pSrcFile,
+        ID3DX11ThreadPump*        pPump,
+        D3DX11_IMAGE_INFO*        pSrcInfo,
+        HRESULT*                  pHResult ) ;
+
+ALIAS: D3DX11GetImageInfoFromFile D3DX11GetImageInfoFromFileW
+
+FUNCTION: HRESULT
+    D3DX11GetImageInfoFromResourceA (
+        HMODULE                   hSrcModule,
+        LPCSTR                    pSrcResource,
+        ID3DX11ThreadPump*        pPump,
+        D3DX11_IMAGE_INFO*        pSrcInfo,
+        HRESULT*                  pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX11GetImageInfoFromResourceW (
+        HMODULE                   hSrcModule,
+        LPCWSTR                   pSrcResource,
+        ID3DX11ThreadPump*        pPump,
+        D3DX11_IMAGE_INFO*        pSrcInfo,
+        HRESULT*                  pHResult ) ;
+
+ALIAS: D3DX11GetImageInfoFromResource D3DX11GetImageInfoFromResourceW
+
+FUNCTION: HRESULT
+    D3DX11GetImageInfoFromMemory (
+        LPCVOID                   pSrcData,
+        SIZE_T                    SrcDataSize,
+        ID3DX11ThreadPump*        pPump,
+        D3DX11_IMAGE_INFO*        pSrcInfo,
+        HRESULT*                  pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX11CreateShaderResourceViewFromFileA (
+        ID3D11Device*               pDevice,
+        LPCSTR                      pSrcFile,
+        D3DX11_IMAGE_LOAD_INFO*     pLoadInfo,
+        ID3DX11ThreadPump*          pPump,
+        ID3D11ShaderResourceView**  ppShaderResourceView,
+        HRESULT*                    pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX11CreateShaderResourceViewFromFileW (
+        ID3D11Device*               pDevice,
+        LPCWSTR                     pSrcFile,
+        D3DX11_IMAGE_LOAD_INFO*     pLoadInfo,
+        ID3DX11ThreadPump*          pPump,
+        ID3D11ShaderResourceView**  ppShaderResourceView,
+        HRESULT*                    pHResult ) ;
+
+ALIAS: D3DX11CreateShaderResourceViewFromFile D3DX11CreateShaderResourceViewFromFileW
+
+FUNCTION: HRESULT
+    D3DX11CreateTextureFromFileA (
+        ID3D11Device*               pDevice,
+        LPCSTR                      pSrcFile,
+        D3DX11_IMAGE_LOAD_INFO*     pLoadInfo,
+        ID3DX11ThreadPump*          pPump,
+        ID3D11Resource**            ppTexture,
+        HRESULT*                    pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX11CreateTextureFromFileW (
+        ID3D11Device*               pDevice,
+        LPCWSTR                     pSrcFile,
+        D3DX11_IMAGE_LOAD_INFO*     pLoadInfo,
+        ID3DX11ThreadPump*          pPump,
+        ID3D11Resource**            ppTexture,
+        HRESULT*                    pHResult ) ;
+
+ALIAS: D3DX11CreateTextureFromFile D3DX11CreateTextureFromFileW
+
+FUNCTION: HRESULT
+    D3DX11CreateShaderResourceViewFromResourceA (
+        ID3D11Device*              pDevice,
+        HMODULE                    hSrcModule,
+        LPCSTR                     pSrcResource,
+        D3DX11_IMAGE_LOAD_INFO*    pLoadInfo,
+        ID3DX11ThreadPump*         pPump,
+        ID3D11ShaderResourceView** ppShaderResourceView,
+        HRESULT*                   pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX11CreateShaderResourceViewFromResourceW (
+        ID3D11Device*              pDevice,
+        HMODULE                    hSrcModule,
+        LPCWSTR                    pSrcResource,
+        D3DX11_IMAGE_LOAD_INFO*    pLoadInfo,
+        ID3DX11ThreadPump*         pPump,
+        ID3D11ShaderResourceView** ppShaderResourceView,
+        HRESULT*                   pHResult ) ;
+
+ALIAS: D3DX11CreateShaderResourceViewFromResource D3DX11CreateShaderResourceViewFromResourceW
+
+FUNCTION: HRESULT
+    D3DX11CreateTextureFromResourceA (
+        ID3D11Device*            pDevice,
+        HMODULE                  hSrcModule,
+        LPCSTR                   pSrcResource,
+        D3DX11_IMAGE_LOAD_INFO*  pLoadInfo,
+        ID3DX11ThreadPump*       pPump,
+        ID3D11Resource**         ppTexture,
+        HRESULT*                 pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX11CreateTextureFromResourceW (
+        ID3D11Device*           pDevice,
+        HMODULE                 hSrcModule,
+        LPCWSTR                 pSrcResource,
+        D3DX11_IMAGE_LOAD_INFO* pLoadInfo,
+        ID3DX11ThreadPump*      pPump,
+        ID3D11Resource**        ppTexture,
+        HRESULT*                pHResult ) ;
+
+ALIAS: D3DX11CreateTextureFromResource D3DX11CreateTextureFromResourceW
+
+FUNCTION: HRESULT
+    D3DX11CreateShaderResourceViewFromMemory (
+        ID3D11Device*              pDevice,
+        LPCVOID                    pSrcData,
+        SIZE_T                     SrcDataSize,
+        D3DX11_IMAGE_LOAD_INFO*    pLoadInfo,
+        ID3DX11ThreadPump*         pPump,
+        ID3D11ShaderResourceView** ppShaderResourceView,
+        HRESULT*                   pHResult ) ;
+
+FUNCTION: HRESULT
+    D3DX11CreateTextureFromMemory (
+        ID3D11Device*             pDevice,
+        LPCVOID                   pSrcData,
+        SIZE_T                    SrcDataSize,
+        D3DX11_IMAGE_LOAD_INFO*   pLoadInfo,
+        ID3DX11ThreadPump*        pPump,
+        ID3D11Resource**          ppTexture,
+        HRESULT*                  pHResult ) ;
+
+STRUCT: D3DX11_TEXTURE_LOAD_INFO
+    { pSrcBox         D3D11_BOX* }
+    { pDstBox         D3D11_BOX* }
+    { SrcFirstMip     UINT       }
+    { DstFirstMip     UINT       }
+    { NumMips         UINT       }
+    { SrcFirstElement UINT       }
+    { DstFirstElement UINT       }
+    { NumElements     UINT       }
+    { Filter          UINT       }
+    { MipFilter       UINT       } ;
+
+FUNCTION: HRESULT
+    D3DX11LoadTextureFromTexture (
+        ID3D11DeviceContext*       pContext,
+        ID3D11Resource*            pSrcTexture,
+        D3DX11_TEXTURE_LOAD_INFO*  pLoadInfo,
+        ID3D11Resource*            pDstTexture ) ;
+
+FUNCTION: HRESULT
+    D3DX11FilterTexture (
+        ID3D11DeviceContext*      pContext,
+        ID3D11Resource*           pTexture,
+        UINT                      SrcLevel,
+        UINT                      MipFilter ) ;
+
+FUNCTION: HRESULT
+    D3DX11SaveTextureToFileA (
+        ID3D11DeviceContext*      pContext,
+        ID3D11Resource*           pSrcTexture,
+        D3DX11_IMAGE_FILE_FORMAT  DestFormat,
+        LPCSTR                    pDestFile ) ;
+
+FUNCTION: HRESULT
+    D3DX11SaveTextureToFileW (
+        ID3D11DeviceContext*      pContext,
+        ID3D11Resource*           pSrcTexture,
+        D3DX11_IMAGE_FILE_FORMAT  DestFormat,
+        LPCWSTR                   pDestFile ) ;
+
+ALIAS: D3DX11SaveTextureToFile D3DX11SaveTextureToFileW
+
+FUNCTION: HRESULT
+    D3DX11SaveTextureToMemory (
+        ID3D11DeviceContext*       pContext,
+        ID3D11Resource*            pSrcTexture,
+        D3DX11_IMAGE_FILE_FORMAT   DestFormat,
+        ID3D10Blob**               ppDestBuf,
+        UINT                       Flags ) ;
+
+FUNCTION: HRESULT
+    D3DX11ComputeNormalMap (
+        ID3D11DeviceContext*      pContext,
+        ID3D11Texture2D*          pSrcTexture,
+        UINT                      Flags,
+        UINT                      Channel,
+        FLOAT                     Amplitude,
+        ID3D11Texture2D*          pDestTexture ) ;
+
+FUNCTION: HRESULT
+    D3DX11SHProjectCubeMap (
+        ID3D11DeviceContext* pContext,
+        UINT                 Order,
+        ID3D11Texture2D*     pCubeMap,
+        FLOAT*               pROut,
+        FLOAT*               pGOut,
+        FLOAT*               pBOut ) ;
+
diff --git a/basis/windows/directx/d3dx11tex/summary.txt b/basis/windows/directx/d3dx11tex/summary.txt
new file mode 100644 (file)
index 0000000..94bbcd0
--- /dev/null
@@ -0,0 +1 @@
+Direct3D 11 bindings. Corresponds to d3dx11tex.h.
diff --git a/basis/windows/directx/d3dx11tex/tags.txt b/basis/windows/directx/d3dx11tex/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx9/authors.txt b/basis/windows/directx/d3dx9/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx9/d3dx9.factor b/basis/windows/directx/d3dx9/d3dx9.factor
new file mode 100644 (file)
index 0000000..c2bccb2
--- /dev/null
@@ -0,0 +1,12 @@
+USING: ;
+IN: windows.directx.d3dx9
+
+CONSTANT: D3DXERR_CANNOTMODIFYINDEXBUFFER     HEX: 88760B55
+CONSTANT: D3DXERR_INVALIDMESH                 HEX: 88760B56
+CONSTANT: D3DXERR_CANNOTATTRSORT              HEX: 88760B57
+CONSTANT: D3DXERR_SKINNINGNOTSUPPORTED        HEX: 88760B58
+CONSTANT: D3DXERR_TOOMANYINFLUENCES           HEX: 88760B59
+CONSTANT: D3DXERR_INVALIDDATA                 HEX: 88760B5A
+CONSTANT: D3DXERR_LOADEDMESHASNODATA          HEX: 88760B5B
+CONSTANT: D3DXERR_DUPLICATENAMEDFRAGMENT      HEX: 88760B5C
+CONSTANT: D3DXERR_CANNOTREMOVELASTITEM        HEX: 88760B5D
diff --git a/basis/windows/directx/d3dx9/summary.txt b/basis/windows/directx/d3dx9/summary.txt
new file mode 100644 (file)
index 0000000..3132a55
--- /dev/null
@@ -0,0 +1 @@
+DirectX 9 bindings. Corresponds to d3dx9.h.
diff --git a/basis/windows/directx/d3dx9/tags.txt b/basis/windows/directx/d3dx9/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx9anim/authors.txt b/basis/windows/directx/d3dx9anim/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx9anim/d3dx9anim.factor b/basis/windows/directx/d3dx9anim/d3dx9anim.factor
new file mode 100644 (file)
index 0000000..9864d64
--- /dev/null
@@ -0,0 +1,426 @@
+USING: alien.c-types alien.syntax classes.struct windows.com
+windows.com.syntax windows.directx.d3d9
+windows.directx.d3dx9core windows.directx.d3dx9math
+windows.directx.d3dx9mesh windows.directx.d3dx9xof
+windows.types ;
+IN: windows.directx.d3dx9anim
+
+LIBRARY: d3dx9
+
+TYPEDEF: int D3DXMESHDATATYPE
+CONSTANT: D3DXMESHTYPE_MESH      1
+CONSTANT: D3DXMESHTYPE_PMESH     2
+CONSTANT: D3DXMESHTYPE_PATCHMESH 3
+CONSTANT: D3DXMESHTYPE_FORCE_DWORD HEX: 7fffffff
+
+STRUCT: D3DXMESHDATA
+    { Type D3DXMESHDATATYPE }
+    { Mesh void*            } ;
+TYPEDEF: D3DXMESHDATA* LPD3DXMESHDATA
+
+STRUCT: D3DXMESHCONTAINER
+    { Name                LPSTR                }
+    { MeshData            D3DXMESHDATA         }
+    { pMaterials          LPD3DXMATERIAL       }
+    { pEffects            LPD3DXEFFECTINSTANCE }
+    { NumMaterials        DWORD                }
+    { pAdjacency          DWORD*               }
+    { pSkinInfo           LPD3DXSKININFO       }
+    { pNextMeshContainer  D3DXMESHCONTAINER*   } ;
+TYPEDEF: D3DXMESHCONTAINER* LPD3DXMESHCONTAINER
+
+STRUCT: D3DXFRAME
+    { Name                  LPSTR               }
+    { TransformationMatrix  D3DXMATRIX          }
+    { pMeshContainer        LPD3DXMESHCONTAINER }
+    { pFrameSibling         D3DXFRAME*          }
+    { pFrameFirstChild      D3DXFRAME*          } ;
+TYPEDEF: D3DXFRAME* LPD3DXFRAME
+
+C-TYPE: ID3DXAllocateHierarchy
+TYPEDEF: ID3DXAllocateHierarchy* LPD3DXALLOCATEHIERARCHY
+
+COM-INTERFACE: ID3DXAllocateHierarchy f {00000000-0000-0000-0000-000000000000}
+    HRESULT CreateFrame ( LPCSTR Name, LPD3DXFRAME* ppNewFrame )
+    HRESULT CreateMeshContainer (
+        LPCSTR               Name,
+        D3DXMESHDATA*        pMeshData,
+        D3DXMATERIAL*        pMaterials,
+        D3DXEFFECTINSTANCE*  pEffectInstances,
+        DWORD                NumMaterials,
+        DWORD*               pAdjacency,
+        LPD3DXSKININFO       pSkinInfo,
+        LPD3DXMESHCONTAINER* ppNewMeshContainer )
+    HRESULT DestroyFrame ( LPD3DXFRAME pFrameToFree )
+    HRESULT DestroyMeshContainer ( LPD3DXMESHCONTAINER pMeshContainerToFree )  ;
+
+C-TYPE: ID3DXLoadUserData
+TYPEDEF: ID3DXLoadUserData* LPD3DXLOADUSERDATA
+
+COM-INTERFACE: ID3DXLoadUserData f {00000000-0000-0000-0000-000000000000}
+    HRESULT LoadTopLevelData ( LPD3DXFILEDATA pXofChildData )
+    HRESULT LoadFrameChildData ( LPD3DXFRAME pFrame,
+                                 LPD3DXFILEDATA pXofChildData )
+    HRESULT LoadMeshChildData ( LPD3DXMESHCONTAINER pMeshContainer,
+                                LPD3DXFILEDATA pXofChildData ) ;
+
+C-TYPE: ID3DXSaveUserData
+TYPEDEF: ID3DXSaveUserData* LPD3DXSAVEUSERDATA
+
+COM-INTERFACE: ID3DXSaveUserData f {00000000-0000-0000-0000-000000000000}
+    HRESULT AddFrameChildData (
+        D3DXFRAME*           pFrame,
+        LPD3DXFILESAVEOBJECT pXofSave,
+        LPD3DXFILESAVEDATA   pXofFrameData )
+
+    HRESULT AddMeshChildData (
+        D3DXMESHCONTAINER*   pMeshContainer,
+        LPD3DXFILESAVEOBJECT pXofSave,
+        LPD3DXFILESAVEDATA   pXofMeshData )
+    HRESULT AddTopLevelDataObjectsPre ( LPD3DXFILESAVEOBJECT pXofSave )
+    HRESULT AddTopLevelDataObjectsPost ( LPD3DXFILESAVEOBJECT pXofSave )
+    HRESULT RegisterTemplates ( LPD3DXFILE pXFileApi )
+    HRESULT SaveTemplates ( LPD3DXFILESAVEOBJECT pXofSave ) ;
+
+TYPEDEF: int D3DXCALLBACK_SEARCH_FLAGS
+CONSTANT: D3DXCALLBACK_SEARCH_EXCLUDING_INITIAL_POSITION 1
+CONSTANT: D3DXCALLBACK_SEARCH_BEHIND_INITIAL_POSITION    2
+CONSTANT: D3DXCALLBACK_SEARCH_FORCE_DWORD                HEX: 7fffffff
+
+C-TYPE: ID3DXAnimationSet
+TYPEDEF: ID3DXAnimationSet* LPD3DXANIMATIONSET
+
+COM-INTERFACE: ID3DXAnimationSet IUnknown {698CFB3F-9289-4d95-9A57-33A94B5A65F9}
+    LPCSTR GetName ( )
+    double GetPeriod ( )
+    double GetPeriodicPosition ( double Position )
+    UINT GetNumAnimations ( )
+    HRESULT GetAnimationNameByIndex ( UINT Index, LPCSTR* ppName )
+    HRESULT GetAnimationIndexByName ( LPCSTR pName, UINT* pIndex )
+    HRESULT GetSRT (
+        double          PeriodicPosition,
+        UINT            Animation,
+        D3DXVECTOR3*    pScale,
+        D3DXQUATERNION* pRotation,
+        D3DXVECTOR3*    pTranslation )
+    HRESULT GetCallback (
+        double  Position,
+        DWORD   Flags,
+        double* pCallbackPosition,
+        LPVOID* ppCallbackData ) ;
+
+TYPEDEF: int D3DXPLAYBACK_TYPE
+CONSTANT: D3DXPLAY_LOOP          0
+CONSTANT: D3DXPLAY_ONCE          1
+CONSTANT: D3DXPLAY_PINGPONG      2
+CONSTANT: D3DXPLAY_FORCE_DWORD   HEX: 7fffffff
+
+STRUCT: D3DXKEY_VECTOR3
+    { Time  FLOAT       }
+    { Value D3DXVECTOR3 } ;
+TYPEDEF: D3DXKEY_VECTOR3* LPD3DXKEY_VECTOR3
+
+STRUCT: D3DXKEY_QUATERNION
+    { Time  FLOAT          }
+    { Value D3DXQUATERNION } ;
+TYPEDEF: D3DXKEY_QUATERNION* LPD3DXKEY_QUATERNION
+
+STRUCT: D3DXKEY_CALLBACK
+    { Time          FLOAT  }
+    { pCallbackData LPVOID } ;
+TYPEDEF: D3DXKEY_CALLBACK* LPD3DXKEY_CALLBACK
+
+TYPEDEF: int D3DXCOMPRESSION_FLAGS
+CONSTANT: D3DXCOMPRESS_DEFAULT 0
+CONSTANT: D3DXCOMPRESS_FORCE_DWORD HEX: 7fffffff
+
+C-TYPE: ID3DXKeyframedAnimationSet
+TYPEDEF: ID3DXKeyframedAnimationSet* LPD3DXKEYFRAMEDANIMATIONSET
+
+COM-INTERFACE: ID3DXKeyframedAnimationSet ID3DXAnimationSet {FA4E8E3A-9786-407d-8B4C-5995893764AF}
+    D3DXPLAYBACK_TYPE GetPlaybackType ( )
+    double GetSourceTicksPerSecond ( )
+    UINT GetNumScaleKeys ( UINT Animation )
+    HRESULT GetScaleKeys ( UINT Animation, LPD3DXKEY_VECTOR3 pScaleKeys )
+    HRESULT GetScaleKey ( UINT Animation, UINT Key, LPD3DXKEY_VECTOR3 pScaleKey )
+    HRESULT SetScaleKey ( UINT Animation, UINT Key, LPD3DXKEY_VECTOR3 pScaleKey )
+    UINT GetNumRotationKeys ( UINT Animation )
+    HRESULT GetRotationKeys ( UINT Animation, LPD3DXKEY_QUATERNION pRotationKeys )
+    HRESULT GetRotationKey ( UINT Animation, UINT Key, LPD3DXKEY_QUATERNION pRotationKey )
+    HRESULT SetRotationKey ( UINT Animation, UINT Key, LPD3DXKEY_QUATERNION pRotationKey )
+    UINT GetNumTranslationKeys ( UINT Animation )
+    HRESULT GetTranslationKeys ( UINT Animation, LPD3DXKEY_VECTOR3 pTranslationKeys )
+    HRESULT GetTranslationKey ( UINT Animation, UINT Key, LPD3DXKEY_VECTOR3 pTranslationKey )
+    HRESULT SetTranslationKey ( UINT Animation, UINT Key, LPD3DXKEY_VECTOR3 pTranslationKey )
+    UINT GetNumCallbackKeys ( )
+    HRESULT GetCallbackKeys ( LPD3DXKEY_CALLBACK pCallbackKeys )
+    HRESULT GetCallbackKey ( UINT Key, LPD3DXKEY_CALLBACK pCallbackKey )
+    HRESULT SetCallbackKey ( UINT Key, LPD3DXKEY_CALLBACK pCallbackKey )
+    HRESULT UnregisterScaleKey ( UINT Animation, UINT Key )
+    HRESULT UnregisterRotationKey ( UINT Animation, UINT Key )
+    HRESULT UnregisterTranslationKey ( UINT Animation, UINT Key )
+    HRESULT RegisterAnimationSRTKeys (
+        LPCSTR              pName,
+        UINT                NumScaleKeys,
+        UINT                NumRotationKeys,
+        UINT                NumTranslationKeys,
+        D3DXKEY_VECTOR3*    pScaleKeys,
+        D3DXKEY_QUATERNION* pRotationKeys,
+        D3DXKEY_VECTOR3*    pTranslationKeys,
+        DWORD*              pAnimationIndex )
+    HRESULT Compress (
+        DWORD         Flags,
+        FLOAT         Lossiness,
+        LPD3DXFRAME   pHierarchy,
+        LPD3DXBUFFER* ppCompressedData )
+    HRESULT UnregisterAnimation ( UINT Index ) ;
+
+C-TYPE: ID3DXCompressedAnimationSet
+TYPEDEF: ID3DXCompressedAnimationSet* LPD3DXCOMPRESSEDANIMATIONSET
+
+COM-INTERFACE: ID3DXCompressedAnimationSet ID3DXAnimationSet {6CC2480D-3808-4739-9F88-DE49FACD8D4C}
+    D3DXPLAYBACK_TYPE GetPlaybackType ( )
+    double GetSourceTicksPerSecond ( )
+    HRESULT GetCompressedData ( LPD3DXBUFFER* ppCompressedData )
+    UINT GetNumCallbackKeys ( )
+    HRESULT GetCallbackKeys ( LPD3DXKEY_CALLBACK pCallbackKeys ) ;
+
+TYPEDEF: int D3DXPRIORITY_TYPE
+CONSTANT: D3DXPRIORITY_LOW         0
+CONSTANT: D3DXPRIORITY_HIGH        1
+CONSTANT: D3DXPRIORITY_FORCE_DWORD HEX: 7fffffff
+
+STRUCT: D3DXTRACK_DESC
+    { Priority              D3DXPRIORITY_TYPE }
+    { Weight                FLOAT             }
+    { Speed                 FLOAT             }
+    { Position              double            }
+    { Enable                BOOL              } ;
+TYPEDEF: D3DXTRACK_DESC* LPD3DXTRACK_DESC
+
+TYPEDEF: int D3DXEVENT_TYPE
+CONSTANT: D3DXEVENT_TRACKSPEED    0
+CONSTANT: D3DXEVENT_TRACKWEIGHT   1
+CONSTANT: D3DXEVENT_TRACKPOSITION 2
+CONSTANT: D3DXEVENT_TRACKENABLE   3
+CONSTANT: D3DXEVENT_PRIORITYBLEND 4
+CONSTANT: D3DXEVENT_FORCE_DWORD   HEX: 7fffffff
+
+TYPEDEF: int D3DXTRANSITION_TYPE
+CONSTANT: D3DXTRANSITION_LINEAR        0
+CONSTANT: D3DXTRANSITION_EASEINEASEOUT 1
+CONSTANT: D3DXTRANSITION_FORCE_DWORD   HEX: 7fffffff
+
+UNION-STRUCT: D3DXEVENT_DESC_UNION
+    { Weight            FLOAT  }
+    { Speed             FLOAT  }
+    { Position          double }
+    { Enable            BOOL   } ;
+STRUCT: D3DXEVENT_DESC
+    { Type                   D3DXEVENT_TYPE       }
+    { Track                  UINT                 }
+    { StartTime              double               }
+    { Duration               double               }
+    { Transition             D3DXTRANSITION_TYPE  }
+    { Union                  D3DXEVENT_DESC_UNION } ;
+TYPEDEF: D3DXEVENT_DESC* LPD3DXEVENT_DESC
+
+TYPEDEF: DWORD D3DXEVENTHANDLE
+TYPEDEF: D3DXEVENTHANDLE* LPD3DXEVENTHANDLE
+
+C-TYPE: ID3DXAnimationCallbackHandler
+TYPEDEF: ID3DXAnimationCallbackHandler* LPD3DXANIMATIONCALLBACKHANDLER
+
+COM-INTERFACE: ID3DXAnimationCallbackHandler f {00000000-0000-0000-0000-000000000000}
+    HRESULT HandleCallback ( UINT Track, LPVOID pCallbackData ) ;
+
+C-TYPE: ID3DXAnimationController
+TYPEDEF: ID3DXAnimationController* LPD3DXANIMATIONCONTROLLER
+
+COM-INTERFACE: ID3DXAnimationController IUnknown {AC8948EC-F86D-43e2-96DE-31FC35F96D9E}
+    UINT GetMaxNumAnimationOutputs ( )
+    UINT GetMaxNumAnimationSets ( )
+    UINT GetMaxNumTracks ( )
+    UINT GetMaxNumEvents ( )
+    HRESULT RegisterAnimationOutput (
+        LPCSTR          pName,
+        D3DXMATRIX*     pMatrix,
+        D3DXVECTOR3*    pScale,
+        D3DXQUATERNION* pRotation,
+        D3DXVECTOR3*    pTranslation )
+    HRESULT RegisterAnimationSet ( LPD3DXANIMATIONSET pAnimSet )
+    HRESULT UnregisterAnimationSet ( LPD3DXANIMATIONSET pAnimSet )
+    UINT GetNumAnimationSets ( )
+    HRESULT GetAnimationSet ( UINT Index, LPD3DXANIMATIONSET* ppAnimationSet )
+    HRESULT GetAnimationSetByName ( LPCSTR szName, LPD3DXANIMATIONSET* ppAnimationSet )
+    HRESULT AdvanceTime ( double TimeDelta, LPD3DXANIMATIONCALLBACKHANDLER pCallbackHandler )
+    HRESULT ResetTime ( )
+    double GetTime ( )
+    HRESULT SetTrackAnimationSet ( UINT Track, LPD3DXANIMATIONSET pAnimSet )
+    HRESULT GetTrackAnimationSet ( UINT Track, LPD3DXANIMATIONSET* ppAnimSet )
+    HRESULT SetTrackPriority ( UINT Track, D3DXPRIORITY_TYPE Priority )
+    HRESULT SetTrackSpeed ( UINT Track, FLOAT Speed )
+    HRESULT SetTrackWeight ( UINT Track, FLOAT Weight )
+    HRESULT SetTrackPosition ( UINT Track, double Position )
+    HRESULT SetTrackEnable ( UINT Track, BOOL Enable )
+    HRESULT SetTrackDesc ( UINT Track, LPD3DXTRACK_DESC pDesc )
+    HRESULT GetTrackDesc ( UINT Track, LPD3DXTRACK_DESC pDesc )
+    HRESULT SetPriorityBlend ( FLOAT BlendWeight )
+    FLOAT GetPriorityBlend ( )
+    D3DXEVENTHANDLE KeyTrackSpeed ( UINT Track, FLOAT NewSpeed, double StartTime, double Duration, D3DXTRANSITION_TYPE Transition )
+    D3DXEVENTHANDLE KeyTrackWeight ( UINT Track, FLOAT NewWeight, double StartTime, double Duration, D3DXTRANSITION_TYPE Transition )
+    D3DXEVENTHANDLE KeyTrackPosition ( UINT Track, double NewPosition, double StartTime )
+    D3DXEVENTHANDLE KeyTrackEnable ( UINT Track, BOOL NewEnable, double StartTime )
+    D3DXEVENTHANDLE KeyPriorityBlend ( FLOAT NewBlendWeight, double StartTime, double Duration, D3DXTRANSITION_TYPE Transition )
+    HRESULT UnkeyEvent ( D3DXEVENTHANDLE hEvent )
+    HRESULT UnkeyAllTrackEvents ( UINT Track )
+    HRESULT UnkeyAllPriorityBlends ( )
+    D3DXEVENTHANDLE GetCurrentTrackEvent ( UINT Track, D3DXEVENT_TYPE EventType )
+    D3DXEVENTHANDLE GetCurrentPriorityBlend ( )
+    D3DXEVENTHANDLE GetUpcomingTrackEvent ( UINT Track, D3DXEVENTHANDLE hEvent )
+    D3DXEVENTHANDLE GetUpcomingPriorityBlend ( D3DXEVENTHANDLE hEvent )
+    HRESULT ValidateEvent ( D3DXEVENTHANDLE hEvent )
+    HRESULT GetEventDesc ( D3DXEVENTHANDLE hEvent, LPD3DXEVENT_DESC pDesc )
+    HRESULT CloneAnimationController (
+        UINT                       MaxNumAnimationOutputs,
+        UINT                       MaxNumAnimationSets,
+        UINT                       MaxNumTracks,
+        UINT                       MaxNumEvents,
+        LPD3DXANIMATIONCONTROLLER* ppAnimController ) ;
+
+FUNCTION: HRESULT
+D3DXLoadMeshHierarchyFromXA
+    (
+    LPCSTR                     Filename,
+    DWORD                      MeshOptions,
+    LPDIRECT3DDEVICE9          pD3DDevice,
+    LPD3DXALLOCATEHIERARCHY    pAlloc,
+    LPD3DXLOADUSERDATA         pUserDataLoader,
+    LPD3DXFRAME*               ppFrameHierarchy,
+    LPD3DXANIMATIONCONTROLLER* ppAnimController
+    ) ;
+
+FUNCTION: HRESULT
+D3DXLoadMeshHierarchyFromXW
+    (
+    LPCWSTR                    Filename,
+    DWORD                      MeshOptions,
+    LPDIRECT3DDEVICE9          pD3DDevice,
+    LPD3DXALLOCATEHIERARCHY    pAlloc,
+    LPD3DXLOADUSERDATA         pUserDataLoader,
+    LPD3DXFRAME*               ppFrameHierarchy,
+    LPD3DXANIMATIONCONTROLLER* ppAnimController
+    ) ;
+
+ALIAS: D3DXLoadMeshHierarchyFromX D3DXLoadMeshHierarchyFromXW
+
+FUNCTION: HRESULT
+D3DXLoadMeshHierarchyFromXInMemory
+    (
+    LPCVOID                    Memory,
+    DWORD                      SizeOfMemory,
+    DWORD                      MeshOptions,
+    LPDIRECT3DDEVICE9          pD3DDevice,
+    LPD3DXALLOCATEHIERARCHY    pAlloc,
+    LPD3DXLOADUSERDATA         pUserDataLoader,
+    LPD3DXFRAME*               ppFrameHierarchy,
+    LPD3DXANIMATIONCONTROLLER* ppAnimController
+    ) ;
+
+FUNCTION: HRESULT
+D3DXSaveMeshHierarchyToFileA
+    (
+    LPCSTR                    Filename,
+    DWORD                     XFormat,
+    D3DXFRAME*                pFrameRoot,
+    LPD3DXANIMATIONCONTROLLER pAnimcontroller,
+    LPD3DXSAVEUSERDATA        pUserDataSaver
+    ) ;
+
+FUNCTION: HRESULT
+D3DXSaveMeshHierarchyToFileW
+    (
+    LPCWSTR                   Filename,
+    DWORD                     XFormat,
+    D3DXFRAME*                pFrameRoot,
+    LPD3DXANIMATIONCONTROLLER pAnimController,
+    LPD3DXSAVEUSERDATA        pUserDataSaver
+    ) ;
+
+ALIAS: D3DXSaveMeshHierarchyToFile D3DXSaveMeshHierarchyToFileW
+
+FUNCTION: HRESULT
+D3DXFrameDestroy
+    (
+    LPD3DXFRAME             pFrameRoot,
+    LPD3DXALLOCATEHIERARCHY pAlloc
+    ) ;
+
+FUNCTION: HRESULT
+D3DXFrameAppendChild
+    (
+    LPD3DXFRAME pFrameParent,
+    D3DXFRAME*  pFrameChild
+    ) ;
+
+FUNCTION: LPD3DXFRAME
+D3DXFrameFind
+    (
+    D3DXFRAME* pFrameRoot,
+    LPCSTR     Name
+    ) ;
+
+FUNCTION: HRESULT
+D3DXFrameRegisterNamedMatrices
+    (
+    LPD3DXFRAME               pFrameRoot,
+    LPD3DXANIMATIONCONTROLLER pAnimController
+    ) ;
+        
+FUNCTION: UINT
+D3DXFrameNumNamedMatrices
+    (
+    D3DXFRAME* pFrameRoot
+    ) ;
+        
+FUNCTION: HRESULT
+D3DXFrameCalculateBoundingSphere
+    (
+    D3DXFRAME*    pFrameRoot,
+    LPD3DXVECTOR3 pObjectCenter,
+    FLOAT*        pObjectRadius
+    ) ;
+
+FUNCTION: HRESULT
+D3DXCreateKeyframedAnimationSet
+    (
+    LPCSTR                       pName,
+    double                       TicksPerSecond,
+    D3DXPLAYBACK_TYPE            Playback,
+    UINT                         NumAnimations,
+    UINT                         NumCallbackKeys,
+    D3DXKEY_CALLBACK*            pCallbackKeys,
+    LPD3DXKEYFRAMEDANIMATIONSET* ppAnimationSet
+    ) ;
+
+FUNCTION: HRESULT
+D3DXCreateCompressedAnimationSet
+    (
+    LPCSTR                        pName,
+    double                        TicksPerSecond,
+    D3DXPLAYBACK_TYPE             Playback,
+    LPD3DXBUFFER                  pCompressedData,
+    UINT                          NumCallbackKeys,
+    D3DXKEY_CALLBACK*             pCallbackKeys,
+    LPD3DXCOMPRESSEDANIMATIONSET* ppAnimationSet
+    ) ;
+
+FUNCTION: HRESULT
+D3DXCreateAnimationController
+    (
+    UINT                       MaxNumMatrices,
+    UINT                       MaxNumAnimationSets,
+    UINT                       MaxNumTracks,
+    UINT                       MaxNumEvents,
+    LPD3DXANIMATIONCONTROLLER* ppAnimController
+    ) ;
diff --git a/basis/windows/directx/d3dx9anim/summary.txt b/basis/windows/directx/d3dx9anim/summary.txt
new file mode 100644 (file)
index 0000000..ef56df2
--- /dev/null
@@ -0,0 +1 @@
+DirectX 9 bindings. Corresponds to d3dx9anim.h.
diff --git a/basis/windows/directx/d3dx9anim/tags.txt b/basis/windows/directx/d3dx9anim/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx9core/authors.txt b/basis/windows/directx/d3dx9core/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx9core/d3dx9core.factor b/basis/windows/directx/d3dx9core/d3dx9core.factor
new file mode 100644 (file)
index 0000000..f963b03
--- /dev/null
@@ -0,0 +1,238 @@
+USING: alien.syntax windows.types windows.directx.d3d9 windows.com.syntax
+windows.com windows.directx.d3dx9math windows.directx.d3d9types classes.struct
+windows.gdi32 ;
+IN: windows.directx.d3dx9core
+
+LIBRARY: d3dx9
+
+CONSTANT: D3DX_VERSION HEX: 0902
+CONSTANT: D3DX_SDK_VERSION 42
+
+FUNCTION: BOOL D3DXCheckVersion ( UINT D3DSdkVersion, UINT D3DXSdkVersion ) ;
+FUNCTION: BOOL D3DXDebugMute ( BOOL Mute ) ;  
+FUNCTION: UINT D3DXGetDriverLevel ( LPDIRECT3DDEVICE9 pDevice ) ;
+
+C-TYPE: ID3DXBuffer
+TYPEDEF: ID3DXBuffer* LPD3DXBUFFER
+
+COM-INTERFACE: ID3DXBuffer IUnknown {8BA5FB08-5195-40e2-AC58-0D989C3A0102}
+    LPVOID GetBufferPointer ( )
+    DWORD GetBufferSize ( ) ;
+
+CONSTANT: D3DXSPRITE_DONOTSAVESTATE               1
+CONSTANT: D3DXSPRITE_DONOTMODIFY_RENDERSTATE      2
+CONSTANT: D3DXSPRITE_OBJECTSPACE                  4
+CONSTANT: D3DXSPRITE_BILLBOARD                    8
+CONSTANT: D3DXSPRITE_ALPHABLEND                   16
+CONSTANT: D3DXSPRITE_SORT_TEXTURE                 32
+CONSTANT: D3DXSPRITE_SORT_DEPTH_FRONTTOBACK       64
+CONSTANT: D3DXSPRITE_SORT_DEPTH_BACKTOFRONT       128
+CONSTANT: D3DXSPRITE_DO_NOT_ADDREF_TEXTURE        256
+
+C-TYPE: ID3DXSprite
+TYPEDEF: ID3DXSprite* LPD3DXSPRITE
+
+COM-INTERFACE: ID3DXSprite IUnknown {BA0B762D-7D28-43ec-B9DC-2F84443B0614}
+    HRESULT GetDevice ( LPDIRECT3DDEVICE9* ppDevice )
+    HRESULT GetTransform ( D3DXMATRIX* pTransform )
+    HRESULT SetTransform ( D3DXMATRIX* pTransform )
+    HRESULT SetWorldViewRH ( D3DXMATRIX* pWorld, D3DXMATRIX* pView )
+    HRESULT SetWorldViewLH ( D3DXMATRIX* pWorld, D3DXMATRIX* pView )
+    HRESULT Begin ( DWORD Flags )
+    HRESULT Draw ( LPDIRECT3DTEXTURE9 pTexture, RECT* pSrcRect, D3DXVECTOR3* pCenter, D3DXVECTOR3* pPosition, D3DCOLOR Color )
+    HRESULT Flush ( )
+    HRESULT End ( )
+    HRESULT OnLostDevice ( )
+    HRESULT OnResetDevice ( ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateSprite ( 
+        LPDIRECT3DDEVICE9   pDevice, 
+        LPD3DXSPRITE*       ppSprite ) ;
+
+STRUCT: D3DXFONT_DESCA
+    { Height          INT               }
+    { Width           UINT              }
+    { Weight          UINT              }
+    { MipLevels       UINT              }
+    { Italic          BOOL              }
+    { CharSet         BYTE              }
+    { OutputPrecision BYTE              }
+    { Quality         BYTE              }
+    { PitchAndFamily  BYTE              }
+    { FaceName        CHAR[LF_FACESIZE] } ;
+TYPEDEF: D3DXFONT_DESCA* LPD3DXFONT_DESCA
+
+STRUCT: D3DXFONT_DESCW
+    { Height          INT                }
+    { Width           UINT               }
+    { Weight          UINT               }
+    { MipLevels       UINT               }
+    { Italic          BOOL               }
+    { CharSet         BYTE               }
+    { OutputPrecision BYTE               }
+    { Quality         BYTE               }
+    { PitchAndFamily  BYTE               }
+    { FaceName        WCHAR[LF_FACESIZE] } ;
+TYPEDEF: D3DXFONT_DESCW* LPD3DXFONT_DESCW
+
+TYPEDEF: D3DXFONT_DESCW D3DXFONT_DESC
+TYPEDEF: LPD3DXFONT_DESCW LPD3DXFONT_DESC
+
+C-TYPE: ID3DXFont
+TYPEDEF: ID3DXFont* LPD3DXFONT
+C-TYPE: TEXTMETRICA
+C-TYPE: TEXTMETRICW
+
+COM-INTERFACE: ID3DXFont IUnknown {D79DBB70-5F21-4d36-BBC2-FF525C213CDC}
+    HRESULT GetDevice ( LPDIRECT3DDEVICE9* ppDevice )
+    HRESULT GetDescA ( D3DXFONT_DESCA* pDesc )
+    HRESULT GetDescW ( D3DXFONT_DESCW* pDesc )
+    BOOL GetTextMetricsA ( TEXTMETRICA* pTextMetrics )
+    BOOL GetTextMetricsW ( TEXTMETRICW* pTextMetrics )
+    HDC GetDC ( )
+    HRESULT GetGlyphData ( UINT Glyph, LPDIRECT3DTEXTURE9* ppTexture, RECT* pBlackBox, POINT* pCellInc )
+    HRESULT PreloadCharacters ( UINT First, UINT Last )
+    HRESULT PreloadGlyphs ( UINT First, UINT Last )
+    HRESULT PreloadTextA ( LPCSTR pString, INT Count )
+    HRESULT PreloadTextW ( LPCWSTR pString, INT Count )
+    INT DrawTextA ( LPD3DXSPRITE pSprite, LPCSTR pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color )
+    INT DrawTextW ( LPD3DXSPRITE pSprite, LPCWSTR pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color )
+    HRESULT OnLostDevice ( )
+    HRESULT OnResetDevice ( ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateFontA (
+        LPDIRECT3DDEVICE9       pDevice,  
+        INT                     Height,
+        UINT                    Width,
+        UINT                    Weight,
+        UINT                    MipLevels,
+        BOOL                    Italic,
+        DWORD                   CharSet,
+        DWORD                   OutputPrecision,
+        DWORD                   Quality,
+        DWORD                   PitchAndFamily,
+        LPCSTR                  pFaceName,
+        LPD3DXFONT*             ppFont ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateFontW (
+        LPDIRECT3DDEVICE9       pDevice,  
+        INT                     Height,
+        UINT                    Width,
+        UINT                    Weight,
+        UINT                    MipLevels,
+        BOOL                    Italic,
+        DWORD                   CharSet,
+        DWORD                   OutputPrecision,
+        DWORD                   Quality,
+        DWORD                   PitchAndFamily,
+        LPCWSTR                 pFaceName,
+        LPD3DXFONT*             ppFont ) ;
+
+ALIAS: D3DXCreateFont D3DXCreateFontW
+
+FUNCTION: HRESULT
+    D3DXCreateFontIndirectA ( 
+        LPDIRECT3DDEVICE9       pDevice, 
+        D3DXFONT_DESCA*         pDesc,   
+        LPD3DXFONT*             ppFont ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateFontIndirectW ( 
+        LPDIRECT3DDEVICE9       pDevice, 
+        D3DXFONT_DESCW*         pDesc,   
+        LPD3DXFONT*             ppFont ) ;
+
+ALIAS: D3DXCreateFontIndirect D3DXCreateFontIndirectW
+
+STRUCT: D3DXRTS_DESC
+    { Width                        UINT      }
+    { Height                       UINT      }
+    { Format                       D3DFORMAT }
+    { DepthStencil                 BOOL      }
+    { DepthStencilFormat           D3DFORMAT } ;
+TYPEDEF: D3DXRTS_DESC* LPD3DXRTS_DESC
+
+C-TYPE: ID3DXRenderToSurface
+TYPEDEF: ID3DXRenderToSurface* LPD3DXRENDERTOSURFACE
+
+COM-INTERFACE: ID3DXRenderToSurface IUnknown {6985F346-2C3D-43b3-BE8B-DAAE8A03D894}
+    HRESULT GetDevice ( LPDIRECT3DDEVICE9* ppDevice )
+    HRESULT GetDesc ( D3DXRTS_DESC* pDesc )
+    HRESULT BeginScene ( LPDIRECT3DSURFACE9 pSurface, D3DVIEWPORT9* pViewport )
+    HRESULT EndScene ( DWORD MipFilter )
+    HRESULT OnLostDevice ( )
+    HRESULT OnResetDevice ( ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateRenderToSurface (
+        LPDIRECT3DDEVICE9       pDevice,
+        UINT                    Width,
+        UINT                    Height,
+        D3DFORMAT               Format,
+        BOOL                    DepthStencil,
+        D3DFORMAT               DepthStencilFormat,
+        LPD3DXRENDERTOSURFACE*  ppRenderToSurface ) ;
+
+STRUCT: D3DXRTE_DESC
+    { Size                 UINT      }
+    { MipLevels            UINT      }
+    { Format               D3DFORMAT }
+    { DepthStencil         BOOL      }
+    { DepthStencilFormat   D3DFORMAT } ;
+TYPEDEF: D3DXRTE_DESC* LPD3DXRTE_DESC
+
+C-TYPE: ID3DXRenderToEnvMap
+TYPEDEF: ID3DXRenderToEnvMap* LPD3DXRenderToEnvMap
+
+COM-INTERFACE: ID3DXRenderToEnvMap IUnknown {313F1B4B-C7B0-4fa2-9D9D-8D380B64385E}
+    HRESULT GetDevice ( LPDIRECT3DDEVICE9* ppDevice )
+    HRESULT GetDesc ( D3DXRTE_DESC* pDesc )
+    HRESULT BeginCube ( LPDIRECT3DCUBETEXTURE9 pCubeTex )
+    HRESULT BeginSphere ( LPDIRECT3DTEXTURE9 pTex )
+    HRESULT BeginHemisphere ( LPDIRECT3DTEXTURE9 pTexZPos, LPDIRECT3DTEXTURE9 pTexZNeg )
+    HRESULT BeginParabolic ( LPDIRECT3DTEXTURE9 pTexZPos, LPDIRECT3DTEXTURE9 pTexZNeg )
+    HRESULT Face ( D3DCUBEMAP_FACES Face, DWORD MipFilter )
+    HRESULT End ( DWORD MipFilter )
+    HRESULT OnLostDevice ( )
+    HRESULT OnResetDevice ( ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateRenderToEnvMap (
+        LPDIRECT3DDEVICE9       pDevice,
+        UINT                    Size,
+        UINT                    MipLevels,
+        D3DFORMAT               Format,
+        BOOL                    DepthStencil,
+        D3DFORMAT               DepthStencilFormat,
+        LPD3DXRenderToEnvMap*   ppRenderToEnvMap ) ;
+
+C-TYPE: ID3DXLine
+TYPEDEF: ID3DXLine* LPD3DXLINE
+COM-INTERFACE: ID3DXLine IUnknown {D379BA7F-9042-4ac4-9F5E-58192A4C6BD8}
+    HRESULT GetDevice ( LPDIRECT3DDEVICE9* ppDevice )
+    HRESULT Begin ( )
+    HRESULT Draw ( D3DXVECTOR2* pVertexList, DWORD dwVertexListCount, D3DCOLOR Color )
+    HRESULT DrawTransform ( D3DXVECTOR3* pVertexList,
+        DWORD dwVertexListCount, D3DXMATRIX* pTransform, 
+        D3DCOLOR Color )
+    HRESULT SetPattern ( DWORD dwPattern )
+    DWORD GetPattern ( )
+    HRESULT SetPatternScale ( FLOAT fPatternScale )
+    FLOAT GetPatternScale ( )
+    HRESULT SetWidth ( FLOAT fWidth )
+    FLOAT GetWidth ( )
+    HRESULT SetAntialias ( BOOL bAntialias )
+    BOOL GetAntialias ( )
+    HRESULT SetGLLines ( BOOL bGLLines )
+    BOOL GetGLLines ( )
+    HRESULT End ( )
+    HRESULT OnLostDevice ( )
+    HRESULT OnResetDevice ( ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateLine (
+        LPDIRECT3DDEVICE9   pDevice,
+        LPD3DXLINE*         ppLine ) ;
diff --git a/basis/windows/directx/d3dx9core/summary.txt b/basis/windows/directx/d3dx9core/summary.txt
new file mode 100644 (file)
index 0000000..c2c4bae
--- /dev/null
@@ -0,0 +1 @@
+DirectX 9 bindings. Corresponds to d3dx9core.h.
diff --git a/basis/windows/directx/d3dx9core/tags.txt b/basis/windows/directx/d3dx9core/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx9effect/authors.txt b/basis/windows/directx/d3dx9effect/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx9effect/d3dx9effect.factor b/basis/windows/directx/d3dx9effect/d3dx9effect.factor
new file mode 100644 (file)
index 0000000..e383336
--- /dev/null
@@ -0,0 +1,369 @@
+USING: alien.syntax classes.struct math windows.com
+windows.com.syntax windows.directx.d3d9
+windows.directx.d3d9types windows.directx.d3dx9core
+windows.directx.d3dx9math windows.directx.d3dx9shader
+windows.types ;
+IN: windows.directx.d3dx9effect
+
+LIBRARY: d3dx9
+
+CONSTANT: D3DXFX_DONOTSAVESTATE         1
+CONSTANT: D3DXFX_DONOTSAVESHADERSTATE   2
+CONSTANT: D3DXFX_DONOTSAVESAMPLERSTATE  4
+
+: D3DXFX_NOT_CLONEABLE     ( -- n ) 1 11 shift ; inline
+: D3DXFX_LARGEADDRESSAWARE ( -- n ) 1 17 shift ; inline
+
+CONSTANT: D3DX_PARAMETER_SHARED       1
+CONSTANT: D3DX_PARAMETER_LITERAL      2
+CONSTANT: D3DX_PARAMETER_ANNOTATION   4
+
+STRUCT: D3DXEFFECT_DESC
+    { Creator    LPCSTR }
+    { Parameters UINT   }
+    { Techniques UINT   }
+    { Functions  UINT   } ;
+
+STRUCT: D3DXPARAMETER_DESC
+    { Name          LPCSTR              }
+    { Semantic      LPCSTR              }
+    { Class         D3DXPARAMETER_CLASS }
+    { Type          D3DXPARAMETER_TYPE  }
+    { Rows          UINT                }
+    { Columns       UINT                }
+    { Elements      UINT                }
+    { Annotations   UINT                }
+    { StructMembers UINT                }
+    { Flags         DWORD               }
+    { Bytes         UINT                } ;
+
+STRUCT: D3DXTECHNIQUE_DESC
+    { Name        LPCSTR }
+    { Passes      UINT   }
+    { Annotations UINT   }  ;
+
+STRUCT: D3DXPASS_DESC
+    { Name                  LPCSTR }
+    { Annotations           UINT   }
+    { pVertexShaderFunction DWORD* }
+    { pPixelShaderFunction  DWORD* } ;
+
+STRUCT: D3DXFUNCTION_DESC
+    { Name        LPCSTR }
+    { Annotations UINT   } ;
+
+C-TYPE: ID3DXEffectPool
+TYPEDEF: ID3DXEffectPool* LPD3DXEFFECTPOOL
+
+COM-INTERFACE: ID3DXEffectPool IUnknown {9537AB04-3250-412e-8213-FCD2F8677933} ;
+
+C-TYPE: ID3DXBaseEffect
+TYPEDEF: ID3DXBaseEffect* LPD3DXBASEEFFECT
+
+COM-INTERFACE: ID3DXBaseEffect IUnknown {017C18AC-103F-4417-8C51-6BF6EF1E56BE}
+    HRESULT GetDesc ( D3DXEFFECT_DESC* pDesc )
+    HRESULT GetParameterDesc ( D3DXHANDLE hParameter, D3DXPARAMETER_DESC* pDesc )
+    HRESULT GetTechniqueDesc ( D3DXHANDLE hTechnique, D3DXTECHNIQUE_DESC* pDesc )
+    HRESULT GetPassDesc ( D3DXHANDLE hPass, D3DXPASS_DESC* pDesc )
+    HRESULT GetFunctionDesc ( D3DXHANDLE hShader, D3DXFUNCTION_DESC* pDesc )
+    D3DXHANDLE GetParameter ( D3DXHANDLE hParameter, UINT Index )
+    D3DXHANDLE GetParameterByName ( D3DXHANDLE hParameter, LPCSTR pName )
+    D3DXHANDLE GetParameterBySemantic ( D3DXHANDLE hParameter, LPCSTR pSemantic )
+    D3DXHANDLE GetParameterElement ( D3DXHANDLE hParameter, UINT Index )
+    D3DXHANDLE GetTechnique ( UINT Index )
+    D3DXHANDLE GetTechniqueByName ( LPCSTR pName )
+    D3DXHANDLE GetPass ( D3DXHANDLE hTechnique, UINT Index )
+    D3DXHANDLE GetPassByName ( D3DXHANDLE hTechnique, LPCSTR pName )
+    D3DXHANDLE GetFunction ( UINT Index )
+    D3DXHANDLE GetFunctionByName ( LPCSTR pName )
+    D3DXHANDLE GetAnnotation ( D3DXHANDLE hObject, UINT Index )
+    D3DXHANDLE GetAnnotationByName ( D3DXHANDLE hObject, LPCSTR pName )
+    HRESULT SetValue ( D3DXHANDLE hParameter, LPCVOID pData, UINT Bytes )
+    HRESULT GetValue ( D3DXHANDLE hParameter, LPVOID pData, UINT Bytes )
+    HRESULT SetBool ( D3DXHANDLE hParameter, BOOL b )
+    HRESULT GetBool ( D3DXHANDLE hParameter, BOOL* pb )
+    HRESULT SetBoolArray ( D3DXHANDLE hParameter, BOOL* pb, UINT Count )
+    HRESULT GetBoolArray ( D3DXHANDLE hParameter, BOOL* pb, UINT Count )
+    HRESULT SetInt ( D3DXHANDLE hParameter, INT n )
+    HRESULT GetInt ( D3DXHANDLE hParameter, INT* pn )
+    HRESULT SetIntArray ( D3DXHANDLE hParameter, INT* pn, UINT Count )
+    HRESULT GetIntArray ( D3DXHANDLE hParameter, INT* pn, UINT Count )
+    HRESULT SetFloat ( D3DXHANDLE hParameter, FLOAT f )
+    HRESULT GetFloat ( D3DXHANDLE hParameter, FLOAT* pf )
+    HRESULT SetFloatArray ( D3DXHANDLE hParameter, FLOAT* pf, UINT Count )
+    HRESULT GetFloatArray ( D3DXHANDLE hParameter, FLOAT* pf, UINT Count )
+    HRESULT SetVector ( D3DXHANDLE hParameter, D3DXVECTOR4* pVector )
+    HRESULT GetVector ( D3DXHANDLE hParameter, D3DXVECTOR4* pVector )
+    HRESULT SetVectorArray ( D3DXHANDLE hParameter, D3DXVECTOR4* pVector, UINT Count )
+    HRESULT GetVectorArray ( D3DXHANDLE hParameter, D3DXVECTOR4* pVector, UINT Count )
+    HRESULT SetMatrix ( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix )
+    HRESULT GetMatrix ( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix )
+    HRESULT SetMatrixArray ( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count )
+    HRESULT GetMatrixArray ( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count )
+    HRESULT SetMatrixPointerArray ( D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count )
+    HRESULT GetMatrixPointerArray ( D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count )
+    HRESULT SetMatrixTranspose ( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix )
+    HRESULT GetMatrixTranspose ( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix )
+    HRESULT SetMatrixTransposeArray ( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count )
+    HRESULT GetMatrixTransposeArray ( D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count )
+    HRESULT SetMatrixTransposePointerArray ( D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count )
+    HRESULT GetMatrixTransposePointerArray ( D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count )
+    HRESULT SetString ( D3DXHANDLE hParameter, LPCSTR pString )
+    HRESULT GetString ( D3DXHANDLE hParameter, LPCSTR* ppString )
+    HRESULT SetTexture ( D3DXHANDLE hParameter, LPDIRECT3DBASETEXTURE9 pTexture )
+    HRESULT GetTexture ( D3DXHANDLE hParameter, LPDIRECT3DBASETEXTURE9* ppTexture )
+    HRESULT GetPixelShader ( D3DXHANDLE hParameter, LPDIRECT3DPIXELSHADER9* ppPShader )
+    HRESULT GetVertexShader ( D3DXHANDLE hParameter, LPDIRECT3DVERTEXSHADER9* ppVShader )
+    HRESULT SetArrayRange ( D3DXHANDLE hParameter, UINT uStart, UINT uEnd ) ;
+
+C-TYPE: ID3DXEffectStateManager
+TYPEDEF: ID3DXEffectStateManager* LPD3DXEFFECTSTATEMANAGER
+
+COM-INTERFACE: ID3DXEffectStateManager IUnknown {79AAB587-6DBC-4fa7-82DE-37FA1781C5CE}
+    HRESULT SetTransform ( D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix )
+    HRESULT SetMaterial ( D3DMATERIAL9* pMaterial )
+    HRESULT SetLight ( DWORD Index, D3DLIGHT9* pLight )
+    HRESULT LightEnable ( DWORD Index, BOOL Enable )
+    HRESULT SetRenderState ( D3DRENDERSTATETYPE State, DWORD Value )
+    HRESULT SetTexture ( DWORD Stage, LPDIRECT3DBASETEXTURE9 pTexture )
+    HRESULT SetTextureStageState ( DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value )
+    HRESULT SetSamplerState ( DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value )
+    HRESULT SetNPatchMode ( FLOAT NumSegments )
+    HRESULT SetFVF ( DWORD FVF )
+    HRESULT SetVertexShader ( LPDIRECT3DVERTEXSHADER9 pShader )
+    HRESULT SetVertexShaderConstantF ( UINT RegisterIndex, FLOAT* pConstantData, UINT RegisterCount )
+    HRESULT SetVertexShaderConstantI ( UINT RegisterIndex, INT* pConstantData, UINT RegisterCount )
+    HRESULT SetVertexShaderConstantB ( UINT RegisterIndex, BOOL* pConstantData, UINT RegisterCount )
+    HRESULT SetPixelShader ( LPDIRECT3DPIXELSHADER9 pShader )
+    HRESULT SetPixelShaderConstantF ( UINT RegisterIndex, FLOAT* pConstantData, UINT RegisterCount )
+    HRESULT SetPixelShaderConstantI ( UINT RegisterIndex, INT* pConstantData, UINT RegisterCount )
+    HRESULT SetPixelShaderConstantB ( UINT RegisterIndex, BOOL* pConstantData, UINT RegisterCount ) ;
+
+C-TYPE: ID3DXEffect
+TYPEDEF: ID3DXEffect* LPD3DXEFFECT
+
+COM-INTERFACE: ID3DXEffect ID3DXBaseEffect {F6CEB4B3-4E4C-40dd-B883-8D8DE5EA0CD5}
+    HRESULT GetPool ( LPD3DXEFFECTPOOL* ppPool )
+    HRESULT SetTechnique ( D3DXHANDLE hTechnique )
+    D3DXHANDLE GetCurrentTechnique ( )
+    HRESULT ValidateTechnique ( D3DXHANDLE hTechnique )
+    HRESULT FindNextValidTechnique ( D3DXHANDLE hTechnique, D3DXHANDLE* pTechnique )
+    BOOL IsParameterUsed ( D3DXHANDLE hParameter, D3DXHANDLE hTechnique )
+    HRESULT Begin ( UINT* pPasses, DWORD Flags )
+    HRESULT BeginPass ( UINT Pass )
+    HRESULT CommitChanges ( )
+    HRESULT EndPass ( )
+    HRESULT End ( )
+    HRESULT GetDevice ( LPDIRECT3DDEVICE9* ppDevice )
+    HRESULT OnLostDevice ( )
+    HRESULT OnResetDevice ( )
+    HRESULT SetStateManager ( LPD3DXEFFECTSTATEMANAGER pManager )
+    HRESULT GetStateManager ( LPD3DXEFFECTSTATEMANAGER* ppManager )
+    HRESULT BeginParameterBlock ( )
+    D3DXHANDLE EndParameterBlock ( )
+    HRESULT ApplyParameterBlock ( D3DXHANDLE hParameterBlock )
+    HRESULT DeleteParameterBlock ( D3DXHANDLE hParameterBlock )
+    HRESULT CloneEffect ( LPDIRECT3DDEVICE9 pDevice, LPD3DXEFFECT* ppEffect )
+    HRESULT SetRawValue ( D3DXHANDLE hParameter, LPCVOID pData, UINT ByteOffset, UINT Bytes ) ;
+
+C-TYPE: ID3DXEffectCompiler
+TYPEDEF: ID3DXEffectCompiler* LPD3DXEFFECTCOMPILER
+
+COM-INTERFACE: ID3DXEffectCompiler ID3DXBaseEffect {51B8A949-1A31-47e6-BEA0-4B30DB53F1E0}
+    HRESULT SetLiteral ( D3DXHANDLE hParameter, BOOL Literal )
+    HRESULT GetLiteral ( D3DXHANDLE hParameter, BOOL* pLiteral )
+    HRESULT CompileEffect ( DWORD Flags, LPD3DXBUFFER* ppEffect, LPD3DXBUFFER* ppErrorMsgs )
+    HRESULT CompileShader ( D3DXHANDLE hFunction, LPCSTR pTarget, DWORD Flags,
+                            LPD3DXBUFFER* ppShader, LPD3DXBUFFER* ppErrorMsgs,
+                            LPD3DXCONSTANTTABLE* ppConstantTable ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateEffectPool ( LPD3DXEFFECTPOOL* ppPool ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateEffectFromFileA (
+        LPDIRECT3DDEVICE9               pDevice,
+        LPCSTR                          pSrcFile,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        DWORD                           Flags,
+        LPD3DXEFFECTPOOL                pPool,
+        LPD3DXEFFECT*                   ppEffect,
+        LPD3DXBUFFER*                   ppCompilationErrors ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateEffectFromFileW (
+        LPDIRECT3DDEVICE9               pDevice,
+        LPCWSTR                         pSrcFile,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        DWORD                           Flags,
+        LPD3DXEFFECTPOOL                pPool,
+        LPD3DXEFFECT*                   ppEffect,
+        LPD3DXBUFFER*                   ppCompilationErrors ) ;
+
+ALIAS: D3DXCreateEffectFromFile D3DXCreateEffectFromFileW
+
+FUNCTION: HRESULT
+    D3DXCreateEffectFromResourceA (
+        LPDIRECT3DDEVICE9               pDevice,
+        HMODULE                         hSrcModule,
+        LPCSTR                          pSrcResource,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        DWORD                           Flags,
+        LPD3DXEFFECTPOOL                pPool,
+        LPD3DXEFFECT*                   ppEffect,
+        LPD3DXBUFFER*                   ppCompilationErrors ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateEffectFromResourceW (
+        LPDIRECT3DDEVICE9               pDevice,
+        HMODULE                         hSrcModule,
+        LPCWSTR                         pSrcResource,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        DWORD                           Flags,
+        LPD3DXEFFECTPOOL                pPool,
+        LPD3DXEFFECT*                   ppEffect,
+        LPD3DXBUFFER*                   ppCompilationErrors ) ;
+
+ALIAS: D3DXCreateEffectFromResource D3DXCreateEffectFromResourceW
+
+FUNCTION: HRESULT
+    D3DXCreateEffect (
+        LPDIRECT3DDEVICE9               pDevice,
+        LPCVOID                         pSrcData,
+        UINT                            SrcDataLen,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        DWORD                           Flags,
+        LPD3DXEFFECTPOOL                pPool,
+        LPD3DXEFFECT*                   ppEffect,
+        LPD3DXBUFFER*                   ppCompilationErrors ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateEffectFromFileExA (
+        LPDIRECT3DDEVICE9               pDevice,
+        LPCSTR                          pSrcFile,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        LPCSTR                          pSkipConstants, 
+        DWORD                           Flags,
+        LPD3DXEFFECTPOOL                pPool,
+        LPD3DXEFFECT*                   ppEffect,
+        LPD3DXBUFFER*                   ppCompilationErrors ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateEffectFromFileExW (
+        LPDIRECT3DDEVICE9               pDevice,
+        LPCWSTR                         pSrcFile,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        LPCSTR                          pSkipConstants, 
+        DWORD                           Flags,
+        LPD3DXEFFECTPOOL                pPool,
+        LPD3DXEFFECT*                   ppEffect,
+        LPD3DXBUFFER*                   ppCompilationErrors ) ;
+
+ALIAS: D3DXCreateEffectFromFileEx D3DXCreateEffectFromFileExW
+
+FUNCTION: HRESULT
+    D3DXCreateEffectFromResourceExA (
+        LPDIRECT3DDEVICE9               pDevice,
+        HMODULE                         hSrcModule,
+        LPCSTR                          pSrcResource,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        LPCSTR                          pSkipConstants, 
+        DWORD                           Flags,
+        LPD3DXEFFECTPOOL                pPool,
+        LPD3DXEFFECT*                   ppEffect,
+        LPD3DXBUFFER*                   ppCompilationErrors ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateEffectFromResourceExW (
+        LPDIRECT3DDEVICE9               pDevice,
+        HMODULE                         hSrcModule,
+        LPCWSTR                         pSrcResource,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        LPCSTR                          pSkipConstants, 
+        DWORD                           Flags,
+        LPD3DXEFFECTPOOL                pPool,
+        LPD3DXEFFECT*                   ppEffect,
+        LPD3DXBUFFER*                   ppCompilationErrors ) ;
+
+ALIAS: D3DXCreateEffectFromResourceEx D3DXCreateEffectFromResourceExW
+
+FUNCTION: HRESULT
+    D3DXCreateEffectEx (
+        LPDIRECT3DDEVICE9               pDevice,
+        LPCVOID                         pSrcData,
+        UINT                            SrcDataLen,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        LPCSTR                          pSkipConstants, 
+        DWORD                           Flags,
+        LPD3DXEFFECTPOOL                pPool,
+        LPD3DXEFFECT*                   ppEffect,
+        LPD3DXBUFFER*                   ppCompilationErrors ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateEffectCompilerFromFileA (
+        LPCSTR                          pSrcFile,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        DWORD                           Flags,
+        LPD3DXEFFECTCOMPILER*           ppCompiler,
+        LPD3DXBUFFER*                   ppParseErrors ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateEffectCompilerFromFileW (
+        LPCWSTR                         pSrcFile,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        DWORD                           Flags,
+        LPD3DXEFFECTCOMPILER*           ppCompiler,
+        LPD3DXBUFFER*                   ppParseErrors ) ;
+
+ALIAS: D3DXCreateEffectCompilerFromFile D3DXCreateEffectCompilerFromFileW
+
+FUNCTION: HRESULT
+    D3DXCreateEffectCompilerFromResourceA (
+        HMODULE                         hSrcModule,
+        LPCSTR                          pSrcResource,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        DWORD                           Flags,
+        LPD3DXEFFECTCOMPILER*           ppCompiler,
+        LPD3DXBUFFER*                   ppParseErrors ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateEffectCompilerFromResourceW (
+        HMODULE                         hSrcModule,
+        LPCWSTR                         pSrcResource,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        DWORD                           Flags,
+        LPD3DXEFFECTCOMPILER*           ppCompiler,
+        LPD3DXBUFFER*                   ppParseErrors ) ;
+
+ALIAS: D3DXCreateEffectCompilerFromResource D3DXCreateEffectCompilerFromResourceW
+
+FUNCTION: HRESULT
+    D3DXCreateEffectCompiler (
+        LPCSTR                          pSrcData,
+        UINT                            SrcDataLen,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        DWORD                           Flags,
+        LPD3DXEFFECTCOMPILER*           ppCompiler,
+        LPD3DXBUFFER*                   ppParseErrors ) ;
+
+FUNCTION: HRESULT 
+    D3DXDisassembleEffect (
+        LPD3DXEFFECT pEffect, 
+        BOOL EnableColorCode, 
+        LPD3DXBUFFER* ppDisassembly ) ;
+        
diff --git a/basis/windows/directx/d3dx9effect/summary.txt b/basis/windows/directx/d3dx9effect/summary.txt
new file mode 100644 (file)
index 0000000..dc32407
--- /dev/null
@@ -0,0 +1 @@
+DirectX 9 bindings. Corresponds to d3dx9effect.h.
diff --git a/basis/windows/directx/d3dx9effect/tags.txt b/basis/windows/directx/d3dx9effect/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx9math/authors.txt b/basis/windows/directx/d3dx9math/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx9math/d3dx9math.factor b/basis/windows/directx/d3dx9math/d3dx9math.factor
new file mode 100644 (file)
index 0000000..6d37af5
--- /dev/null
@@ -0,0 +1,160 @@
+USING: math classes.struct windows.types alien.syntax windows.directx.d3d9types
+windows.com.syntax windows.com windows.directx.d3d9 ;
+IN: windows.directx.d3dx9math
+
+LIBRARY: d3dx9
+
+CONSTANT: D3DX_PI    3.141592654
+CONSTANT: D3DX_1BYPI 0.318309886
+
+: D3DXToRadian ( degree -- radian ) D3DX_PI 180.0 / * ; inline
+: D3DXToDegree ( radian -- degree ) 180.0 D3DX_PI / * ; inline
+
+CONSTANT: D3DX_16F_DIG          3
+CONSTANT: D3DX_16F_EPSILON      4.8875809e-4
+CONSTANT: D3DX_16F_MANT_DIG     11
+CONSTANT: D3DX_16F_MAX          6.550400e+004
+CONSTANT: D3DX_16F_MAX_10_EXP   4
+CONSTANT: D3DX_16F_MAX_EXP      15
+CONSTANT: D3DX_16F_MIN          6.1035156e-5
+CONSTANT: D3DX_16F_MIN_10_EXP   -4
+CONSTANT: D3DX_16F_MIN_EXP      -14
+CONSTANT: D3DX_16F_RADIX        2
+CONSTANT: D3DX_16F_ROUNDS       1
+
+STRUCT: D3DXFLOAT16
+    { value WORD } ;
+TYPEDEF: D3DXFLOAT16* LPD3DXFLOAT16
+
+STRUCT: D3DXVECTOR2
+    { x FLOAT }
+    { y FLOAT } ;
+TYPEDEF: D3DXVECTOR2* LPD3DXVECTOR2
+
+STRUCT: D3DXVECTOR2_16F
+    { x D3DXFLOAT16 }
+    { y D3DXFLOAT16 } ;
+TYPEDEF: D3DXVECTOR2_16F* LPD3DXVECTOR2_16F
+
+TYPEDEF: D3DVECTOR D3DXVECTOR3
+TYPEDEF: D3DXVECTOR3* LPD3DXVECTOR3
+
+STRUCT: D3DXVECTOR3_16F
+    { x D3DXFLOAT16 }
+    { y D3DXFLOAT16 }
+    { z D3DXFLOAT16 } ;
+TYPEDEF: D3DXVECTOR3_16F* LPD3DXVECTOR3_16F
+
+STRUCT: D3DXVECTOR4
+    { x FLOAT }
+    { y FLOAT }
+    { z FLOAT }
+    { w FLOAT } ;
+TYPEDEF: D3DXVECTOR4* LPD3DXVECTOR4
+
+STRUCT: D3DXVECTOR4_16F
+    { x D3DXFLOAT16 }
+    { y D3DXFLOAT16 }
+    { z D3DXFLOAT16 }
+    { w D3DXFLOAT16 } ;
+TYPEDEF: D3DXVECTOR4_16F* LPD3DXVECTOR4_16F
+
+TYPEDEF: D3DMATRIX D3DXMATRIX
+TYPEDEF: D3DXMATRIX* LPD3DXMATRIX
+TYPEDEF: D3DXMATRIX D3DXMATRIXA16
+TYPEDEF: D3DXMATRIXA16* LPD3DXMATRIXA16
+
+STRUCT: D3DXQUATERNION
+    { x FLOAT }
+    { y FLOAT }
+    { z FLOAT }
+    { w FLOAT } ;
+TYPEDEF: D3DXQUATERNION* LPD3DXQUATERNION
+
+STRUCT: D3DXPLANE
+    { a FLOAT }
+    { b FLOAT }
+    { c FLOAT }
+    { d FLOAT } ;
+TYPEDEF: D3DXPLANE* LPD3DXPLANE
+
+STRUCT: D3DXCOLOR
+    { r FLOAT }
+    { g FLOAT }
+    { b FLOAT }
+    { a FLOAT } ;
+TYPEDEF: D3DXCOLOR* LPD3DXCOLOR
+
+C-TYPE: ID3DXMatrixStack
+TYPEDEF: ID3DXMatrixStack* LPD3DXMATRIXSTACK
+
+COM-INTERFACE: ID3DXMatrixStack IUnknown {C7885BA7-F990-4fe7-922D-8515E477DD85}
+    HRESULT Pop ( )
+    HRESULT Push ( )
+    HRESULT LoadIdentity ( )
+    HRESULT LoadMatrix ( D3DXMATRIX* pM  )
+    HRESULT MultMatrix ( D3DXMATRIX* pM  )
+    HRESULT MultMatrixLocal ( D3DXMATRIX* pM  )
+    HRESULT RotateAxis ( D3DXVECTOR3* pV, FLOAT Angle )
+    HRESULT RotateAxisLocal ( D3DXVECTOR3* pV, FLOAT Angle )
+    HRESULT RotateYawPitchRoll ( FLOAT Yaw, FLOAT Pitch, FLOAT Roll )
+    HRESULT RotateYawPitchRollLocal ( FLOAT Yaw, FLOAT Pitch, FLOAT Roll )
+    HRESULT Scale ( FLOAT x, FLOAT y, FLOAT z )
+    HRESULT ScaleLocal ( FLOAT x, FLOAT y, FLOAT z )
+    HRESULT Translate ( FLOAT x, FLOAT y, FLOAT z  )
+    HRESULT TranslateLocal ( FLOAT x, FLOAT y, FLOAT z )
+    D3DXMATRIX* GetTop ( ) ;
+
+FUNCTION: HRESULT D3DXCreateMatrixStack (
+        DWORD               Flags,
+        LPD3DXMATRIXSTACK*  ppStack ) ;
+
+CONSTANT: D3DXSH_MINORDER 2
+CONSTANT: D3DXSH_MAXORDER 6
+
+FUNCTION: FLOAT* D3DXSHEvalDirection
+    ( FLOAT* Out, UINT Order, D3DXVECTOR3 *pDir ) ;
+
+FUNCTION: FLOAT* D3DXSHRotate
+    ( FLOAT* Out, UINT Order, D3DXMATRIX *pMatrix, FLOAT* In ) ;
+
+FUNCTION: FLOAT* D3DXSHRotateZ
+    ( FLOAT* Out, UINT Order, FLOAT Angle, FLOAT* In ) ;
+
+FUNCTION: FLOAT* D3DXSHAdd
+    ( FLOAT* Out, UINT Order, FLOAT* A, FLOAT* B ) ;
+
+FUNCTION: FLOAT* D3DXSHScale
+    ( FLOAT* Out, UINT Order, FLOAT* In, FLOAT Scale ) ;
+
+FUNCTION: FLOAT WINAPI ( UINT Order, FLOAT* A, FLOAT* B ) ;
+
+FUNCTION: FLOAT* D3DXSHMultiply2 ( FLOAT* Out, FLOAT* F, FLOAT* G ) ;
+FUNCTION: FLOAT* D3DXSHMultiply3 ( FLOAT* Out, FLOAT* F, FLOAT* G ) ;
+FUNCTION: FLOAT* D3DXSHMultiply4 ( FLOAT* Out, FLOAT* F, FLOAT* G ) ;
+FUNCTION: FLOAT* D3DXSHMultiply5 ( FLOAT* Out, FLOAT* F, FLOAT* G ) ;
+FUNCTION: FLOAT* D3DXSHMultiply6 ( FLOAT* Out, FLOAT* F, FLOAT* G ) ;
+
+FUNCTION: HRESULT D3DXSHEvalDirectionalLight
+    ( UINT Order, D3DXVECTOR3* pDir,
+      FLOAT RIntensity, FLOAT GIntensity, FLOAT BIntensity,
+      FLOAT* ROut, FLOAT* GOut, FLOAT* BOut ) ;
+
+FUNCTION: HRESULT D3DXSHEvalSphericalLight
+    ( UINT Order, D3DXVECTOR3* pPos, FLOAT Radius,
+      FLOAT RIntensity, FLOAT GIntensity, FLOAT BIntensity,
+      FLOAT* ROut, FLOAT* GOut, FLOAT* BOut ) ;
+
+FUNCTION: HRESULT D3DXSHEvalConeLight
+    ( UINT Order, D3DXVECTOR3* pDir, FLOAT Radius,
+      FLOAT RIntensity, FLOAT GIntensity, FLOAT BIntensity,
+      FLOAT* ROut, FLOAT* GOut, FLOAT* BOut ) ;
+
+FUNCTION: HRESULT D3DXSHEvalHemisphereLight
+    ( UINT Order, D3DXVECTOR3* pDir, D3DXCOLOR Top, D3DXCOLOR Bottom,
+      FLOAT* ROut, FLOAT* GOut, FLOAT* BOut ) ;
+
+FUNCTION: HRESULT D3DXSHProjectCubeMap
+    ( UINT uOrder, LPDIRECT3DCUBETEXTURE9 pCubeMap,
+      FLOAT* ROut, FLOAT* GOut, FLOAT* BOut ) ;
+
diff --git a/basis/windows/directx/d3dx9math/summary.txt b/basis/windows/directx/d3dx9math/summary.txt
new file mode 100644 (file)
index 0000000..06c58ba
--- /dev/null
@@ -0,0 +1 @@
+DirectX 9 bindings. Corresponds to d3dx9math.h.
diff --git a/basis/windows/directx/d3dx9math/tags.txt b/basis/windows/directx/d3dx9math/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx9mesh/authors.txt b/basis/windows/directx/d3dx9mesh/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx9mesh/d3dx9mesh.factor b/basis/windows/directx/d3dx9mesh/d3dx9mesh.factor
new file mode 100644 (file)
index 0000000..e4cb3dd
--- /dev/null
@@ -0,0 +1,1220 @@
+USING: alien.syntax alien.c-types windows.directx.d3d9types math
+classes.struct windows.types windows.com.syntax windows.com
+windows.directx.d3d9 windows.directx.d3dx9core windows.directx.d3dx9math
+windows.directx.d3dx9xof ;
+IN: windows.directx.d3dx9mesh
+
+LIBRARY: d3dx9
+
+TYPEDEF: int D3DXPATCHMESHTYPE
+CONSTANT: D3DXPATCHMESH_RECT   1
+CONSTANT: D3DXPATCHMESH_TRI    2
+CONSTANT: D3DXPATCHMESH_NPATCH 3
+CONSTANT: D3DXPATCHMESH_FORCE_DWORD HEX: 7fffffff
+
+TYPEDEF: int D3DXMESH
+CONSTANT: D3DXMESH_32BIT                  HEX: 001
+CONSTANT: D3DXMESH_DONOTCLIP              HEX: 002
+CONSTANT: D3DXMESH_POINTS                 HEX: 004
+CONSTANT: D3DXMESH_RTPATCHES              HEX: 008
+CONSTANT: D3DXMESH_NPATCHES               HEX: 4000
+CONSTANT: D3DXMESH_VB_SYSTEMMEM           HEX: 010
+CONSTANT: D3DXMESH_VB_MANAGED             HEX: 020
+CONSTANT: D3DXMESH_VB_WRITEONLY           HEX: 040
+CONSTANT: D3DXMESH_VB_DYNAMIC             HEX: 080
+CONSTANT: D3DXMESH_VB_SOFTWAREPROCESSING  HEX: 8000
+CONSTANT: D3DXMESH_IB_SYSTEMMEM           HEX: 100
+CONSTANT: D3DXMESH_IB_MANAGED             HEX: 200
+CONSTANT: D3DXMESH_IB_WRITEONLY           HEX: 400
+CONSTANT: D3DXMESH_IB_DYNAMIC             HEX: 800
+CONSTANT: D3DXMESH_IB_SOFTWAREPROCESSING  HEX: 10000
+CONSTANT: D3DXMESH_VB_SHARE               HEX: 1000
+CONSTANT: D3DXMESH_USEHWONLY              HEX: 2000
+CONSTANT: D3DXMESH_SYSTEMMEM              HEX: 110
+CONSTANT: D3DXMESH_MANAGED                HEX: 220
+CONSTANT: D3DXMESH_WRITEONLY              HEX: 440
+CONSTANT: D3DXMESH_DYNAMIC                HEX: 880
+CONSTANT: D3DXMESH_SOFTWAREPROCESSING     HEX: 18000
+
+TYPEDEF: int D3DXPATCHMESH
+CONSTANT: D3DXPATCHMESH_DEFAULT 0
+
+TYPEDEF: int D3DXMESHSIMP
+CONSTANT: D3DXMESHSIMP_VERTEX   1
+CONSTANT: D3DXMESHSIMP_FACE     2
+
+TYPEDEF: int D3DXCLEANTYPE
+CONSTANT: D3DXCLEAN_BACKFACING     1
+CONSTANT: D3DXCLEAN_BOWTIES        2
+CONSTANT: D3DXCLEAN_SKINNING       1
+CONSTANT: D3DXCLEAN_OPTIMIZATION   1
+CONSTANT: D3DXCLEAN_SIMPLIFICATION 3
+
+: MAX_FVF_DECL_SIZE ( -- n ) MAXD3DDECLLENGTH 1 + ; inline
+
+TYPEDEF: int D3DXTANGENT
+CONSTANT: D3DXTANGENT_WRAP_U                  HEX: 01
+CONSTANT: D3DXTANGENT_WRAP_V                  HEX: 02
+CONSTANT: D3DXTANGENT_WRAP_UV                 HEX: 03
+CONSTANT: D3DXTANGENT_DONT_NORMALIZE_PARTIALS HEX: 04
+CONSTANT: D3DXTANGENT_DONT_ORTHOGONALIZE      HEX: 08
+CONSTANT: D3DXTANGENT_ORTHOGONALIZE_FROM_V    HEX: 010
+CONSTANT: D3DXTANGENT_ORTHOGONALIZE_FROM_U    HEX: 020
+CONSTANT: D3DXTANGENT_WEIGHT_BY_AREA          HEX: 040
+CONSTANT: D3DXTANGENT_WEIGHT_EQUAL            HEX: 080
+CONSTANT: D3DXTANGENT_WIND_CW                 HEX: 0100
+CONSTANT: D3DXTANGENT_CALCULATE_NORMALS       HEX: 0200
+CONSTANT: D3DXTANGENT_GENERATE_IN_PLACE       HEX: 0400
+
+TYPEDEF: int D3DXIMT
+CONSTANT: D3DXIMT_WRAP_U  HEX: 01
+CONSTANT: D3DXIMT_WRAP_V  HEX: 02
+CONSTANT: D3DXIMT_WRAP_UV HEX: 03
+
+TYPEDEF: int D3DXUVATLAS
+CONSTANT: D3DXUVATLAS_DEFAULT               HEX: 00
+CONSTANT: D3DXUVATLAS_GEODESIC_FAST         HEX: 01
+CONSTANT: D3DXUVATLAS_GEODESIC_QUALITY      HEX: 02
+
+C-TYPE: ID3DXBaseMesh
+TYPEDEF: ID3DXBaseMesh* LPD3DXBASEMESH
+C-TYPE: ID3DXMesh
+TYPEDEF: ID3DXMesh* LPD3DXMESH
+C-TYPE: ID3DXPMesh
+TYPEDEF: ID3DXPMesh* LPD3DXPMESH
+C-TYPE: ID3DXSPMesh
+TYPEDEF: ID3DXSPMesh* LPD3DXSPMESH
+C-TYPE: ID3DXSkinInfo
+TYPEDEF: ID3DXSkinInfo* LPD3DXSKININFO
+C-TYPE: ID3DXPatchMesh
+TYPEDEF: ID3DXPatchMesh* LPD3DXPATCHMESH
+C-TYPE: ID3DXTextureGutterHelper
+TYPEDEF: ID3DXTextureGutterHelper* LPD3DXTEXTUREGUTTERHELPER
+C-TYPE: ID3DXPRTBuffer
+TYPEDEF: ID3DXPRTBuffer* LPD3DXPRTBUFFER
+
+STRUCT: D3DXATTRIBUTERANGE
+    { AttribId    DWORD }
+    { FaceStart   DWORD }
+    { FaceCount   DWORD }
+    { VertexStart DWORD }
+    { VertexCount DWORD } ;
+TYPEDEF: D3DXATTRIBUTERANGE* LPD3DXATTRIBUTERANGE
+
+STRUCT: D3DXMATERIAL
+    { MatD3D           D3DMATERIAL9 }
+    { pTextureFilename LPSTR        } ;
+TYPEDEF: D3DXMATERIAL* LPD3DXMATERIAL
+
+TYPEDEF: int D3DXEFFECTDEFAULTTYPE
+CONSTANT: D3DXEDT_STRING     HEX: 1
+CONSTANT: D3DXEDT_FLOATS     HEX: 2
+CONSTANT: D3DXEDT_DWORD      HEX: 3
+CONSTANT: D3DXEDT_FORCEDWORD HEX: 7fffffff
+
+STRUCT: D3DXEFFECTDEFAULT
+    { pParamName    LPSTR                 }
+    { Type          D3DXEFFECTDEFAULTTYPE }
+    { NumBytes      DWORD                 }
+    { pValue        LPVOID                } ;
+TYPEDEF: D3DXEFFECTDEFAULT* LPD3DXEFFECTDEFAULT
+
+STRUCT: D3DXEFFECTINSTANCE
+    { pEffectFilename               LPSTR               }
+    { NumDefaults                   DWORD               }
+    { pDefaults                     LPD3DXEFFECTDEFAULT } ;
+TYPEDEF: D3DXEFFECTINSTANCE* LPD3DXEFFECTINSTANCE
+
+STRUCT: D3DXATTRIBUTEWEIGHTS
+    { Position FLOAT    }
+    { Boundary FLOAT    }
+    { Normal   FLOAT    }
+    { Diffuse  FLOAT    }
+    { Specular FLOAT    }
+    { Texcoord FLOAT[8] }
+    { Tangent  FLOAT    }
+    { Binormal FLOAT    } ;
+TYPEDEF: D3DXATTRIBUTEWEIGHTS* LPD3DXATTRIBUTEWEIGHTS
+
+CONSTANT: D3DXWELDEPSILONS_WELDALL             HEX: 1
+CONSTANT: D3DXWELDEPSILONS_WELDPARTIALMATCHES  HEX: 2
+CONSTANT: D3DXWELDEPSILONS_DONOTREMOVEVERTICES HEX: 4
+CONSTANT: D3DXWELDEPSILONS_DONOTSPLIT          HEX: 8
+
+STRUCT: D3DXWELDEPSILONS
+    { Position     FLOAT    }
+    { BlendWeights FLOAT    }
+    { Normal       FLOAT    }
+    { PSize        FLOAT    }
+    { Specular     FLOAT    }
+    { Diffuse      FLOAT    }
+    { Texcoord     FLOAT[8] }
+    { Tangent      FLOAT    }
+    { Binormal     FLOAT    }
+    { TessFactor   FLOAT    } ;
+TYPEDEF: D3DXWELDEPSILONS* LPD3DXWELDEPSILONS
+
+COM-INTERFACE: ID3DXBaseMesh IUnknown {7ED943DD-52E8-40b5-A8D8-76685C406330}
+    HRESULT DrawSubset ( DWORD AttribId )
+    DWORD GetNumFaces ( )
+    DWORD GetNumVertices ( )
+    DWORD GetFVF ( )
+    HRESULT GetDeclaration ( D3DVERTEXELEMENT9* Declaration )
+    DWORD GetNumBytesPerVertex ( )
+    DWORD GetOptions ( )
+    HRESULT GetDevice ( LPDIRECT3DDEVICE9* ppDevice )
+    HRESULT CloneMeshFVF ( DWORD Options, DWORD FVF, LPDIRECT3DDEVICE9 pD3DDevice, LPD3DXMESH* ppCloneMesh )
+    HRESULT CloneMesh ( DWORD Options, D3DVERTEXELEMENT9* pDeclaration, LPDIRECT3DDEVICE9 pD3DDevice, LPD3DXMESH* ppCloneMesh )
+    HRESULT GetVertexBuffer ( LPDIRECT3DVERTEXBUFFER9* ppVB )
+    HRESULT GetIndexBuffer ( LPDIRECT3DINDEXBUFFER9* ppIB )
+    HRESULT LockVertexBuffer ( DWORD Flags, LPVOID* ppData )
+    HRESULT UnlockVertexBuffer ( )
+    HRESULT LockIndexBuffer ( DWORD Flags, LPVOID* ppData )
+    HRESULT UnlockIndexBuffer ( )
+    HRESULT GetAttributeTable ( D3DXATTRIBUTERANGE* pAttribTable, DWORD* pAttribTableSize )
+    HRESULT ConvertPointRepsToAdjacency ( DWORD* pPRep, DWORD* pAdjacency )
+    HRESULT ConvertAdjacencyToPointReps ( DWORD* pAdjacency, DWORD* pPRep )
+    HRESULT GenerateAdjacency ( FLOAT Epsilon, DWORD* pAdjacency )
+    HRESULT UpdateSemantics ( D3DVERTEXELEMENT9* Declaration ) ;
+
+C-TYPE: IStream
+
+COM-INTERFACE: ID3DXMesh ID3DXBaseMesh {4020E5C2-1403-4929-883F-E2E849FAC195}
+    HRESULT LockAttributeBuffer ( DWORD Flags, DWORD** ppData )
+    HRESULT UnlockAttributeBuffer ( )
+    HRESULT Optimize ( DWORD Flags, DWORD* pAdjacencyIn, DWORD* pAdjacencyOut,
+                       DWORD* pFaceRemap, LPD3DXBUFFER* ppVertexRemap,
+                       LPD3DXMESH* ppOptMesh )
+    HRESULT OptimizeInplace ( DWORD Flags, DWORD* pAdjacencyIn, DWORD* pAdjacencyOut,
+                              DWORD* pFaceRemap, LPD3DXBUFFER* ppVertexRemap )
+    HRESULT SetAttributeTable ( D3DXATTRIBUTERANGE* pAttribTable, DWORD cAttribTableSize ) ;
+
+COM-INTERFACE: ID3DXPMesh ID3DXBaseMesh {8875769A-D579-4088-AAEB-534D1AD84E96}
+    HRESULT ClonePMeshFVF ( DWORD Options,
+                            DWORD FVF, LPDIRECT3DDEVICE9 pD3DDevice, LPD3DXPMESH* ppCloneMesh )
+    HRESULT ClonePMesh ( DWORD Options,
+                         D3DVERTEXELEMENT9* pDeclaration, LPDIRECT3DDEVICE9 pD3DDevice, LPD3DXPMESH* ppCloneMesh )
+    HRESULT SetNumFaces ( DWORD Faces )
+    HRESULT SetNumVertices ( DWORD Vertices )
+    DWORD GetMaxFaces ( )
+    DWORD GetMinFaces ( )
+    DWORD GetMaxVertices ( )
+    DWORD GetMinVertices ( )
+    HRESULT Save ( IStream* pStream, D3DXMATERIAL* pMaterials, D3DXEFFECTINSTANCE* pEffectInstances, DWORD NumMaterials )
+    HRESULT Optimize ( DWORD Flags, DWORD* pAdjacencyOut,
+                       DWORD* pFaceRemap, LPD3DXBUFFER* ppVertexRemap,
+                       LPD3DXMESH* ppOptMesh )
+    HRESULT OptimizeBaseLOD ( DWORD Flags, DWORD* pFaceRemap )
+    HRESULT TrimByFaces ( DWORD NewFacesMin, DWORD NewFacesMax, DWORD* rgiFaceRemap, DWORD* rgiVertRemap )
+    HRESULT TrimByVertices ( DWORD NewVerticesMin, DWORD NewVerticesMax, DWORD* rgiFaceRemap, DWORD* rgiVertRemap )
+    HRESULT GetAdjacency ( DWORD* pAdjacency )
+    HRESULT GenerateVertexHistory ( DWORD* pVertexHistory ) ;
+
+COM-INTERFACE: ID3DXSPMesh IUnknown {667EA4C7-F1CD-4386-B523-7C0290B83CC5}
+    DWORD GetNumFaces ( )
+    DWORD GetNumVertices ( )
+    DWORD GetFVF ( )
+    HRESULT GetDeclaration ( D3DVERTEXELEMENT9* Declaration )
+    DWORD GetOptions ( )
+    HRESULT GetDevice ( LPDIRECT3DDEVICE9* ppDevice )
+    HRESULT CloneMeshFVF ( DWORD Options,
+                           DWORD FVF, LPDIRECT3DDEVICE9 pD3DDevice, DWORD* pAdjacencyOut, DWORD* pVertexRemapOut, LPD3DXMESH* ppCloneMesh )
+    HRESULT CloneMesh ( DWORD Options,
+                        D3DVERTEXELEMENT9* pDeclaration, LPDIRECT3DDEVICE9 pD3DDevice, DWORD* pAdjacencyOut, DWORD* pVertexRemapOut, LPD3DXMESH* ppCloneMesh )
+    HRESULT ClonePMeshFVF ( DWORD Options,
+                            DWORD FVF, LPDIRECT3DDEVICE9 pD3DDevice, DWORD* pVertexRemapOut, FLOAT* pErrorsByFace, LPD3DXPMESH* ppCloneMesh )
+    HRESULT ClonePMesh ( DWORD Options,
+                         D3DVERTEXELEMENT9* pDeclaration, LPDIRECT3DDEVICE9 pD3DDevice, DWORD* pVertexRemapOut, FLOAT* pErrorsbyFace, LPD3DXPMESH* ppCloneMesh )
+    HRESULT ReduceFaces ( DWORD Faces )
+    HRESULT ReduceVertices ( DWORD Vertices )
+    DWORD GetMaxFaces ( )
+    DWORD GetMaxVertices ( )
+    HRESULT GetVertexAttributeWeights ( LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights )
+    HRESULT GetVertexWeights ( FLOAT* pVertexWeights ) ;
+
+CONSTANT: D3DXMESHOPT_COMPACT           HEX: 01000000
+CONSTANT: D3DXMESHOPT_ATTRSORT          HEX: 02000000
+CONSTANT: D3DXMESHOPT_VERTEXCACHE       HEX: 04000000
+CONSTANT: D3DXMESHOPT_STRIPREORDER      HEX: 08000000
+CONSTANT: D3DXMESHOPT_IGNOREVERTS       HEX: 10000000
+CONSTANT: D3DXMESHOPT_DONOTSPLIT        HEX: 20000000
+CONSTANT: D3DXMESHOPT_DEVICEINDEPENDENT HEX: 00400000
+
+STRUCT: D3DXBONECOMBINATION
+    { AttribId    DWORD  }
+    { FaceStart   DWORD  }
+    { FaceCount   DWORD  }
+    { VertexStart DWORD  }
+    { VertexCount DWORD  }
+    { BoneId      DWORD* } ;
+TYPEDEF: D3DXBONECOMBINATION* LPD3DXBONECOMBINATION
+
+STRUCT: D3DXPATCHINFO
+    { PatchType D3DXPATCHMESHTYPE }
+    { Degree    D3DDEGREETYPE     }
+    { Basis     D3DBASISTYPE      } ;
+TYPEDEF: D3DXPATCHINFO* LPD3DXPATCHINFO
+
+COM-INTERFACE: ID3DXPatchMesh IUnknown {3CE6CC22-DBF2-44f4-894D-F9C34A337139}
+    DWORD GetNumPatches ( )
+    DWORD GetNumVertices ( )
+    HRESULT GetDeclaration ( D3DVERTEXELEMENT9* Declaration )
+    DWORD GetControlVerticesPerPatch ( )
+    DWORD GetOptions ( )
+    HRESULT GetDevice ( LPDIRECT3DDEVICE9* ppDevice )
+    HRESULT GetPatchInfo ( LPD3DXPATCHINFO PatchInfo )
+    HRESULT GetVertexBuffer ( LPDIRECT3DVERTEXBUFFER9* ppVB )
+    HRESULT GetIndexBuffer ( LPDIRECT3DINDEXBUFFER9* ppIB )
+    HRESULT LockVertexBuffer ( DWORD flags, LPVOID* ppData )
+    HRESULT UnlockVertexBuffer ( )
+    HRESULT LockIndexBuffer ( DWORD flags, LPVOID* ppData )
+    HRESULT UnlockIndexBuffer ( )
+    HRESULT LockAttributeBuffer ( DWORD flags, DWORD** ppData )
+    HRESULT UnlockAttributeBuffer ( )
+    HRESULT GetTessSize ( FLOAT fTessLevel, DWORD Adaptive, DWORD* NumTriangles, DWORD* NumVertices )
+    HRESULT GenerateAdjacency ( FLOAT Tolerance )
+    HRESULT CloneMesh ( DWORD Options, D3DVERTEXELEMENT9* pDecl, LPD3DXPATCHMESH* pMesh )
+    HRESULT Optimize ( DWORD flags )
+    HRESULT SetDisplaceParam (
+        LPDIRECT3DBASETEXTURE9 Texture,
+        D3DTEXTUREFILTERTYPE   MinFilter,
+        D3DTEXTUREFILTERTYPE   MagFilter,
+        D3DTEXTUREFILTERTYPE   MipFilter,
+        D3DTEXTUREADDRESS      Wrap,
+        DWORD                  dwLODBias )
+    HRESULT GetDisplaceParam (
+        LPDIRECT3DBASETEXTURE9* Texture,
+        D3DTEXTUREFILTERTYPE*   MinFilter,
+        D3DTEXTUREFILTERTYPE*   MagFilter,
+        D3DTEXTUREFILTERTYPE*   MipFilter,
+        D3DTEXTUREADDRESS*      Wrap,
+        DWORD*                  dwLODBias )
+    HRESULT Tessellate ( FLOAT fTessLevel, LPD3DXMESH pMesh )
+    HRESULT TessellateAdaptive (
+        D3DXVECTOR4* pTrans,
+        DWORD        dwMaxTessLevel,
+        DWORD        dwMinTessLevel,
+        LPD3DXMESH   pMesh ) ;
+
+COM-INTERFACE: ID3DXSkinInfo IUnknown {11EAA540-F9A6-4d49-AE6A-E19221F70CC4}
+    HRESULT SetBoneInfluence ( DWORD bone, DWORD numInfluences, DWORD* vertices, FLOAT* weights )
+    HRESULT SetBoneVertexInfluence ( DWORD boneNum, DWORD influenceNum, FLOAT weight )
+    DWORD GetNumBoneInfluences ( DWORD bone )
+    HRESULT GetBoneInfluence ( DWORD bone, DWORD* vertices, FLOAT* weights )
+    HRESULT GetBoneVertexInfluence ( DWORD boneNum, DWORD influenceNum, FLOAT* pWeight, DWORD* pVertexNum )
+    HRESULT GetMaxVertexInfluences ( DWORD* maxVertexInfluences )
+    DWORD GetNumBones ( )
+    HRESULT FindBoneVertexInfluenceIndex ( DWORD boneNum, DWORD vertexNum, DWORD* pInfluenceIndex )
+    HRESULT GetMaxFaceInfluences ( LPDIRECT3DINDEXBUFFER9 pIB, DWORD NumFaces, DWORD* maxFaceInfluences )
+    HRESULT SetMinBoneInfluence ( FLOAT MinInfl )
+    FLOAT GetMinBoneInfluence ( )
+    HRESULT SetBoneName ( DWORD Bone, LPCSTR pName )
+    LPCSTR GetBoneName ( DWORD Bone )
+    HRESULT SetBoneOffsetMatrix ( DWORD Bone, D3DXMATRIX* pBoneTransform )
+    LPD3DXMATRIX GetBoneOffsetMatrix ( DWORD Bone )
+    HRESULT Clone ( LPD3DXSKININFO* ppSkinInfo )
+    HRESULT Remap ( DWORD NumVertices, DWORD* pVertexRemap )
+    HRESULT SetFVF ( DWORD FVF )
+    HRESULT SetDeclaration ( D3DVERTEXELEMENT9* pDeclaration )
+    DWORD GetFVF ( )
+    HRESULT GetDeclaration ( D3DVERTEXELEMENT9* Declaration )
+    HRESULT UpdateSkinnedMesh (
+        D3DXMATRIX* pBoneTransforms,
+        D3DXMATRIX* pBoneInvTransposeTransforms,
+        LPCVOID     pVerticesSrc,
+        PVOID       pVerticesDst )
+    HRESULT ConvertToBlendedMesh (
+        LPD3DXMESH    pMesh,
+        DWORD         Options,
+        DWORD*        pAdjacencyIn,
+        LPDWORD       pAdjacencyOut,
+        DWORD*        pFaceRemap,
+        LPD3DXBUFFER* ppVertexRemap,
+        DWORD*        pMaxFaceInfl,
+        DWORD*        pNumBoneCombinations,
+        LPD3DXBUFFER* ppBoneCombinationTable,
+        LPD3DXMESH*   ppMesh )
+    HRESULT ConvertToIndexedBlendedMesh (
+        LPD3DXMESH    pMesh,
+        DWORD         Options,
+        DWORD         paletteSize,
+        DWORD*        pAdjacencyIn,
+        LPDWORD       pAdjacencyOut,
+        DWORD*        pFaceRemap,
+        LPD3DXBUFFER* ppVertexRemap,
+        DWORD*        pMaxVertexInfl,
+        DWORD*        pNumBoneCombinations,
+        LPD3DXBUFFER* ppBoneCombinationTable,
+        LPD3DXMESH*   ppMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateMesh (
+        DWORD              NumFaces,
+        DWORD              NumVertices,
+        DWORD              Options,
+        D3DVERTEXELEMENT9* pDeclaration,
+        LPDIRECT3DDEVICE9  pD3DDevice,
+        LPD3DXMESH*        ppMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateMeshFVF (
+        DWORD             NumFaces,
+        DWORD             NumVertices,
+        DWORD             Options,
+        DWORD             FVF,
+        LPDIRECT3DDEVICE9 pD3DDevice,
+        LPD3DXMESH*       ppMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateSPMesh (
+        LPD3DXMESH            pMesh,
+        DWORD*                pAdjacency,
+        D3DXATTRIBUTEWEIGHTS* pVertexAttributeWeights,
+        FLOAT*                pVertexWeights,
+        LPD3DXSPMESH*         ppSMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXCleanMesh (
+    D3DXCLEANTYPE CleanType,
+    LPD3DXMESH    pMeshIn,
+    DWORD*        pAdjacencyIn,
+    LPD3DXMESH*   ppMeshOut,
+    DWORD*        pAdjacencyOut,
+    LPD3DXBUFFER* ppErrorsAndWarnings ) ;
+
+FUNCTION: HRESULT
+    D3DXValidMesh (
+    LPD3DXMESH    pMeshIn,
+    DWORD*        pAdjacency,
+    LPD3DXBUFFER* ppErrorsAndWarnings ) ;
+
+FUNCTION: HRESULT
+    D3DXGeneratePMesh (
+        LPD3DXMESH            pMesh,
+        DWORD*                pAdjacency,
+        D3DXATTRIBUTEWEIGHTS* pVertexAttributeWeights,
+        FLOAT*                pVertexWeights,
+        DWORD                 MinValue,
+        DWORD                 Options,
+        LPD3DXPMESH*          ppPMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXSimplifyMesh (
+        LPD3DXMESH            pMesh,
+        DWORD*                pAdjacency,
+        D3DXATTRIBUTEWEIGHTS* pVertexAttributeWeights,
+        FLOAT*                pVertexWeights,
+        DWORD                 MinValue,
+        DWORD                 Options,
+        LPD3DXMESH*           ppMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXComputeBoundingSphere (
+        D3DXVECTOR3* pFirstPosition,
+        DWORD        NumVertices,
+        DWORD        dwStride,
+        D3DXVECTOR3* pCenter,
+        FLOAT*       pRadius ) ;
+
+FUNCTION: HRESULT
+    D3DXComputeBoundingBox (
+        D3DXVECTOR3* pFirstPosition,
+        DWORD        NumVertices,
+        DWORD        dwStride,
+        D3DXVECTOR3* pMin,
+        D3DXVECTOR3* pMax ) ;
+
+FUNCTION: HRESULT
+    D3DXComputeNormals (
+        LPD3DXBASEMESH pMesh,
+        DWORD*         pAdjacency ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateBuffer (
+        DWORD         NumBytes,
+        LPD3DXBUFFER* ppBuffer ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadMeshFromXA (
+        LPCSTR            pFilename,
+        DWORD             Options,
+        LPDIRECT3DDEVICE9 pD3DDevice,
+        LPD3DXBUFFER*     ppAdjacency,
+        LPD3DXBUFFER*     ppMaterials,
+        LPD3DXBUFFER*     ppEffectInstances,
+        DWORD*            pNumMaterials,
+        LPD3DXMESH*       ppMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadMeshFromXW (
+        LPCWSTR           pFilename,
+        DWORD             Options,
+        LPDIRECT3DDEVICE9 pD3DDevice,
+        LPD3DXBUFFER*     ppAdjacency,
+        LPD3DXBUFFER*     ppMaterials,
+        LPD3DXBUFFER*     ppEffectInstances,
+        DWORD*            pNumMaterials,
+        LPD3DXMESH*       ppMesh ) ;
+
+ALIAS: D3DXLoadMeshFromX D3DXLoadMeshFromXW
+
+FUNCTION: HRESULT
+    D3DXLoadMeshFromXInMemory (
+        LPCVOID           Memory,
+        DWORD             SizeOfMemory,
+        DWORD             Options,
+        LPDIRECT3DDEVICE9 pD3DDevice,
+        LPD3DXBUFFER*     ppAdjacency,
+        LPD3DXBUFFER*     ppMaterials,
+        LPD3DXBUFFER*     ppEffectInstances,
+        DWORD*            pNumMaterials,
+        LPD3DXMESH*       ppMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadMeshFromXResource (
+        HMODULE           Module,
+        LPCSTR            Name,
+        LPCSTR            Type,
+        DWORD             Options,
+        LPDIRECT3DDEVICE9 pD3DDevice,
+        LPD3DXBUFFER*     ppAdjacency,
+        LPD3DXBUFFER*     ppMaterials,
+        LPD3DXBUFFER*     ppEffectInstances,
+        DWORD*            pNumMaterials,
+        LPD3DXMESH*       ppMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXSaveMeshToXA (
+        LPCSTR              pFilename,
+        LPD3DXMESH          pMesh,
+        DWORD*              pAdjacency,
+        D3DXMATERIAL*       pMaterials,
+        D3DXEFFECTINSTANCE* pEffectInstances,
+        DWORD               NumMaterials,
+        DWORD               Format ) ;
+
+FUNCTION: HRESULT
+    D3DXSaveMeshToXW (
+        LPCWSTR             pFilename,
+        LPD3DXMESH          pMesh,
+        DWORD*              pAdjacency,
+        D3DXMATERIAL*       pMaterials,
+        D3DXEFFECTINSTANCE* pEffectInstances,
+        DWORD               NumMaterials,
+        DWORD               Format ) ;
+
+ALIAS: D3DXSaveMeshToX D3DXSaveMeshToXW
+
+FUNCTION: HRESULT
+    D3DXCreatePMeshFromStream (
+        IStream*          pStream,
+        DWORD             Options,
+        LPDIRECT3DDEVICE9 pD3DDevice,
+        LPD3DXBUFFER*     ppMaterials,
+        LPD3DXBUFFER*     ppEffectInstances,
+        DWORD*            pNumMaterials,
+        LPD3DXPMESH*      ppPMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateSkinInfo (
+        DWORD              NumVertices,
+        D3DVERTEXELEMENT9* pDeclaration,
+        DWORD              NumBones,
+        LPD3DXSKININFO*    ppSkinInfo ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateSkinInfoFVF (
+        DWORD           NumVertices,
+        DWORD           FVF,
+        DWORD           NumBones,
+        LPD3DXSKININFO* ppSkinInfo ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadMeshFromXof (
+        LPD3DXFILEDATA    pxofMesh,
+        DWORD             Options,
+        LPDIRECT3DDEVICE9 pD3DDevice,
+        LPD3DXBUFFER*     ppAdjacency,
+        LPD3DXBUFFER*     ppMaterials,
+        LPD3DXBUFFER*     ppEffectInstances,
+        DWORD*            pNumMaterials,
+        LPD3DXMESH*       ppMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadSkinMeshFromXof (
+        LPD3DXFILEDATA    pxofMesh,
+        DWORD             Options,
+        LPDIRECT3DDEVICE9 pD3DDevice,
+        LPD3DXBUFFER*     ppAdjacency,
+        LPD3DXBUFFER*     ppMaterials,
+        LPD3DXBUFFER*     ppEffectInstances,
+        DWORD*            pMatOut,
+        LPD3DXSKININFO*   ppSkinInfo,
+        LPD3DXMESH*       ppMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateSkinInfoFromBlendedMesh (
+        LPD3DXBASEMESH       pMesh,
+        DWORD                NumBones,
+        D3DXBONECOMBINATION* pBoneCombinationTable,
+        LPD3DXSKININFO*      ppSkinInfo ) ;
+        
+FUNCTION: HRESULT
+    D3DXTessellateNPatches (
+        LPD3DXMESH    pMeshIn,
+        DWORD*        pAdjacencyIn,
+        FLOAT         NumSegs,
+        BOOL          QuadraticInterpNormals,
+        LPD3DXMESH*   ppMeshOut,
+        LPD3DXBUFFER* ppAdjacencyOut ) ;
+
+FUNCTION: HRESULT
+    D3DXGenerateOutputDecl (
+        D3DVERTEXELEMENT9* pOutput,
+        D3DVERTEXELEMENT9* pInput ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadPatchMeshFromXof (
+        LPD3DXFILEDATA    pXofObjMesh,
+        DWORD             Options,
+        LPDIRECT3DDEVICE9 pD3DDevice,
+        LPD3DXBUFFER*     ppMaterials,
+        LPD3DXBUFFER*     ppEffectInstances,
+        PDWORD            pNumMaterials,
+        LPD3DXPATCHMESH*  ppMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXRectPatchSize (
+        FLOAT* pfNumSegs,
+        DWORD* pdwTriangles,
+        DWORD* pdwVertices ) ;
+
+FUNCTION: HRESULT
+    D3DXTriPatchSize (
+        FLOAT* pfNumSegs,
+        DWORD* pdwTriangles,
+        DWORD* pdwVertices ) ;
+
+FUNCTION: HRESULT
+    D3DXTessellateRectPatch (
+        LPDIRECT3DVERTEXBUFFER9 pVB,
+        FLOAT*                  pNumSegs,
+        D3DVERTEXELEMENT9*      pdwInDecl,
+        D3DRECTPATCH_INFO*      pRectPatchInfo,
+        LPD3DXMESH              pMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXTessellateTriPatch (
+      LPDIRECT3DVERTEXBUFFER9 pVB,
+      FLOAT*                  pNumSegs,
+      D3DVERTEXELEMENT9*      pInDecl,
+      D3DTRIPATCH_INFO*       pTriPatchInfo,
+      LPD3DXMESH              pMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateNPatchMesh (
+        LPD3DXMESH       pMeshSysMem,
+        LPD3DXPATCHMESH* pPatchMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXCreatePatchMesh (
+        D3DXPATCHINFO*     pInfo,
+        DWORD              dwNumPatches,
+        DWORD              dwNumVertices,
+        DWORD              dwOptions,
+        D3DVERTEXELEMENT9* pDecl,
+        LPDIRECT3DDEVICE9  pD3DDevice,
+        LPD3DXPATCHMESH*   pPatchMesh ) ;
+
+FUNCTION: HRESULT
+    D3DXValidPatchMesh (
+        LPD3DXPATCHMESH pMesh,
+        DWORD*          dwcDegenerateVertices,
+        DWORD*          dwcDegeneratePatches,
+        LPD3DXBUFFER*   ppErrorsAndWarnings ) ;
+
+FUNCTION: UINT
+    D3DXGetFVFVertexSize ( DWORD FVF ) ;
+
+FUNCTION: UINT
+    D3DXGetDeclVertexSize ( D3DVERTEXELEMENT9* pDecl, DWORD Stream ) ;
+
+FUNCTION: UINT
+    D3DXGetDeclLength ( D3DVERTEXELEMENT9* pDecl ) ;
+
+FUNCTION: HRESULT
+    D3DXDeclaratorFromFVF (
+        DWORD              FVF,
+        D3DVERTEXELEMENT9* pDeclarator ) ;
+
+FUNCTION: HRESULT
+    D3DXFVFFromDeclarator (
+        D3DVERTEXELEMENT9* pDeclarator,
+        DWORD*             pFVF ) ;
+
+FUNCTION: HRESULT
+    D3DXWeldVertices (
+        LPD3DXMESH        pMesh,
+        DWORD             Flags,
+        D3DXWELDEPSILONS* pEpsilons,
+        DWORD*            pAdjacencyIn,
+        DWORD*            pAdjacencyOut,
+        DWORD*            pFaceRemap,
+        LPD3DXBUFFER*     ppVertexRemap ) ;
+
+STRUCT: D3DXINTERSECTINFO
+    { FaceIndex DWORD }
+    { U         FLOAT }
+    { V         FLOAT }
+    { Dist      FLOAT } ;
+TYPEDEF: D3DXINTERSECTINFO* LPD3DXINTERSECTINFO
+
+FUNCTION: HRESULT
+    D3DXIntersect (
+        LPD3DXBASEMESH pMesh,
+        D3DXVECTOR3*   pRayPos,
+        D3DXVECTOR3*   pRayDir,
+        BOOL*          pHit,
+        DWORD*         pFaceIndex,
+        FLOAT*         pU,
+        FLOAT*         pV,
+        FLOAT*         pDist,
+        LPD3DXBUFFER*  ppAllHits,
+        DWORD*         pCountOfHits ) ;
+
+FUNCTION: HRESULT
+    D3DXIntersectSubset (
+        LPD3DXBASEMESH pMesh,
+        DWORD          AttribId,
+        D3DXVECTOR3*   pRayPos,
+        D3DXVECTOR3*   pRayDir,
+        BOOL*          pHit,
+        DWORD*         pFaceIndex,
+        FLOAT*         pU,
+        FLOAT*         pV,
+        FLOAT*         pDist,
+        LPD3DXBUFFER*  ppAllHits,
+        DWORD*         pCountOfHits ) ;
+
+FUNCTION: HRESULT D3DXSplitMesh (
+    LPD3DXMESH    pMeshIn,
+    DWORD*        pAdjacencyIn,
+    DWORD         MaxSize,
+    DWORD         Options,
+    DWORD*        pMeshesOut,
+    LPD3DXBUFFER* ppMeshArrayOut,
+    LPD3DXBUFFER* ppAdjacencyArrayOut,
+    LPD3DXBUFFER* ppFaceRemapArrayOut,
+    LPD3DXBUFFER* ppVertRemapArrayOut ) ;
+
+FUNCTION: BOOL D3DXIntersectTri (
+    D3DXVECTOR3* p0,
+    D3DXVECTOR3* p1,
+    D3DXVECTOR3* p2,
+    D3DXVECTOR3* pRayPos,
+    D3DXVECTOR3* pRayDir,
+    FLOAT*       pU,
+    FLOAT*       pV,
+    FLOAT*       pDist ) ;
+
+FUNCTION: BOOL
+    D3DXSphereBoundProbe (
+        D3DXVECTOR3* pCenter,
+        FLOAT        Radius,
+        D3DXVECTOR3* pRayPosition,
+        D3DXVECTOR3* pRayDirection ) ;
+
+FUNCTION: BOOL
+    D3DXBoxBoundProbe (
+        D3DXVECTOR3* pMin,
+        D3DXVECTOR3* pMax,
+        D3DXVECTOR3* pRayPosition,
+        D3DXVECTOR3* pRayDirection ) ;
+
+FUNCTION: HRESULT D3DXComputeTangentFrame (
+    ID3DXMesh* pMesh,
+    DWORD      dwOptions ) ;
+
+FUNCTION: HRESULT D3DXComputeTangentFrameEx (
+    ID3DXMesh*    pMesh,
+    DWORD         dwTextureInSemantic,
+    DWORD         dwTextureInIndex,
+    DWORD         dwUPartialOutSemantic,
+    DWORD         dwUPartialOutIndex,
+    DWORD         dwVPartialOutSemantic,
+    DWORD         dwVPartialOutIndex,
+    DWORD         dwNormalOutSemantic,
+    DWORD         dwNormalOutIndex,
+    DWORD         dwOptions,
+    DWORD*        pdwAdjacency,
+    FLOAT         fPartialEdgeThreshold,
+    FLOAT         fSingularPointThreshold,
+    FLOAT         fNormalEdgeThreshold,
+    ID3DXMesh**   ppMeshOut,
+    ID3DXBuffer** ppVertexMapping ) ;
+
+FUNCTION: HRESULT D3DXComputeTangent (
+    LPD3DXMESH Mesh,
+    DWORD      TexStage,
+    DWORD      TangentIndex,
+    DWORD      BinormIndex,
+    DWORD      Wrap,
+    DWORD*     pAdjacency ) ;
+
+C-TYPE: D3DXUVATLASCB 
+TYPEDEF: D3DXUVATLASCB* LPD3DXUVATLASCB 
+
+FUNCTION: HRESULT D3DXUVAtlasCreate (
+    LPD3DXMESH      pMesh,
+    UINT            uMaxChartNumber,
+    FLOAT           fMaxStretch,
+    UINT            uWidth,
+    UINT            uHeight,
+    FLOAT           fGutter,
+    DWORD           dwTextureIndex,
+    DWORD*          pdwAdjacency,
+    DWORD*          pdwFalseEdgeAdjacency,
+    FLOAT*          pfIMTArray,
+    LPD3DXUVATLASCB pStatusCallback,
+    FLOAT           fCallbackFrequency,
+    LPVOID          pUserContext,
+    DWORD           dwOptions,
+    LPD3DXMESH*     ppMeshOut,
+    LPD3DXBUFFER*   ppFacePartitioning,
+    LPD3DXBUFFER*   ppVertexRemapArray,
+    FLOAT*          pfMaxStretchOut,
+    UINT*           puNumChartsOut ) ;
+
+FUNCTION: HRESULT D3DXUVAtlasPartition (
+    LPD3DXMESH      pMesh,
+    UINT            uMaxChartNumber,
+    FLOAT           fMaxStretch,
+    DWORD           dwTextureIndex,
+    DWORD*          pdwAdjacency,
+    DWORD*          pdwFalseEdgeAdjacency,
+    FLOAT*          pfIMTArray,
+    LPD3DXUVATLASCB pStatusCallback,
+    FLOAT           fCallbackFrequency,
+    LPVOID          pUserContext,
+    DWORD           dwOptions,
+    LPD3DXMESH*     ppMeshOut,
+    LPD3DXBUFFER*   ppFacePartitioning,
+    LPD3DXBUFFER*   ppVertexRemapArray,
+    LPD3DXBUFFER*   ppPartitionResultAdjacency,
+    FLOAT*          pfMaxStretchOut,
+    UINT*           puNumChartsOut ) ;
+
+FUNCTION: HRESULT D3DXUVAtlasPack (
+    ID3DXMesh*      pMesh,
+    UINT            uWidth,
+    UINT            uHeight,
+    FLOAT           fGutter,
+    DWORD           dwTextureIndex,
+    DWORD*          pdwPartitionResultAdjacency,
+    LPD3DXUVATLASCB pStatusCallback,
+    FLOAT           fCallbackFrequency,
+    LPVOID          pUserContext,
+    DWORD           dwOptions,
+    LPD3DXBUFFER    pFacePartitioning ) ;
+    
+TYPEDEF: void* LPD3DXIMTSIGNALCALLBACK
+
+FUNCTION: HRESULT D3DXComputeIMTFromPerVertexSignal (
+    LPD3DXMESH      pMesh,
+    FLOAT*          pfVertexSignal,
+    UINT            uSignalDimension,
+    UINT            uSignalStride,
+    DWORD           dwOptions,
+    LPD3DXUVATLASCB pStatusCallback,
+    LPVOID          pUserContext,
+    LPD3DXBUFFER*   ppIMTData ) ;
+
+FUNCTION: HRESULT D3DXComputeIMTFromSignal (
+    LPD3DXMESH              pMesh,
+    DWORD                   dwTextureIndex,
+    UINT                    uSignalDimension,
+    FLOAT                   fMaxUVDistance,
+    DWORD                   dwOptions,
+    LPD3DXIMTSIGNALCALLBACK pSignalCallback,
+    VOID*                   pUserData,
+    LPD3DXUVATLASCB         pStatusCallback,
+    LPVOID                  pUserContext,
+    LPD3DXBUFFER*           ppIMTData ) ;
+
+FUNCTION: HRESULT D3DXComputeIMTFromTexture (
+    LPD3DXMESH         pMesh,
+    LPDIRECT3DTEXTURE9 pTexture,
+    DWORD              dwTextureIndex,
+    DWORD              dwOptions,
+    LPD3DXUVATLASCB    pStatusCallback,
+    LPVOID             pUserContext,
+    LPD3DXBUFFER*      ppIMTData ) ;
+
+FUNCTION: HRESULT D3DXComputeIMTFromPerTexelSignal (
+    LPD3DXMESH      pMesh,
+    DWORD           dwTextureIndex,
+    FLOAT*          pfTexelSignal,
+    UINT            uWidth,
+    UINT            uHeight,
+    UINT            uSignalDimension,
+    UINT            uComponents,
+    DWORD           dwOptions,
+    LPD3DXUVATLASCB pStatusCallback,
+    LPVOID          pUserContext,
+    LPD3DXBUFFER*   ppIMTData ) ;
+
+FUNCTION: HRESULT
+    D3DXConvertMeshSubsetToSingleStrip (
+        LPD3DXBASEMESH          MeshIn,
+        DWORD                   AttribId,
+        DWORD                   IBOptions,
+        LPDIRECT3DINDEXBUFFER9* ppIndexBuffer,
+        DWORD*                  pNumIndices ) ;
+
+FUNCTION: HRESULT
+    D3DXConvertMeshSubsetToStrips (
+        LPD3DXBASEMESH          MeshIn,
+        DWORD                   AttribId,
+        DWORD                   IBOptions,
+        LPDIRECT3DINDEXBUFFER9* ppIndexBuffer,
+        DWORD*                  pNumIndices,
+        LPD3DXBUFFER*           ppStripLengths,
+        DWORD*                  pNumStrips ) ;
+
+FUNCTION: HRESULT
+    D3DXOptimizeFaces (
+        LPCVOID pbIndices,
+        UINT    cFaces,
+        UINT    cVertices,
+        BOOL    b32BitIndices,
+        DWORD*  pFaceRemap ) ;
+
+FUNCTION: HRESULT
+    D3DXOptimizeVertices (
+        LPCVOID pbIndices,
+        UINT    cFaces,
+        UINT    cVertices,
+        BOOL    b32BitIndices,
+        DWORD*  pVertexRemap ) ;
+
+TYPEDEF: int D3DXSHCOMPRESSQUALITYTYPE
+CONSTANT: D3DXSHCQUAL_FASTLOWQUALITY  1
+CONSTANT: D3DXSHCQUAL_SLOWHIGHQUALITY 2
+CONSTANT: D3DXSHCQUAL_FORCE_DWORD     HEX: 7fffffff
+
+TYPEDEF: int D3DXSHGPUSIMOPT
+CONSTANT: D3DXSHGPUSIMOPT_SHADOWRES256  1
+CONSTANT: D3DXSHGPUSIMOPT_SHADOWRES512  0
+CONSTANT: D3DXSHGPUSIMOPT_SHADOWRES1024 2
+CONSTANT: D3DXSHGPUSIMOPT_SHADOWRES2048 3
+CONSTANT: D3DXSHGPUSIMOPT_HIGHQUALITY   4
+CONSTANT: D3DXSHGPUSIMOPT_FORCE_DWORD   HEX: 7fffffff
+
+STRUCT: D3DXSHMATERIAL
+    { Diffuse                           D3DCOLORVALUE }
+    { bMirror                           BOOL          }
+    { bSubSurf                          BOOL          }
+    { RelativeIndexOfRefraction         FLOAT         }
+    { Absorption                        D3DCOLORVALUE }
+    { ReducedScattering                 D3DCOLORVALUE } ;
+
+STRUCT: D3DXSHPRTSPLITMESHVERTDATA
+    { uVertRemap   UINT  }
+    { uSubCluster  UINT  }
+    { ucVertStatus UCHAR } ;
+
+STRUCT: D3DXSHPRTSPLITMESHCLUSTERDATA
+    { uVertStart     UINT }
+    { uVertLength    UINT }
+    { uFaceStart     UINT }
+    { uFaceLength    UINT }
+    { uClusterStart  UINT }
+    { uClusterLength UINT } ;
+
+TYPEDEF: void* LPD3DXSHPRTSIMCB
+
+C-TYPE: ID3DXTextureGutterHelper
+C-TYPE: ID3DXPRTBuffer
+
+COM-INTERFACE: ID3DXPRTBuffer IUnknown {F1827E47-00A8-49cd-908C-9D11955F8728}
+    UINT GetNumSamples ( )
+    UINT GetNumCoeffs ( )
+    UINT GetNumChannels ( )
+    BOOL IsTexture ( )
+    UINT GetWidth ( )
+    UINT GetHeight ( )
+    HRESULT Resize ( UINT NewSize )
+    HRESULT LockBuffer ( UINT Start, UINT NumSamples, FLOAT** ppData )
+    HRESULT UnlockBuffer ( )
+    HRESULT ScaleBuffer ( FLOAT Scale )
+    HRESULT AddBuffer ( LPD3DXPRTBUFFER pBuffer )
+    HRESULT AttachGH ( LPD3DXTEXTUREGUTTERHELPER f )
+    HRESULT ReleaseGH ( )
+    HRESULT EvalGH ( )
+    HRESULT ExtractTexture ( UINT Channel, UINT StartCoefficient,
+                             UINT NumCoefficients, LPDIRECT3DTEXTURE9 pTexture )
+    HRESULT ExtractToMesh ( UINT NumCoefficients, D3DDECLUSAGE Usage, UINT UsageIndexStart,
+                            LPD3DXMESH pScene ) ;
+
+C-TYPE: ID3DXPRTCompBuffer
+TYPEDEF: ID3DXPRTCompBuffer* LPD3DXPRTCOMPBUFFER;
+
+COM-INTERFACE: ID3DXPRTCompBuffer IUnknown {A758D465-FE8D-45ad-9CF0-D01E56266A07}
+    UINT GetNumSamples ( )
+    UINT GetNumCoeffs ( )
+    UINT GetNumChannels ( )
+    BOOL IsTexture ( )
+    UINT GetWidth ( )
+    UINT GetHeight ( )
+    UINT GetNumClusters ( )
+    UINT GetNumPCA ( )
+    HRESULT NormalizeData ( )
+    HRESULT ExtractBasis ( UINT Cluster, FLOAT* pClusterBasis )
+    HRESULT ExtractClusterIDs ( UINT* pClusterIDs )
+    HRESULT ExtractPCA ( UINT StartPCA, UINT NumExtract, FLOAT* pPCACoefficients )
+    HRESULT ExtractTexture ( UINT StartPCA, UINT NumpPCA,
+                             LPDIRECT3DTEXTURE9 pTexture )
+    HRESULT ExtractToMesh ( UINT NumPCA, D3DDECLUSAGE Usage, UINT UsageIndexStart,
+                            LPD3DXMESH pScene ) ;
+
+COM-INTERFACE: ID3DXTextureGutterHelper IUnknown {838F01EC-9729-4527-AADB-DF70ADE7FEA9}
+    UINT GetWidth ( )
+    UINT GetHeight ( )
+    HRESULT ApplyGuttersFLOAT ( FLOAT* pDataIn, UINT NumCoeffs, UINT Width, UINT Height )
+    HRESULT ApplyGuttersTex ( LPDIRECT3DTEXTURE9 pTexture )
+    HRESULT ApplyGuttersPRT ( LPD3DXPRTBUFFER pBuffer )
+    HRESULT ResampleTex (
+        LPDIRECT3DTEXTURE9 pTextureIn,
+        LPD3DXMESH         pMeshIn,
+        D3DDECLUSAGE       Usage,
+        UINT               UsageIndex,
+        LPDIRECT3DTEXTURE9 pTextureOut )
+    HRESULT GetFaceMap ( UINT* pFaceData )
+    HRESULT GetBaryMap ( D3DXVECTOR2* pBaryData )
+    HRESULT GetTexelMap ( D3DXVECTOR2* pTexelData )
+    HRESULT GetGutterMap ( BYTE* pGutterData )
+    HRESULT SetFaceMap ( UINT* pFaceData )
+    HRESULT SetBaryMap ( D3DXVECTOR2* pBaryData )
+    HRESULT SetTexelMap ( D3DXVECTOR2* pTexelData )
+    HRESULT SetGutterMap ( BYTE* pGutterData ) ;
+
+C-TYPE: ID3DXPRTEngine
+TYPEDEF: ID3DXPRTEngine* LPD3DXPRTENGINE
+
+COM-INTERFACE: ID3DXPRTEngine IUnknown {683A4278-CD5F-4d24-90AD-C4E1B6855D53}
+    HRESULT SetMeshMaterials ( D3DXSHMATERIAL** ppMaterials, UINT NumMeshes,
+                               UINT NumChannels, BOOL bSetAlbedo, FLOAT fLengthScale )
+    HRESULT SetPerVertexAlbedo ( VOID* pDataIn, UINT NumChannels, UINT Stride )
+    HRESULT SetPerTexelAlbedo ( LPDIRECT3DTEXTURE9 pAlbedoTexture,
+                                UINT NumChannels,
+                                LPD3DXTEXTUREGUTTERHELPER pGH )
+    HRESULT GetVertexAlbedo ( D3DXCOLOR* pVertColors, UINT NumVerts )
+    HRESULT SetPerTexelNormal ( LPDIRECT3DTEXTURE9 pNormalTexture )
+    HRESULT ExtractPerVertexAlbedo ( LPD3DXMESH pMesh,
+                                     D3DDECLUSAGE Usage,
+                                     UINT NumChannels )
+    HRESULT ResampleBuffer ( LPD3DXPRTBUFFER pBufferIn, LPD3DXPRTBUFFER pBufferOut )
+    HRESULT GetAdaptedMesh ( LPDIRECT3DDEVICE9 pD3DDevice, UINT* pFaceRemap, UINT* pVertRemap, FLOAT* pfVertWeights, LPD3DXMESH* ppMesh )
+    UINT GetNumVerts ( )
+    UINT GetNumFaces ( )
+    HRESULT SetMinMaxIntersection ( FLOAT fMin, FLOAT fMax )
+    HRESULT RobustMeshRefine ( FLOAT MinEdgeLength, UINT MaxSubdiv )
+    HRESULT SetSamplingInfo ( UINT NumRays,
+                              BOOL UseSphere,
+                              BOOL UseCosine,
+                              BOOL Adaptive,
+                              FLOAT AdaptiveThresh )
+    HRESULT ComputeDirectLightingSH ( UINT SHOrder,
+                                      LPD3DXPRTBUFFER pDataOut )
+    HRESULT ComputeDirectLightingSHAdaptive ( UINT SHOrder,
+                                              FLOAT AdaptiveThresh,
+                                              FLOAT MinEdgeLength,
+                                              UINT MaxSubdiv,
+                                              LPD3DXPRTBUFFER pDataOut )
+    HRESULT ComputeDirectLightingSHGPU ( LPDIRECT3DDEVICE9 pD3DDevice,
+                                         UINT Flags,
+                                         UINT SHOrder,
+                                         FLOAT ZBias,
+                                         FLOAT ZAngleBias,
+                                         LPD3DXPRTBUFFER pDataOut )
+    HRESULT ComputeSS ( LPD3DXPRTBUFFER pDataIn,
+                        LPD3DXPRTBUFFER pDataOut, LPD3DXPRTBUFFER pDataTotal )
+    HRESULT ComputeSSAdaptive ( LPD3DXPRTBUFFER pDataIn,
+                                FLOAT AdaptiveThresh,
+                                FLOAT MinEdgeLength,
+                                UINT MaxSubdiv,
+                                LPD3DXPRTBUFFER pDataOut, LPD3DXPRTBUFFER pDataTotal )
+    HRESULT ComputeBounce ( LPD3DXPRTBUFFER pDataIn,
+                            LPD3DXPRTBUFFER pDataOut,
+                            LPD3DXPRTBUFFER pDataTotal )
+    HRESULT ComputeBounceAdaptive ( LPD3DXPRTBUFFER pDataIn,
+                                    FLOAT AdaptiveThresh,
+                                    FLOAT MinEdgeLength,
+                                    UINT MaxSubdiv,
+                                    LPD3DXPRTBUFFER pDataOut,
+                                    LPD3DXPRTBUFFER pDataTotal )
+    HRESULT ComputeVolumeSamplesDirectSH ( UINT SHOrderIn,
+                                           UINT SHOrderOut,
+                                           UINT NumVolSamples,
+                                           D3DXVECTOR3* pSampleLocs,
+                                           LPD3DXPRTBUFFER pDataOut )
+    HRESULT ComputeVolumeSamples ( LPD3DXPRTBUFFER pSurfDataIn,
+                                   UINT SHOrder,
+                                    UINT NumVolSamples,
+                                   D3DXVECTOR3* pSampleLocs,
+                                   LPD3DXPRTBUFFER pDataOut )
+    HRESULT ComputeSurfSamplesDirectSH ( UINT SHOrder,
+                                         UINT NumSamples,
+                                         D3DXVECTOR3* pSampleLocs,
+                                         D3DXVECTOR3* pSampleNorms,
+                                         LPD3DXPRTBUFFER pDataOut )
+    HRESULT ComputeSurfSamplesBounce ( LPD3DXPRTBUFFER pSurfDataIn,
+                                       UINT NumSamples,
+                                       D3DXVECTOR3* pSampleLocs,
+                                       D3DXVECTOR3* pSampleNorms,
+                                       LPD3DXPRTBUFFER pDataOut,
+                                       LPD3DXPRTBUFFER pDataTotal )
+    HRESULT FreeSSData ( )
+    HRESULT FreeBounceData ( )
+    HRESULT ComputeLDPRTCoeffs ( LPD3DXPRTBUFFER pDataIn,
+                                 UINT SHOrder,
+                                 D3DXVECTOR3* pNormOut,
+                                 LPD3DXPRTBUFFER pDataOut )
+    HRESULT ScaleMeshChunk ( UINT uMeshChunk, FLOAT fScale, LPD3DXPRTBUFFER pDataOut )
+    HRESULT MultiplyAlbedo ( LPD3DXPRTBUFFER pDataOut )
+    HRESULT SetCallBack ( LPD3DXSHPRTSIMCB pCB, FLOAT Frequency,  LPVOID lpUserContext )
+    BOOL ShadowRayIntersects ( D3DXVECTOR3* pRayPos, D3DXVECTOR3* pRayDir )
+    BOOL ClosestRayIntersects ( D3DXVECTOR3* pRayPos, D3DXVECTOR3* pRayDir,
+                                DWORD* pFaceIndex, FLOAT* pU, FLOAT* pV, FLOAT* pDist ) ;
+
+FUNCTION: HRESULT
+    D3DXCreatePRTBuffer (
+        UINT             NumSamples,
+        UINT             NumCoeffs,
+        UINT             NumChannels,
+        LPD3DXPRTBUFFER* ppBuffer ) ;
+
+FUNCTION: HRESULT
+    D3DXCreatePRTBufferTex (
+        UINT             Width,
+        UINT             Height,
+        UINT             NumCoeffs,
+        UINT             NumChannels,
+        LPD3DXPRTBUFFER* ppBuffer ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadPRTBufferFromFileA (
+        LPCSTR                 pFilename,
+        LPD3DXPRTBUFFER*       ppBuffer ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadPRTBufferFromFileW (
+        LPCWSTR                pFilename,
+        LPD3DXPRTBUFFER*       ppBuffer ) ;
+
+ALIAS: D3DXLoadPRTBufferFromFile D3DXLoadPRTBufferFromFileW
+
+FUNCTION: HRESULT
+    D3DXSavePRTBufferToFileA (
+        LPCSTR          pFileName,
+        LPD3DXPRTBUFFER pBuffer ) ;
+
+FUNCTION: HRESULT
+    D3DXSavePRTBufferToFileW (
+        LPCWSTR         pFileName,
+        LPD3DXPRTBUFFER pBuffer ) ;
+
+ALIAS: D3DXSavePRTBufferToFile D3DXSavePRTBufferToFileW
+
+C-TYPE: D3DXPRTCOMPBUFFER
+TYPEDEF: D3DXPRTCOMPBUFFER* LPD3DXPRTCOMPBUFFER
+    
+FUNCTION: HRESULT
+    D3DXLoadPRTCompBufferFromFileA (
+        LPCSTR                     pFilename,
+        LPD3DXPRTCOMPBUFFER*       ppBuffer ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadPRTCompBufferFromFileW (
+        LPCWSTR                    pFilename,
+        LPD3DXPRTCOMPBUFFER*       ppBuffer ) ;
+
+ALIAS: D3DXLoadPRTCompBufferFromFile D3DXLoadPRTCompBufferFromFileW
+
+FUNCTION: HRESULT
+    D3DXSavePRTCompBufferToFileA (
+        LPCSTR              pFileName,
+        LPD3DXPRTCOMPBUFFER pBuffer ) ;
+
+FUNCTION: HRESULT
+    D3DXSavePRTCompBufferToFileW (
+        LPCWSTR             pFileName,
+        LPD3DXPRTCOMPBUFFER pBuffer ) ;
+
+ALIAS: D3DXSavePRTCompBufferToFile D3DXSavePRTCompBufferToFileW
+
+FUNCTION: HRESULT
+    D3DXCreatePRTCompBuffer (
+        D3DXSHCOMPRESSQUALITYTYPE Quality,
+        UINT                      NumClusters,
+        UINT                      NumPCA,
+        LPD3DXSHPRTSIMCB          pCB,
+        LPVOID                    lpUserContext,
+        LPD3DXPRTBUFFER           pBufferIn,
+        LPD3DXPRTCOMPBUFFER*      ppBufferOut ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateTextureGutterHelper (
+        UINT                       Width,
+        UINT                       Height,
+        LPD3DXMESH                 pMesh,
+        FLOAT                      GutterSize,
+        LPD3DXTEXTUREGUTTERHELPER* ppBuffer ) ;
+
+FUNCTION: HRESULT
+    D3DXCreatePRTEngine (
+        LPD3DXMESH       pMesh,
+        DWORD*           pAdjacency,
+        BOOL             ExtractUVs,
+        LPD3DXMESH       pBlockerMesh,
+        LPD3DXPRTENGINE* ppEngine ) ;
+
+FUNCTION: HRESULT
+    D3DXConcatenateMeshes (
+        LPD3DXMESH*        ppMeshes,
+        UINT               NumMeshes,
+        DWORD              Options,
+        D3DXMATRIX*        pGeomXForms,
+        D3DXMATRIX*        pTextureXForms,
+        D3DVERTEXELEMENT9* pDecl,
+        LPDIRECT3DDEVICE9  pD3DDevice,
+        LPD3DXMESH*        ppMeshOut ) ;
+
+FUNCTION: HRESULT
+    D3DXSHPRTCompSuperCluster (
+        UINT*      pClusterIDs,
+        LPD3DXMESH pScene,
+        UINT       MaxNumClusters,
+        UINT       NumClusters,
+        UINT*      pSuperClusterIDs,
+        UINT*      pNumSuperClusters ) ;
+
+FUNCTION: HRESULT
+    D3DXSHPRTCompSplitMeshSC (
+        UINT*                          pClusterIDs,
+        UINT                           NumVertices,
+        UINT                           NumClusters,
+        UINT*                          pSuperClusterIDs,
+        UINT                           NumSuperClusters,
+        LPVOID                         pInputIB,
+        BOOL                           InputIBIs32Bit,
+        UINT                           NumFaces,
+        LPD3DXBUFFER*                  ppIBData,
+        UINT*                          pIBDataLength,
+        BOOL                           OutputIBIs32Bit,
+        LPD3DXBUFFER*                  ppFaceRemap,
+        LPD3DXBUFFER*                  ppVertData,
+        UINT*                          pVertDataLength,
+        UINT*                          pSCClusterList,
+        D3DXSHPRTSPLITMESHCLUSTERDATA* pSCData ) ;
+
diff --git a/basis/windows/directx/d3dx9mesh/summary.txt b/basis/windows/directx/d3dx9mesh/summary.txt
new file mode 100644 (file)
index 0000000..faa4133
--- /dev/null
@@ -0,0 +1 @@
+DirectX 9 bindings. Corresponds to d3dx9mesh.h.
diff --git a/basis/windows/directx/d3dx9mesh/tags.txt b/basis/windows/directx/d3dx9mesh/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx9shader/authors.txt b/basis/windows/directx/d3dx9shader/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx9shader/d3dx9shader.factor b/basis/windows/directx/d3dx9shader/d3dx9shader.factor
new file mode 100644 (file)
index 0000000..12ba902
--- /dev/null
@@ -0,0 +1,441 @@
+USING: alien.c-types alien.syntax classes.struct math
+windows.com windows.com.syntax windows.directx.d3d9
+windows.directx.d3dx9core windows.directx.d3dx9math
+windows.types ;
+IN: windows.directx.d3dx9shader
+
+LIBRARY: d3dx9
+
+: D3DXSHADER_DEBUG                          ( -- n ) 1 0 shift ; inline
+: D3DXSHADER_SKIPVALIDATION                 ( -- n ) 1 1 shift ; inline
+: D3DXSHADER_SKIPOPTIMIZATION               ( -- n ) 1 2 shift ; inline
+: D3DXSHADER_PACKMATRIX_ROWMAJOR            ( -- n ) 1 3 shift ; inline
+: D3DXSHADER_PACKMATRIX_COLUMNMAJOR         ( -- n ) 1 4 shift ; inline
+: D3DXSHADER_PARTIALPRECISION               ( -- n ) 1 5 shift ; inline
+: D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT        ( -- n ) 1 6 shift ; inline
+: D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT        ( -- n ) 1 7 shift ; inline
+: D3DXSHADER_NO_PRESHADER                   ( -- n ) 1 8 shift ; inline
+: D3DXSHADER_AVOID_FLOW_CONTROL             ( -- n ) 1 9 shift ; inline
+: D3DXSHADER_PREFER_FLOW_CONTROL            ( -- n ) 1 10 shift ; inline
+: D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY ( -- n ) 1 12 shift ; inline
+: D3DXSHADER_IEEE_STRICTNESS                ( -- n ) 1 13 shift ; inline
+: D3DXSHADER_USE_LEGACY_D3DX9_31_DLL        ( -- n ) 1 16 shift ; inline
+
+: D3DXSHADER_OPTIMIZATION_LEVEL0            ( -- n ) 1 14 shift ; inline
+: D3DXSHADER_OPTIMIZATION_LEVEL1            ( -- n ) 0 ; inline
+: D3DXSHADER_OPTIMIZATION_LEVEL2            ( -- n ) 1 14 shift 1 15 shift bitor ; inline
+: D3DXSHADER_OPTIMIZATION_LEVEL3            ( -- n ) 1 15 shift ; inline
+
+: D3DXCONSTTABLE_LARGEADDRESSAWARE          ( -- n ) 1 17 shift ; inline
+
+TYPEDEF: LPCSTR D3DXHANDLE
+TYPEDEF: D3DXHANDLE* LPD3DXHANDLE
+
+STRUCT: D3DXMACRO
+    { Name       LPCSTR }
+    { Definition LPCSTR } ;
+TYPEDEF: D3DXMACRO* LPD3DXMACRO
+
+STRUCT: D3DXSEMANTIC
+    { Usage      UINT }
+    { UsageIndex UINT } ;
+TYPEDEF: D3DXSEMANTIC* LPD3DXSEMANTIC
+
+C-ENUM:
+    D3DXRS_BOOL
+    D3DXRS_INT4
+    D3DXRS_FLOAT4
+    D3DXRS_SAMPLER ;
+TYPEDEF: int D3DXREGISTER_SET
+TYPEDEF: D3DXREGISTER_SET* LPD3DXREGISTER_SET
+
+C-ENUM:
+    D3DXPC_SCALAR
+    D3DXPC_VECTOR
+    D3DXPC_MATRIX_ROWS
+    D3DXPC_MATRIX_COLUMNS
+    D3DXPC_OBJECT
+    D3DXPC_STRUCT ;
+TYPEDEF: int D3DXPARAMETER_CLASS
+TYPEDEF: D3DXPARAMETER_CLASS* LPD3DXPARAMETER_CLASS
+
+C-ENUM:
+    D3DXPT_VOID
+    D3DXPT_BOOL
+    D3DXPT_INT
+    D3DXPT_FLOAT
+    D3DXPT_STRING
+    D3DXPT_TEXTURE
+    D3DXPT_TEXTURE1D
+    D3DXPT_TEXTURE2D
+    D3DXPT_TEXTURE3D
+    D3DXPT_TEXTURECUBE
+    D3DXPT_SAMPLER
+    D3DXPT_SAMPLER1D
+    D3DXPT_SAMPLER2D
+    D3DXPT_SAMPLER3D
+    D3DXPT_SAMPLERCUBE
+    D3DXPT_PIXELSHADER
+    D3DXPT_VERTEXSHADER
+    D3DXPT_PIXELFRAGMENT
+    D3DXPT_VERTEXFRAGMENT
+    D3DXPT_UNSUPPORTED ;
+TYPEDEF: int D3DXPARAMETER_TYPE
+TYPEDEF: D3DXPARAMETER_TYPE* LPD3DXPARAMETER_TYPE
+
+STRUCT: D3DXCONSTANTTABLE_DESC
+    { Creator   LPCSTR }
+    { Version   DWORD  }
+    { Constants UINT   } ;
+TYPEDEF: D3DXCONSTANTTABLE_DESC* LPD3DXCONSTANTTABLE_DESC
+
+STRUCT: D3DXCONSTANT_DESC
+    { Name          LPCSTR              }
+    { RegisterSet   D3DXREGISTER_SET    }
+    { RegisterIndex UINT                }
+    { RegisterCount UINT                }
+    { Class         D3DXPARAMETER_CLASS }
+    { Type          D3DXPARAMETER_TYPE  }
+    { Rows          UINT                }
+    { Columns       UINT                }
+    { Elements      UINT                }
+    { StructMembers UINT                }
+    { Bytes         UINT                }
+    { DefaultValue  LPCVOID             } ;
+TYPEDEF: D3DXCONSTANT_DESC* LPD3DXCONSTANT_DESC
+
+C-TYPE: ID3DXConstantTable
+TYPEDEF: ID3DXConstantTable* LPD3DXCONSTANTTABLE
+
+COM-INTERFACE: ID3DXConstantTable IUnknown {AB3C758F-093E-4356-B762-4DB18F1B3A01}
+    LPVOID GetBufferPointer ( )
+    DWORD GetBufferSize ( )
+    HRESULT GetDesc ( D3DXCONSTANTTABLE_DESC* pDesc )
+    HRESULT GetConstantDesc ( D3DXHANDLE hConstant, D3DXCONSTANT_DESC* pConstantDesc, UINT* pCount )
+    UINT GetSamplerIndex ( D3DXHANDLE hConstant )
+    D3DXHANDLE GetConstant ( D3DXHANDLE hConstant, UINT Index )
+    D3DXHANDLE GetConstantByName ( D3DXHANDLE hConstant, LPCSTR pName )
+    D3DXHANDLE GetConstantElement ( D3DXHANDLE hConstant, UINT Index )
+    HRESULT SetDefaults ( LPDIRECT3DDEVICE9 pDevice )
+    HRESULT SetValue ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, LPCVOID pData, UINT Bytes )
+    HRESULT SetBool ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, BOOL b )
+    HRESULT SetBoolArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, BOOL* pb, UINT Count )
+    HRESULT SetInt ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, INT n )
+    HRESULT SetIntArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, INT* pn, UINT Count )
+    HRESULT SetFloat ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, FLOAT f )
+    HRESULT SetFloatArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, FLOAT* pf, UINT Count )
+    HRESULT SetVector ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXVECTOR4* pVector )
+    HRESULT SetVectorArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXVECTOR4* pVector, UINT Count )
+    HRESULT SetMatrix ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXMATRIX* pMatrix )
+    HRESULT SetMatrixArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXMATRIX* pMatrix, UINT Count )
+    HRESULT SetMatrixPointerArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXMATRIX** ppMatrix, UINT Count )
+    HRESULT SetMatrixTranspose ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXMATRIX* pMatrix )
+    HRESULT SetMatrixTransposeArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXMATRIX* pMatrix, UINT Count )
+    HRESULT SetMatrixTransposePointerArray ( LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, D3DXMATRIX** ppMatrix, UINT Count ) ;
+
+C-TYPE: ID3DXTextureShader
+TYPEDEF: ID3DXTextureShader* LPD3DXTEXTURESHADER
+
+COM-INTERFACE: ID3DXTextureShader IUnknown {3E3D67F8-AA7A-405d-A857-BA01D4758426}
+    HRESULT GetFunction ( LPD3DXBUFFER* ppFunction )
+    HRESULT GetConstantBuffer ( LPD3DXBUFFER* ppConstantBuffer )
+    HRESULT GetDesc ( D3DXCONSTANTTABLE_DESC* pDesc )
+    HRESULT GetConstantDesc ( D3DXHANDLE hConstant, D3DXCONSTANT_DESC* pConstantDesc, UINT* pCount )
+    D3DXHANDLE GetConstant ( D3DXHANDLE hConstant, UINT Index )
+    D3DXHANDLE GetConstantByName ( D3DXHANDLE hConstant, LPCSTR pName )
+    D3DXHANDLE GetConstantElement ( D3DXHANDLE hConstant, UINT Index )
+    HRESULT SetDefaults ( )
+    HRESULT SetValue ( D3DXHANDLE hConstant, LPCVOID pData, UINT Bytes )
+    HRESULT SetBool ( D3DXHANDLE hConstant, BOOL b )
+    HRESULT SetBoolArray ( D3DXHANDLE hConstant, BOOL* pb, UINT Count )
+    HRESULT SetInt ( D3DXHANDLE hConstant, INT n )
+    HRESULT SetIntArray ( D3DXHANDLE hConstant, INT* pn, UINT Count )
+    HRESULT SetFloat ( D3DXHANDLE hConstant, FLOAT f )
+    HRESULT SetFloatArray ( D3DXHANDLE hConstant, FLOAT* pf, UINT Count )
+    HRESULT SetVector ( D3DXHANDLE hConstant, D3DXVECTOR4* pVector )
+    HRESULT SetVectorArray ( D3DXHANDLE hConstant, D3DXVECTOR4* pVector, UINT Count )
+    HRESULT SetMatrix ( D3DXHANDLE hConstant, D3DXMATRIX* pMatrix )
+    HRESULT SetMatrixArray ( D3DXHANDLE hConstant, D3DXMATRIX* pMatrix, UINT Count )
+    HRESULT SetMatrixPointerArray ( D3DXHANDLE hConstant, D3DXMATRIX** ppMatrix, UINT Count )
+    HRESULT SetMatrixTranspose ( D3DXHANDLE hConstant, D3DXMATRIX* pMatrix )
+    HRESULT SetMatrixTransposeArray ( D3DXHANDLE hConstant, D3DXMATRIX* pMatrix, UINT Count )
+    HRESULT SetMatrixTransposePointerArray ( D3DXHANDLE hConstant, D3DXMATRIX** ppMatrix, UINT Count ) ;
+
+C-ENUM:
+    D3DXINC_LOCAL
+    D3DXINC_SYSTEM ;
+TYPEDEF: int D3DXINCLUDE_TYPE
+TYPEDEF: D3DXINCLUDE_TYPE* LPD3DXINCLUDE_TYPE
+
+C-TYPE: ID3DXInclude
+TYPEDEF: ID3DXInclude* LPD3DXINCLUDE
+
+COM-INTERFACE: ID3DXInclude f {00000000-0000-0000-0000-000000000000}
+    HRESULT Open ( D3DXINCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID* ppData, UINT* pBytes )
+    HRESULT Close ( LPCVOID pData ) ;
+
+FUNCTION: HRESULT
+    D3DXAssembleShaderFromFileA (
+        LPCSTR                          pSrcFile,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        DWORD                           Flags,
+        LPD3DXBUFFER*                   ppShader,
+        LPD3DXBUFFER*                   ppErrorMsgs ) ;
+
+FUNCTION: HRESULT
+    D3DXAssembleShaderFromFileW (
+        LPCWSTR                         pSrcFile,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        DWORD                           Flags,
+        LPD3DXBUFFER*                   ppShader,
+        LPD3DXBUFFER*                   ppErrorMsgs ) ;
+
+ALIAS: D3DXAssembleShaderFromFile D3DXAssembleShaderFromFileW
+
+FUNCTION: HRESULT
+    D3DXAssembleShaderFromResourceA (
+        HMODULE                         hSrcModule,
+        LPCSTR                          pSrcResource,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        DWORD                           Flags,
+        LPD3DXBUFFER*                   ppShader,
+        LPD3DXBUFFER*                   ppErrorMsgs ) ;
+
+FUNCTION: HRESULT
+    D3DXAssembleShaderFromResourceW (
+        HMODULE                         hSrcModule,
+        LPCWSTR                         pSrcResource,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        DWORD                           Flags,
+        LPD3DXBUFFER*                   ppShader,
+        LPD3DXBUFFER*                   ppErrorMsgs ) ;
+
+ALIAS: D3DXAssembleShaderFromResource D3DXAssembleShaderFromResourceW
+
+FUNCTION: HRESULT
+    D3DXAssembleShader (
+        LPCSTR                          pSrcData,
+        UINT                            SrcDataLen,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        DWORD                           Flags,
+        LPD3DXBUFFER*                   ppShader,
+        LPD3DXBUFFER*                   ppErrorMsgs ) ;
+
+FUNCTION: HRESULT
+    D3DXCompileShaderFromFileA (
+        LPCSTR                          pSrcFile,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        LPCSTR                          pFunctionName,
+        LPCSTR                          pProfile,
+        DWORD                           Flags,
+        LPD3DXBUFFER*                   ppShader,
+        LPD3DXBUFFER*                   ppErrorMsgs,
+        LPD3DXCONSTANTTABLE*            ppConstantTable ) ;
+
+FUNCTION: HRESULT
+    D3DXCompileShaderFromFileW (
+        LPCWSTR                         pSrcFile,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        LPCSTR                          pFunctionName,
+        LPCSTR                          pProfile,
+        DWORD                           Flags,
+        LPD3DXBUFFER*                   ppShader,
+        LPD3DXBUFFER*                   ppErrorMsgs,
+        LPD3DXCONSTANTTABLE*            ppConstantTable ) ;
+
+ALIAS: D3DXCompileShaderFromFile D3DXCompileShaderFromFileW
+
+FUNCTION: HRESULT
+    D3DXCompileShaderFromResourceA (
+        HMODULE                         hSrcModule,
+        LPCSTR                          pSrcResource,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        LPCSTR                          pFunctionName,
+        LPCSTR                          pProfile,
+        DWORD                           Flags,
+        LPD3DXBUFFER*                   ppShader,
+        LPD3DXBUFFER*                   ppErrorMsgs,
+        LPD3DXCONSTANTTABLE*            ppConstantTable ) ;
+
+FUNCTION: HRESULT
+    D3DXCompileShaderFromResourceW (
+        HMODULE                         hSrcModule,
+        LPCWSTR                         pSrcResource,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        LPCSTR                          pFunctionName,
+        LPCSTR                          pProfile,
+        DWORD                           Flags,
+        LPD3DXBUFFER*                   ppShader,
+        LPD3DXBUFFER*                   ppErrorMsgs,
+        LPD3DXCONSTANTTABLE*            ppConstantTable ) ;
+
+ALIAS: D3DXCompileShaderFromResource D3DXCompileShaderFromResourceW
+
+FUNCTION: HRESULT
+    D3DXCompileShader (
+        LPCSTR                          pSrcData,
+        UINT                            SrcDataLen,
+        D3DXMACRO*                      pDefines,
+        LPD3DXINCLUDE                   pInclude,
+        LPCSTR                          pFunctionName,
+        LPCSTR                          pProfile,
+        DWORD                           Flags,
+        LPD3DXBUFFER*                   ppShader,
+        LPD3DXBUFFER*                   ppErrorMsgs,
+        LPD3DXCONSTANTTABLE*            ppConstantTable ) ;
+
+FUNCTION: HRESULT
+    D3DXDisassembleShader (
+        DWORD*                          pShader,         
+        BOOL                            EnableColorCode, 
+        LPCSTR                          pComments,       
+        LPD3DXBUFFER*                   ppDisassembly ) ;
+
+FUNCTION: LPCSTR
+    D3DXGetPixelShaderProfile (
+        LPDIRECT3DDEVICE9               pDevice ) ;
+
+FUNCTION: LPCSTR
+    D3DXGetVertexShaderProfile (
+        LPDIRECT3DDEVICE9               pDevice ) ;
+
+FUNCTION: HRESULT
+    D3DXFindShaderComment (
+        DWORD*                          pFunction,
+        DWORD                           FourCC,
+        LPCVOID*                        ppData,
+        UINT*                           pSizeInBytes ) ;
+        
+FUNCTION: UINT
+    D3DXGetShaderSize (
+        DWORD*                    pFunction ) ;
+
+FUNCTION: DWORD
+    D3DXGetShaderVersion (
+        DWORD*                    pFunction ) ;
+
+FUNCTION: HRESULT
+    D3DXGetShaderInputSemantics (
+        DWORD*                          pFunction,
+        D3DXSEMANTIC*                   pSemantics,
+        UINT*                           pCount ) ;
+
+FUNCTION: HRESULT
+    D3DXGetShaderOutputSemantics (
+        DWORD*                          pFunction,
+        D3DXSEMANTIC*                   pSemantics,
+        UINT*                           pCount ) ;
+
+FUNCTION: HRESULT
+    D3DXGetShaderSamplers (
+        DWORD*                          pFunction,
+        LPCSTR*                         pSamplers,
+        UINT*                           pCount ) ;
+
+FUNCTION: HRESULT
+    D3DXGetShaderConstantTable (
+        DWORD*                          pFunction,
+        LPD3DXCONSTANTTABLE*            ppConstantTable ) ;
+
+FUNCTION: HRESULT
+    D3DXGetShaderConstantTableEx (
+        DWORD*                          pFunction,
+        DWORD                           Flags,
+        LPD3DXCONSTANTTABLE*            ppConstantTable ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateTextureShader (
+        DWORD*                          pFunction,      
+        LPD3DXTEXTURESHADER*            ppTextureShader ) ;
+    
+FUNCTION: HRESULT 
+    D3DXPreprocessShaderFromFileA (
+        LPCSTR                       pSrcFile,
+        D3DXMACRO*                   pDefines,
+        LPD3DXINCLUDE                pInclude,
+        LPD3DXBUFFER*                ppShaderText,
+        LPD3DXBUFFER*                ppErrorMsgs ) ;
+                                             
+FUNCTION: HRESULT 
+    D3DXPreprocessShaderFromFileW (
+        LPCWSTR                      pSrcFile,
+        D3DXMACRO*                   pDefines,
+        LPD3DXINCLUDE                pInclude,
+        LPD3DXBUFFER*                ppShaderText,
+        LPD3DXBUFFER*                ppErrorMsgs ) ;
+
+ALIAS: D3DXPreprocessShaderFromFile D3DXPreprocessShaderFromFileW
+
+FUNCTION: HRESULT 
+    D3DXPreprocessShaderFromResourceA (
+        HMODULE                      hSrcModule,
+        LPCSTR                       pSrcResource,
+        D3DXMACRO*                   pDefines,
+        LPD3DXINCLUDE                pInclude,
+        LPD3DXBUFFER*                ppShaderText,
+        LPD3DXBUFFER*                ppErrorMsgs ) ;
+
+FUNCTION: HRESULT 
+    D3DXPreprocessShaderFromResourceW (
+        HMODULE                      hSrcModule,
+        LPCWSTR                      pSrcResource,
+        D3DXMACRO*                   pDefines,
+        LPD3DXINCLUDE                pInclude,
+        LPD3DXBUFFER*                ppShaderText,
+        LPD3DXBUFFER*                ppErrorMsgs ) ;
+
+ALIAS: D3DXPreprocessShaderFromResource D3DXPreprocessShaderFromResourceW
+
+FUNCTION: HRESULT 
+    D3DXPreprocessShader (
+        LPCSTR                       pSrcData,
+        UINT                         SrcDataSize,
+        D3DXMACRO*                   pDefines,
+        LPD3DXINCLUDE                pInclude,
+        LPD3DXBUFFER*                ppShaderText,
+        LPD3DXBUFFER*                ppErrorMsgs ) ;
+
+STRUCT: D3DXSHADER_CONSTANTTABLE
+    { Size         DWORD }
+    { Creator      DWORD }
+    { Version      DWORD }
+    { Constants    DWORD }
+    { ConstantInfo DWORD }
+    { Flags        DWORD }
+    { Target       DWORD } ;
+TYPEDEF: D3DXSHADER_CONSTANTTABLE* LPD3DXSHADER_CONSTANTTABLE
+
+STRUCT: D3DXSHADER_CONSTANTINFO
+    { Name           DWORD }
+    { RegisterSet    WORD  }
+    { RegisterIndex  WORD  }
+    { RegisterCount  WORD  }
+    { Reserved       WORD  }
+    { TypeInfo       DWORD }
+    { DefaultValue   DWORD } ;
+TYPEDEF: D3DXSHADER_CONSTANTINFO* LPD3DXSHADER_CONSTANTINFO
+
+STRUCT: D3DXSHADER_TYPEINFO
+    { Class            WORD  }
+    { Type             WORD  }
+    { Rows             WORD  }
+    { Columns          WORD  }
+    { Elements         WORD  }
+    { StructMembers    WORD  }
+    { StructMemberInfo DWORD } ;
+TYPEDEF: D3DXSHADER_TYPEINFO* LPD3DXSHADER_TYPEINFO
+
+STRUCT: D3DXSHADER_STRUCTMEMBERINFO
+    { Name     DWORD }
+    { TypeInfo DWORD } ;
+TYPEDEF: D3DXSHADER_STRUCTMEMBERINFO* LPD3DXSHADER_STRUCTMEMBERINFO
+
diff --git a/basis/windows/directx/d3dx9shader/summary.txt b/basis/windows/directx/d3dx9shader/summary.txt
new file mode 100644 (file)
index 0000000..a56300a
--- /dev/null
@@ -0,0 +1 @@
+DirectX 9 bindings. Corresponds to d3dx9shader.h.
diff --git a/basis/windows/directx/d3dx9shader/tags.txt b/basis/windows/directx/d3dx9shader/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx9shape/authors.txt b/basis/windows/directx/d3dx9shape/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx9shape/d3dx9shape.factor b/basis/windows/directx/d3dx9shape/d3dx9shape.factor
new file mode 100644 (file)
index 0000000..33b3308
--- /dev/null
@@ -0,0 +1,85 @@
+USING: alien.c-types alien.syntax windows.directx.d3d9
+windows.directx.d3dx9core windows.directx.d3dx9mesh
+windows.types ;
+IN: windows.directx.d3dx9shape
+
+LIBRARY: d3dx9
+
+TYPEDEF: void* LPGLYPHMETRICSFLOAT 
+
+FUNCTION: HRESULT 
+    D3DXCreatePolygon (
+        LPDIRECT3DDEVICE9   pDevice,
+        FLOAT               Length, 
+        UINT                Sides, 
+        LPD3DXMESH*         ppMesh,
+        LPD3DXBUFFER*       ppAdjacency ) ;
+
+FUNCTION: HRESULT 
+    D3DXCreateBox (
+        LPDIRECT3DDEVICE9   pDevice, 
+        FLOAT               Width,
+        FLOAT               Height,
+        FLOAT               Depth,
+        LPD3DXMESH*         ppMesh,
+        LPD3DXBUFFER*       ppAdjacency ) ;
+
+FUNCTION: HRESULT 
+    D3DXCreateCylinder (
+        LPDIRECT3DDEVICE9   pDevice,
+        FLOAT               Radius1, 
+        FLOAT               Radius2, 
+        FLOAT               Length, 
+        UINT                Slices, 
+        UINT                Stacks,   
+        LPD3DXMESH*         ppMesh,
+        LPD3DXBUFFER*       ppAdjacency ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateSphere (
+        LPDIRECT3DDEVICE9  pDevice, 
+        FLOAT              Radius, 
+        UINT               Slices, 
+        UINT               Stacks,
+        LPD3DXMESH*        ppMesh,
+        LPD3DXBUFFER*      ppAdjacency ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateTorus (
+        LPDIRECT3DDEVICE9   pDevice,
+        FLOAT               InnerRadius,
+        FLOAT               OuterRadius, 
+        UINT                Sides,
+        UINT                Rings, 
+        LPD3DXMESH*         ppMesh,
+        LPD3DXBUFFER*       ppAdjacency ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateTeapot (
+        LPDIRECT3DDEVICE9   pDevice,
+        LPD3DXMESH*         ppMesh,
+        LPD3DXBUFFER*       ppAdjacency ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateTextA (
+        LPDIRECT3DDEVICE9   pDevice,
+        HDC                 hDC,
+        LPCSTR              pText,
+        FLOAT               Deviation,
+        FLOAT               Extrusion,
+        LPD3DXMESH*         ppMesh,
+        LPD3DXBUFFER*       ppAdjacency,
+        LPGLYPHMETRICSFLOAT pGlyphMetrics ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateTextW (
+        LPDIRECT3DDEVICE9   pDevice,
+        HDC                 hDC,
+        LPCWSTR             pText,
+        FLOAT               Deviation,
+        FLOAT               Extrusion,
+        LPD3DXMESH*         ppMesh,
+        LPD3DXBUFFER*       ppAdjacency,
+        LPGLYPHMETRICSFLOAT pGlyphMetrics ) ;
+
+ALIAS: D3DXCreateText D3DXCreateTextW
diff --git a/basis/windows/directx/d3dx9shape/summary.txt b/basis/windows/directx/d3dx9shape/summary.txt
new file mode 100644 (file)
index 0000000..0675145
--- /dev/null
@@ -0,0 +1 @@
+DirectX 9 bindings. Corresponds to d3dx9shape.h.
diff --git a/basis/windows/directx/d3dx9shape/tags.txt b/basis/windows/directx/d3dx9shape/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx9tex/authors.txt b/basis/windows/directx/d3dx9tex/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx9tex/d3dx9tex.factor b/basis/windows/directx/d3dx9tex/d3dx9tex.factor
new file mode 100644 (file)
index 0000000..c1de9d0
--- /dev/null
@@ -0,0 +1,847 @@
+USING: alien.c-types alien.syntax classes.struct math
+windows.directx.d3d9 windows.directx.d3d9types
+windows.directx.d3dx9core windows.directx.d3dx9shader
+windows.types ;
+IN: windows.directx.d3dx9tex
+
+LIBRARY: d3dx9
+
+: D3DX_FILTER_NONE             ( -- n ) 1 0 shift ; inline
+: D3DX_FILTER_POINT            ( -- n ) 2 0 shift ; inline
+: D3DX_FILTER_LINEAR           ( -- n ) 3 0 shift ; inline
+: D3DX_FILTER_TRIANGLE         ( -- n ) 4 0 shift ; inline
+: D3DX_FILTER_BOX              ( -- n ) 5 0 shift ; inline
+
+: D3DX_FILTER_MIRROR_U         ( -- n ) 1 16 shift ; inline
+: D3DX_FILTER_MIRROR_V         ( -- n ) 2 16 shift ; inline
+: D3DX_FILTER_MIRROR_W         ( -- n ) 4 16 shift ; inline
+: D3DX_FILTER_MIRROR           ( -- n ) 7 16 shift ; inline
+
+: D3DX_FILTER_DITHER           ( -- n ) 1 19 shift ; inline
+: D3DX_FILTER_DITHER_DIFFUSION ( -- n ) 2 19 shift ; inline
+
+: D3DX_FILTER_SRGB_IN          ( -- n ) 1 21 shift ; inline
+: D3DX_FILTER_SRGB_OUT         ( -- n ) 2 21 shift ; inline
+: D3DX_FILTER_SRGB             ( -- n ) 3 21 shift ; inline
+
+CONSTANT: D3DX_SKIP_DDS_MIP_LEVELS_MASK   HEX: 1F
+CONSTANT: D3DX_SKIP_DDS_MIP_LEVELS_SHIFT  26
+
+: D3DX_NORMALMAP_MIRROR_U     ( -- n ) 1 16 shift ; inline
+: D3DX_NORMALMAP_MIRROR_V     ( -- n ) 2 16 shift ; inline
+: D3DX_NORMALMAP_MIRROR       ( -- n ) 3 16 shift ; inline
+: D3DX_NORMALMAP_INVERTSIGN   ( -- n ) 8 16 shift ; inline
+: D3DX_NORMALMAP_COMPUTE_OCCLUSION ( -- n ) 16 16 shift ; inline
+
+: D3DX_CHANNEL_RED            ( -- n ) 1 0 shift ; inline
+: D3DX_CHANNEL_BLUE           ( -- n ) 1 1 shift ; inline
+: D3DX_CHANNEL_GREEN          ( -- n ) 1 2 shift ; inline
+: D3DX_CHANNEL_ALPHA          ( -- n ) 1 3 shift ; inline
+: D3DX_CHANNEL_LUMINANCE      ( -- n ) 1 4 shift ; inline
+
+CONSTANT: D3DXIFF_BMP         0
+CONSTANT: D3DXIFF_JPG         1
+CONSTANT: D3DXIFF_TGA         2
+CONSTANT: D3DXIFF_PNG         3
+CONSTANT: D3DXIFF_DDS         4
+CONSTANT: D3DXIFF_PPM         5
+CONSTANT: D3DXIFF_DIB         6
+CONSTANT: D3DXIFF_HDR         7
+CONSTANT: D3DXIFF_PFM         8
+CONSTANT: D3DXIFF_FORCE_DWORD HEX: 7fffffff
+TYPEDEF: int D3DXIMAGE_FILEFORMAT
+
+TYPEDEF: void* LPD3DXFILL2D
+TYPEDEF: void* LPD3DXFILL3D
+
+STRUCT: D3DXIMAGE_INFO
+    { Width                        UINT                 }
+    { Height                       UINT                 }
+    { Depth                        UINT                 }
+    { MipLevels                    UINT                 }
+    { Format                       D3DFORMAT            }
+    { ResourceType                 D3DRESOURCETYPE      }
+    { ImageFileFormat              D3DXIMAGE_FILEFORMAT } ;
+
+FUNCTION: HRESULT
+    D3DXGetImageInfoFromFileA (
+        LPCSTR                    pSrcFile,
+        D3DXIMAGE_INFO*           pSrcInfo ) ;
+
+FUNCTION: HRESULT
+    D3DXGetImageInfoFromFileW (
+        LPCWSTR                   pSrcFile,
+        D3DXIMAGE_INFO*           pSrcInfo ) ;
+
+ALIAS: D3DXGetImageInfoFromFile D3DXGetImageInfoFromFileW
+
+FUNCTION: HRESULT
+    D3DXGetImageInfoFromResourceA (
+        HMODULE                   hSrcModule,
+        LPCSTR                    pSrcResource,
+        D3DXIMAGE_INFO*           pSrcInfo ) ;
+
+FUNCTION: HRESULT
+    D3DXGetImageInfoFromResourceW (
+        HMODULE                   hSrcModule,
+        LPCWSTR                   pSrcResource,
+        D3DXIMAGE_INFO*           pSrcInfo ) ;
+
+ALIAS: D3DXGetImageInfoFromResource D3DXGetImageInfoFromResourceW
+
+FUNCTION: HRESULT
+    D3DXGetImageInfoFromFileInMemory (
+        LPCVOID                   pSrcData,
+        UINT                      SrcDataSize,
+        D3DXIMAGE_INFO*           pSrcInfo ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadSurfaceFromFileA (
+        LPDIRECT3DSURFACE9        pDestSurface,
+        PALETTEENTRY*             pDestPalette,
+        RECT*                     pDestRect,
+        LPCSTR                    pSrcFile,
+        RECT*                     pSrcRect,
+        DWORD                     Filter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadSurfaceFromFileW (
+        LPDIRECT3DSURFACE9        pDestSurface,
+        PALETTEENTRY*             pDestPalette,
+        RECT*                     pDestRect,
+        LPCWSTR                   pSrcFile,
+        RECT*                     pSrcRect,
+        DWORD                     Filter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo ) ;
+        
+ALIAS: D3DXLoadSurfaceFromFile D3DXLoadSurfaceFromFileW
+
+FUNCTION: HRESULT
+    D3DXLoadSurfaceFromResourceA (
+        LPDIRECT3DSURFACE9        pDestSurface,
+        PALETTEENTRY*             pDestPalette,
+        RECT*                     pDestRect,
+        HMODULE                   hSrcModule,
+        LPCSTR                    pSrcResource,
+        RECT*                     pSrcRect,
+        DWORD                     Filter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadSurfaceFromResourceW (
+        LPDIRECT3DSURFACE9        pDestSurface,
+        PALETTEENTRY*             pDestPalette,
+        RECT*                     pDestRect,
+        HMODULE                   hSrcModule,
+        LPCWSTR                   pSrcResource,
+        RECT*                     pSrcRect,
+        DWORD                     Filter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo ) ;
+
+ALIAS: D3DXLoadSurfaceFromResource D3DXLoadSurfaceFromResourceW
+
+FUNCTION: HRESULT
+    D3DXLoadSurfaceFromFileInMemory (
+        LPDIRECT3DSURFACE9        pDestSurface,
+        PALETTEENTRY*             pDestPalette,
+        RECT*                     pDestRect,
+        LPCVOID                   pSrcData,
+        UINT                      SrcDataSize,
+        RECT*                     pSrcRect,
+        DWORD                     Filter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadSurfaceFromSurface (
+        LPDIRECT3DSURFACE9        pDestSurface,
+        PALETTEENTRY*             pDestPalette,
+        RECT*                     pDestRect,
+        LPDIRECT3DSURFACE9        pSrcSurface,
+        PALETTEENTRY*             pSrcPalette,
+        RECT*                     pSrcRect,
+        DWORD                     Filter,
+        D3DCOLOR                  ColorKey ) ;
+        
+FUNCTION: HRESULT
+    D3DXLoadSurfaceFromMemory (
+        LPDIRECT3DSURFACE9        pDestSurface,
+        PALETTEENTRY*             pDestPalette,
+        RECT*                     pDestRect,
+        LPCVOID                   pSrcMemory,
+        D3DFORMAT                 SrcFormat,
+        UINT                      SrcPitch,
+        PALETTEENTRY*             pSrcPalette,
+        RECT*                     pSrcRect,
+        DWORD                     Filter,
+        D3DCOLOR                  ColorKey ) ;
+
+FUNCTION: HRESULT
+    D3DXSaveSurfaceToFileA (
+        LPCSTR                    pDestFile,
+        D3DXIMAGE_FILEFORMAT      DestFormat,
+        LPDIRECT3DSURFACE9        pSrcSurface,
+        PALETTEENTRY*             pSrcPalette,
+        RECT*                     pSrcRect ) ;
+
+FUNCTION: HRESULT
+    D3DXSaveSurfaceToFileW (
+        LPCWSTR                   pDestFile,
+        D3DXIMAGE_FILEFORMAT      DestFormat,
+        LPDIRECT3DSURFACE9        pSrcSurface,
+        PALETTEENTRY*             pSrcPalette,
+        RECT*                     pSrcRect ) ;
+
+ALIAS: D3DXSaveSurfaceToFile D3DXSaveSurfaceToFileW
+
+FUNCTION: HRESULT
+    D3DXSaveSurfaceToFileInMemory (
+        LPD3DXBUFFER*             ppDestBuf,
+        D3DXIMAGE_FILEFORMAT      DestFormat,
+        LPDIRECT3DSURFACE9        pSrcSurface,
+        PALETTEENTRY*             pSrcPalette,
+        RECT*                     pSrcRect ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadVolumeFromFileA (
+        LPDIRECT3DVOLUME9         pDestVolume,
+        PALETTEENTRY*             pDestPalette,
+        D3DBOX*                   pDestBox,
+        LPCSTR                    pSrcFile,
+        D3DBOX*                   pSrcBox,
+        DWORD                     Filter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo ) ;
+        
+FUNCTION: HRESULT
+    D3DXLoadVolumeFromFileW (
+        LPDIRECT3DVOLUME9         pDestVolume,
+        PALETTEENTRY*             pDestPalette,
+        D3DBOX*                   pDestBox,
+        LPCWSTR                   pSrcFile,
+        D3DBOX*                   pSrcBox,
+        DWORD                     Filter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo ) ;
+
+ALIAS: D3DXLoadVolumeFromFile D3DXLoadVolumeFromFileW
+
+FUNCTION: HRESULT
+    D3DXLoadVolumeFromResourceA (
+        LPDIRECT3DVOLUME9         pDestVolume,
+        PALETTEENTRY*             pDestPalette,
+        D3DBOX*                   pDestBox,
+        HMODULE                   hSrcModule,
+        LPCSTR                    pSrcResource,
+        D3DBOX*                   pSrcBox,
+        DWORD                     Filter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadVolumeFromResourceW (
+        LPDIRECT3DVOLUME9         pDestVolume,
+        PALETTEENTRY*             pDestPalette,
+        D3DBOX*                   pDestBox,
+        HMODULE                   hSrcModule,
+        LPCWSTR                   pSrcResource,
+        D3DBOX*                   pSrcBox,
+        DWORD                     Filter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo ) ;
+
+ALIAS: D3DXLoadVolumeFromResource D3DXLoadVolumeFromResourceW
+
+FUNCTION: HRESULT
+    D3DXLoadVolumeFromFileInMemory (
+        LPDIRECT3DVOLUME9         pDestVolume,
+        PALETTEENTRY*             pDestPalette,
+        D3DBOX*                   pDestBox,
+        LPCVOID                   pSrcData,
+        UINT                      SrcDataSize,
+        D3DBOX*                   pSrcBox,
+        DWORD                     Filter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo ) ;
+
+FUNCTION: HRESULT
+    D3DXLoadVolumeFromVolume (
+        LPDIRECT3DVOLUME9         pDestVolume,
+        PALETTEENTRY*             pDestPalette,
+        D3DBOX*                   pDestBox,
+        LPDIRECT3DVOLUME9         pSrcVolume,
+        PALETTEENTRY*             pSrcPalette,
+        D3DBOX*                   pSrcBox,
+        DWORD                     Filter,
+        D3DCOLOR                  ColorKey ) ;
+        
+FUNCTION: HRESULT
+    D3DXLoadVolumeFromMemory (
+        LPDIRECT3DVOLUME9         pDestVolume,
+        PALETTEENTRY*             pDestPalette,
+        D3DBOX*                   pDestBox,
+        LPCVOID                   pSrcMemory,
+        D3DFORMAT                 SrcFormat,
+        UINT                      SrcRowPitch,
+        UINT                      SrcSlicePitch,
+        PALETTEENTRY*             pSrcPalette,
+        D3DBOX*                   pSrcBox,
+        DWORD                     Filter,
+        D3DCOLOR                  ColorKey ) ;
+
+FUNCTION: HRESULT
+    D3DXSaveVolumeToFileA (
+        LPCSTR                    pDestFile,
+        D3DXIMAGE_FILEFORMAT      DestFormat,
+        LPDIRECT3DVOLUME9         pSrcVolume,
+        PALETTEENTRY*             pSrcPalette,
+        D3DBOX*                   pSrcBox ) ;
+
+FUNCTION: HRESULT
+    D3DXSaveVolumeToFileW (
+        LPCWSTR                   pDestFile,
+        D3DXIMAGE_FILEFORMAT      DestFormat,
+        LPDIRECT3DVOLUME9         pSrcVolume,
+        PALETTEENTRY*             pSrcPalette,
+        D3DBOX*                   pSrcBox ) ;
+
+ALIAS: D3DXSaveVolumeToFile D3DXSaveVolumeToFileW
+
+FUNCTION: HRESULT
+    D3DXSaveVolumeToFileInMemory (
+        LPD3DXBUFFER*             ppDestBuf,
+        D3DXIMAGE_FILEFORMAT      DestFormat,
+        LPDIRECT3DVOLUME9         pSrcVolume,
+        PALETTEENTRY*             pSrcPalette,
+        D3DBOX*                   pSrcBox ) ;
+
+FUNCTION: HRESULT
+    D3DXCheckTextureRequirements (
+        LPDIRECT3DDEVICE9         pDevice,
+        UINT*                     pWidth,
+        UINT*                     pHeight,
+        UINT*                     pNumMipLevels,
+        DWORD                     Usage,
+        D3DFORMAT*                pFormat,
+        D3DPOOL                   Pool ) ;
+
+FUNCTION: HRESULT
+    D3DXCheckCubeTextureRequirements (
+        LPDIRECT3DDEVICE9         pDevice,
+        UINT*                     pSize,
+        UINT*                     pNumMipLevels,
+        DWORD                     Usage,
+        D3DFORMAT*                pFormat,
+        D3DPOOL                   Pool ) ;
+
+FUNCTION: HRESULT
+    D3DXCheckVolumeTextureRequirements (
+        LPDIRECT3DDEVICE9         pDevice,
+        UINT*                     pWidth,
+        UINT*                     pHeight,
+        UINT*                     pDepth,
+        UINT*                     pNumMipLevels,
+        DWORD                     Usage,
+        D3DFORMAT*                pFormat,
+        D3DPOOL                   Pool ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateTexture (
+        LPDIRECT3DDEVICE9         pDevice,
+        UINT                      Width,
+        UINT                      Height,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        LPDIRECT3DTEXTURE9*       ppTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateCubeTexture (
+        LPDIRECT3DDEVICE9         pDevice,
+        UINT                      Size,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        LPDIRECT3DCUBETEXTURE9*   ppCubeTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateVolumeTexture (
+        LPDIRECT3DDEVICE9         pDevice,
+        UINT                      Width,
+        UINT                      Height,
+        UINT                      Depth,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        LPDIRECT3DVOLUMETEXTURE9* ppVolumeTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateTextureFromFileA (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCSTR                    pSrcFile,
+        LPDIRECT3DTEXTURE9*       ppTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateTextureFromFileW (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCWSTR                   pSrcFile,
+        LPDIRECT3DTEXTURE9*       ppTexture ) ;
+
+ALIAS: D3DXCreateTextureFromFile D3DXCreateTextureFromFileW
+
+FUNCTION: HRESULT
+    D3DXCreateCubeTextureFromFileA (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCSTR                    pSrcFile,
+        LPDIRECT3DCUBETEXTURE9*   ppCubeTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateCubeTextureFromFileW (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCWSTR                   pSrcFile,
+        LPDIRECT3DCUBETEXTURE9*   ppCubeTexture ) ;
+
+ALIAS: D3DXCreateCubeTextureFromFile D3DXCreateCubeTextureFromFileW
+
+FUNCTION: HRESULT
+    D3DXCreateVolumeTextureFromFileA (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCSTR                    pSrcFile,
+        LPDIRECT3DVOLUMETEXTURE9* ppVolumeTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateVolumeTextureFromFileW (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCWSTR                   pSrcFile,
+        LPDIRECT3DVOLUMETEXTURE9* ppVolumeTexture ) ;
+
+ALIAS: D3DXCreateVolumeTextureFromFile D3DXCreateVolumeTextureFromFileW
+
+FUNCTION: HRESULT
+    D3DXCreateTextureFromResourceA (
+        LPDIRECT3DDEVICE9         pDevice,
+        HMODULE                   hSrcModule,
+        LPCSTR                    pSrcResource,
+        LPDIRECT3DTEXTURE9*       ppTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateTextureFromResourceW (
+        LPDIRECT3DDEVICE9         pDevice,
+        HMODULE                   hSrcModule,
+        LPCWSTR                   pSrcResource,
+        LPDIRECT3DTEXTURE9*       ppTexture ) ;
+
+ALIAS: D3DXCreateTextureFromResource D3DXCreateTextureFromResourceW
+
+FUNCTION: HRESULT
+    D3DXCreateCubeTextureFromResourceA (
+        LPDIRECT3DDEVICE9         pDevice,
+        HMODULE                   hSrcModule,
+        LPCSTR                    pSrcResource,
+        LPDIRECT3DCUBETEXTURE9*   ppCubeTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateCubeTextureFromResourceW (
+        LPDIRECT3DDEVICE9         pDevice,
+        HMODULE                   hSrcModule,
+        LPCWSTR                   pSrcResource,
+        LPDIRECT3DCUBETEXTURE9*   ppCubeTexture ) ;
+
+ALIAS: D3DXCreateCubeTextureFromResource D3DXCreateCubeTextureFromResourceW
+
+FUNCTION: HRESULT
+    D3DXCreateVolumeTextureFromResourceA (
+        LPDIRECT3DDEVICE9         pDevice,
+        HMODULE                   hSrcModule,
+        LPCSTR                    pSrcResource,
+        LPDIRECT3DVOLUMETEXTURE9* ppVolumeTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateVolumeTextureFromResourceW (
+        LPDIRECT3DDEVICE9         pDevice,
+        HMODULE                   hSrcModule,
+        LPCWSTR                   pSrcResource,
+        LPDIRECT3DVOLUMETEXTURE9* ppVolumeTexture ) ;
+
+ALIAS: D3DXCreateVolumeTextureFromResource D3DXCreateVolumeTextureFromResourceW
+
+FUNCTION: HRESULT
+    D3DXCreateTextureFromFileExA (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCSTR                    pSrcFile,
+        UINT                      Width,
+        UINT                      Height,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        DWORD                     Filter,
+        DWORD                     MipFilter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo,
+        PALETTEENTRY*             pPalette,
+        LPDIRECT3DTEXTURE9*       ppTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateTextureFromFileExW (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCWSTR                   pSrcFile,
+        UINT                      Width,
+        UINT                      Height,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        DWORD                     Filter,
+        DWORD                     MipFilter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo,
+        PALETTEENTRY*             pPalette,
+        LPDIRECT3DTEXTURE9*       ppTexture ) ;
+
+ALIAS: D3DXCreateTextureFromFileEx D3DXCreateTextureFromFileExW
+
+FUNCTION: HRESULT
+    D3DXCreateCubeTextureFromFileExA (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCSTR                    pSrcFile,
+        UINT                      Size,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        DWORD                     Filter,
+        DWORD                     MipFilter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo,
+        PALETTEENTRY*             pPalette,
+        LPDIRECT3DCUBETEXTURE9*   ppCubeTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateCubeTextureFromFileExW (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCWSTR                   pSrcFile,
+        UINT                      Size,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        DWORD                     Filter,
+        DWORD                     MipFilter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo,
+        PALETTEENTRY*             pPalette,
+        LPDIRECT3DCUBETEXTURE9*   ppCubeTexture ) ;
+
+ALIAS: D3DXCreateCubeTextureFromFileEx D3DXCreateCubeTextureFromFileExW
+
+FUNCTION: HRESULT
+    D3DXCreateVolumeTextureFromFileExA (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCSTR                    pSrcFile,
+        UINT                      Width,
+        UINT                      Height,
+        UINT                      Depth,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        DWORD                     Filter,
+        DWORD                     MipFilter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo,
+        PALETTEENTRY*             pPalette,
+        LPDIRECT3DVOLUMETEXTURE9* ppVolumeTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateVolumeTextureFromFileExW (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCWSTR                   pSrcFile,
+        UINT                      Width,
+        UINT                      Height,
+        UINT                      Depth,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        DWORD                     Filter,
+        DWORD                     MipFilter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo,
+        PALETTEENTRY*             pPalette,
+        LPDIRECT3DVOLUMETEXTURE9* ppVolumeTexture ) ;
+
+ALIAS: D3DXCreateVolumeTextureFromFileEx D3DXCreateVolumeTextureFromFileExW
+
+FUNCTION: HRESULT
+    D3DXCreateTextureFromResourceExA (
+        LPDIRECT3DDEVICE9         pDevice,
+        HMODULE                   hSrcModule,
+        LPCSTR                    pSrcResource,
+        UINT                      Width,
+        UINT                      Height,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        DWORD                     Filter,
+        DWORD                     MipFilter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo,
+        PALETTEENTRY*             pPalette,
+        LPDIRECT3DTEXTURE9*       ppTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateTextureFromResourceExW (
+        LPDIRECT3DDEVICE9         pDevice,
+        HMODULE                   hSrcModule,
+        LPCWSTR                   pSrcResource,
+        UINT                      Width,
+        UINT                      Height,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        DWORD                     Filter,
+        DWORD                     MipFilter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo,
+        PALETTEENTRY*             pPalette,
+        LPDIRECT3DTEXTURE9*       ppTexture ) ;
+
+ALIAS: D3DXCreateTextureFromResourceEx D3DXCreateTextureFromResourceExW
+
+FUNCTION: HRESULT
+    D3DXCreateCubeTextureFromResourceExA (
+        LPDIRECT3DDEVICE9         pDevice,
+        HMODULE                   hSrcModule,
+        LPCSTR                    pSrcResource,
+        UINT                      Size,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        DWORD                     Filter,
+        DWORD                     MipFilter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo,
+        PALETTEENTRY*             pPalette,
+        LPDIRECT3DCUBETEXTURE9*   ppCubeTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateCubeTextureFromResourceExW (
+        LPDIRECT3DDEVICE9         pDevice,
+        HMODULE                   hSrcModule,
+        LPCWSTR                   pSrcResource,
+        UINT                      Size,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        DWORD                     Filter,
+        DWORD                     MipFilter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo,
+        PALETTEENTRY*             pPalette,
+        LPDIRECT3DCUBETEXTURE9*   ppCubeTexture ) ;
+
+ALIAS: D3DXCreateCubeTextureFromResourceEx D3DXCreateCubeTextureFromResourceExW
+
+FUNCTION: HRESULT
+    D3DXCreateVolumeTextureFromResourceExA (
+        LPDIRECT3DDEVICE9         pDevice,
+        HMODULE                   hSrcModule,
+        LPCSTR                    pSrcResource,
+        UINT                      Width,
+        UINT                      Height,
+        UINT                      Depth,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        DWORD                     Filter,
+        DWORD                     MipFilter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo,
+        PALETTEENTRY*             pPalette,
+        LPDIRECT3DVOLUMETEXTURE9* ppVolumeTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateVolumeTextureFromResourceExW (
+        LPDIRECT3DDEVICE9         pDevice,
+        HMODULE                   hSrcModule,
+        LPCWSTR                   pSrcResource,
+        UINT                      Width,
+        UINT                      Height,
+        UINT                      Depth,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        DWORD                     Filter,
+        DWORD                     MipFilter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo,
+        PALETTEENTRY*             pPalette,
+        LPDIRECT3DVOLUMETEXTURE9* ppVolumeTexture ) ;
+
+ALIAS: D3DXCreateVolumeTextureFromResourceEx D3DXCreateVolumeTextureFromResourceExW
+
+FUNCTION: HRESULT
+    D3DXCreateTextureFromFileInMemory (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCVOID                   pSrcData,
+        UINT                      SrcDataSize,
+        LPDIRECT3DTEXTURE9*       ppTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateCubeTextureFromFileInMemory (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCVOID                   pSrcData,
+        UINT                      SrcDataSize,
+        LPDIRECT3DCUBETEXTURE9*   ppCubeTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateVolumeTextureFromFileInMemory (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCVOID                   pSrcData,
+        UINT                      SrcDataSize,
+        LPDIRECT3DVOLUMETEXTURE9* ppVolumeTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateTextureFromFileInMemoryEx (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCVOID                   pSrcData,
+        UINT                      SrcDataSize,
+        UINT                      Width,
+        UINT                      Height,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        DWORD                     Filter,
+        DWORD                     MipFilter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo,
+        PALETTEENTRY*             pPalette,
+        LPDIRECT3DTEXTURE9*       ppTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateCubeTextureFromFileInMemoryEx (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCVOID                   pSrcData,
+        UINT                      SrcDataSize,
+        UINT                      Size,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        DWORD                     Filter,
+        DWORD                     MipFilter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo,
+        PALETTEENTRY*             pPalette,
+        LPDIRECT3DCUBETEXTURE9*   ppCubeTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXCreateVolumeTextureFromFileInMemoryEx (
+        LPDIRECT3DDEVICE9         pDevice,
+        LPCVOID                   pSrcData,
+        UINT                      SrcDataSize,
+        UINT                      Width,
+        UINT                      Height,
+        UINT                      Depth,
+        UINT                      MipLevels,
+        DWORD                     Usage,
+        D3DFORMAT                 Format,
+        D3DPOOL                   Pool,
+        DWORD                     Filter,
+        DWORD                     MipFilter,
+        D3DCOLOR                  ColorKey,
+        D3DXIMAGE_INFO*           pSrcInfo,
+        PALETTEENTRY*             pPalette,
+        LPDIRECT3DVOLUMETEXTURE9* ppVolumeTexture ) ;
+
+FUNCTION: HRESULT
+    D3DXSaveTextureToFileA (
+        LPCSTR                    pDestFile,
+        D3DXIMAGE_FILEFORMAT      DestFormat,
+        LPDIRECT3DBASETEXTURE9    pSrcTexture,
+        PALETTEENTRY*             pSrcPalette ) ;
+
+FUNCTION: HRESULT
+    D3DXSaveTextureToFileW (
+        LPCWSTR                   pDestFile,
+        D3DXIMAGE_FILEFORMAT      DestFormat,
+        LPDIRECT3DBASETEXTURE9    pSrcTexture,
+        PALETTEENTRY*             pSrcPalette ) ;
+
+ALIAS: D3DXSaveTextureToFile D3DXSaveTextureToFileW
+
+FUNCTION: HRESULT
+    D3DXSaveTextureToFileInMemory (
+        LPD3DXBUFFER*             ppDestBuf,
+        D3DXIMAGE_FILEFORMAT      DestFormat,
+        LPDIRECT3DBASETEXTURE9    pSrcTexture,
+        PALETTEENTRY*             pSrcPalette ) ;
+
+FUNCTION: HRESULT
+    D3DXFilterTexture (
+        LPDIRECT3DBASETEXTURE9    pBaseTexture,
+        PALETTEENTRY*             pPalette,
+        UINT                      SrcLevel,
+        DWORD                     Filter ) ;
+
+ALIAS: D3DXFilterCubeTexture D3DXFilterTexture
+ALIAS: D3DXFilterVolumeTexture D3DXFilterTexture
+
+FUNCTION: HRESULT
+    D3DXFillTexture (
+        LPDIRECT3DTEXTURE9        pTexture,
+        LPD3DXFILL2D              pFunction,
+        LPVOID                    pData ) ;
+
+FUNCTION: HRESULT
+    D3DXFillCubeTexture (
+        LPDIRECT3DCUBETEXTURE9    pCubeTexture,
+        LPD3DXFILL3D              pFunction,
+        LPVOID                    pData ) ;
+
+FUNCTION: HRESULT
+    D3DXFillVolumeTexture (
+        LPDIRECT3DVOLUMETEXTURE9  pVolumeTexture,
+        LPD3DXFILL3D              pFunction,
+        LPVOID                    pData ) ;
+
+FUNCTION: HRESULT
+    D3DXFillTextureTX (
+        LPDIRECT3DTEXTURE9        pTexture,
+        LPD3DXTEXTURESHADER       pTextureShader ) ;
+
+FUNCTION: HRESULT
+    D3DXFillCubeTextureTX (
+        LPDIRECT3DCUBETEXTURE9    pCubeTexture,
+        LPD3DXTEXTURESHADER       pTextureShader ) ;
+
+
+FUNCTION: HRESULT
+    D3DXFillVolumeTextureTX (
+        LPDIRECT3DVOLUMETEXTURE9  pVolumeTexture,
+        LPD3DXTEXTURESHADER       pTextureShader ) ;
+
+FUNCTION: HRESULT
+    D3DXComputeNormalMap (
+        LPDIRECT3DTEXTURE9        pTexture,
+        LPDIRECT3DTEXTURE9        pSrcTexture,
+        PALETTEENTRY*       pSrcPalette,
+        DWORD                     Flags,
+        DWORD                     Channel,
+        FLOAT                     Amplitude ) ;
diff --git a/basis/windows/directx/d3dx9tex/summary.txt b/basis/windows/directx/d3dx9tex/summary.txt
new file mode 100644 (file)
index 0000000..b714b21
--- /dev/null
@@ -0,0 +1 @@
+DirectX 9 texture library bindings. Corresponds to d3dx9tex.h.
diff --git a/basis/windows/directx/d3dx9tex/tags.txt b/basis/windows/directx/d3dx9tex/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/d3dx9xof/authors.txt b/basis/windows/directx/d3dx9xof/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/d3dx9xof/d3dx9xof.factor b/basis/windows/directx/d3dx9xof/d3dx9xof.factor
new file mode 100644 (file)
index 0000000..bd55854
--- /dev/null
@@ -0,0 +1,111 @@
+USING: alien.syntax classes.struct windows.com
+windows.com.syntax windows.kernel32 windows.ole32 windows.types ;
+IN: windows.directx.d3dx9xof
+
+LIBRARY: d3dx9
+
+TYPEDEF: DWORD D3DXF_FILEFORMAT
+
+CONSTANT: D3DXF_FILEFORMAT_BINARY          0
+CONSTANT: D3DXF_FILEFORMAT_TEXT            1
+CONSTANT: D3DXF_FILEFORMAT_COMPRESSED      2
+
+TYPEDEF: DWORD D3DXF_FILESAVEOPTIONS
+
+CONSTANT: D3DXF_FILESAVE_TOFILE     0
+CONSTANT: D3DXF_FILESAVE_TOWFILE    1
+
+TYPEDEF: DWORD D3DXF_FILELOADOPTIONS
+
+CONSTANT: D3DXF_FILELOAD_FROMFILE     0
+CONSTANT: D3DXF_FILELOAD_FROMWFILE    1
+CONSTANT: D3DXF_FILELOAD_FROMRESOURCE 2
+CONSTANT: D3DXF_FILELOAD_FROMMEMORY   3
+
+STRUCT: D3DXF_FILELOADRESOURCE
+    { hModule HMODULE }
+    { lpName  LPCSTR  }
+    { lpType  LPCSTR  } ;
+
+STRUCT: D3DXF_FILELOADMEMORY
+    { lpMemory LPCVOID }
+    { dSize    SIZE_T  } ;
+
+C-TYPE: ID3DXFile
+C-TYPE: ID3DXFileSaveObject
+C-TYPE: ID3DXFileSaveData
+C-TYPE: ID3DXFileEnumObject
+C-TYPE: ID3DXFileData
+
+TYPEDEF: ID3DXFile* LPD3DXFILE
+TYPEDEF: ID3DXFile** LPLPD3DXFILE
+TYPEDEF: ID3DXFileEnumObject* LPD3DXFILEENUMOBJECT
+TYPEDEF: ID3DXFileEnumObject** LPLPD3DXFILEENUMOBJECT
+TYPEDEF: ID3DXFileSaveObject* LPD3DXFILESAVEOBJECT
+TYPEDEF: ID3DXFileSaveObject** LPLPD3DXFILESAVEOBJECT
+TYPEDEF: ID3DXFileData* LPD3DXFILEDATA
+TYPEDEF: ID3DXFileData** LPLPD3DXFILEDATA
+TYPEDEF: ID3DXFileSaveData* LPD3DXFILESAVEDATA
+TYPEDEF: ID3DXFileSaveData** LPLPD3DXFILESAVEDATA
+
+COM-INTERFACE: ID3DXFile IUnknown {cef08cf9-7b4f-4429-9624-2a690a933201}
+    HRESULT CreateEnumObject ( LPCVOID x, D3DXF_FILELOADOPTIONS y,
+        ID3DXFileEnumObject** z )
+    HRESULT CreateSaveObject ( LPCVOID x, D3DXF_FILESAVEOPTIONS y,
+        D3DXF_FILEFORMAT z, ID3DXFileSaveObject** w )
+    HRESULT RegisterTemplates ( LPCVOID x, SIZE_T y )
+    HRESULT RegisterEnumTemplates ( ID3DXFileEnumObject* x ) ;
+
+COM-INTERFACE: ID3DXFileSaveObject IUnknown {cef08cfa-7b4f-4429-9624-2a690a933201}
+    HRESULT GetFile ( ID3DXFile** x )
+    HRESULT AddDataObject ( REFGUID x, LPCSTR y, GUID* z,
+        SIZE_T w, LPCVOID a, ID3DXFileSaveData** b )
+    HRESULT Save ( ) ;
+
+COM-INTERFACE: ID3DXFileSaveData IUnknown {cef08cfb-7b4f-4429-9624-2a690a933201}
+    HRESULT GetSave ( ID3DXFileSaveObject** x )
+    HRESULT GetName ( LPSTR x, SIZE_T* y )
+    HRESULT GetId ( LPGUID x )
+    HRESULT GetType ( GUID* x )
+    HRESULT AddDataObject ( REFGUID x, LPCSTR y, GUID* z,
+        SIZE_T w, LPCVOID a, ID3DXFileSaveData** b )
+    HRESULT AddDataReference ( LPCSTR x, GUID* y ) ;
+
+COM-INTERFACE: ID3DXFileEnumObject IUnknown {cef08cfc-7b4f-4429-9624-2a690a933201}
+    HRESULT GetFile ( ID3DXFile** x )
+    HRESULT GetChildren ( SIZE_T* x )
+    HRESULT GetChild ( SIZE_T x, ID3DXFileData** y )
+    HRESULT GetDataObjectById ( REFGUID x, ID3DXFileData** y )
+    HRESULT GetDataObjectByName ( LPCSTR x, ID3DXFileData** y ) ;
+
+COM-INTERFACE: ID3DXFileData IUnknown {cef08cfd-7b4f-4429-9624-2a690a933201}
+    HRESULT GetEnum ( ID3DXFileEnumObject** x )
+    HRESULT GetName ( LPSTR x, SIZE_T* y )
+    HRESULT GetId ( LPGUID x )
+    HRESULT Lock ( SIZE_T* x, LPCVOID* y )
+    HRESULT Unlock ( )
+    HRESULT GetType ( GUID* x )
+    BOOL IsReference ( )
+    HRESULT GetChildren ( SIZE_T* x )
+    HRESULT GetChild ( SIZE_T x, ID3DXFileData** y ) ;
+
+FUNCTION: HRESULT D3DXFileCreate ( ID3DXFile** lplpDirectXFile ) ;
+
+CONSTANT: D3DXFERR_BADOBJECT              HEX: 88760384
+CONSTANT: D3DXFERR_BADVALUE               HEX: 88760385
+CONSTANT: D3DXFERR_BADTYPE                HEX: 88760386
+CONSTANT: D3DXFERR_NOTFOUND               HEX: 88760387
+CONSTANT: D3DXFERR_NOTDONEYET             HEX: 88760388
+CONSTANT: D3DXFERR_FILENOTFOUND           HEX: 88760389
+CONSTANT: D3DXFERR_RESOURCENOTFOUND       HEX: 8876038A
+CONSTANT: D3DXFERR_BADRESOURCE            HEX: 8876038B
+CONSTANT: D3DXFERR_BADFILETYPE            HEX: 8876038C
+CONSTANT: D3DXFERR_BADFILEVERSION         HEX: 8876038D
+CONSTANT: D3DXFERR_BADFILEFLOATSIZE       HEX: 8876038E
+CONSTANT: D3DXFERR_BADFILE                HEX: 8876038F
+CONSTANT: D3DXFERR_PARSEERROR             HEX: 88760390
+CONSTANT: D3DXFERR_BADARRAYSIZE           HEX: 88760391
+CONSTANT: D3DXFERR_BADDATAREFERENCE       HEX: 88760392
+CONSTANT: D3DXFERR_NOMOREOBJECTS          HEX: 88760393
+CONSTANT: D3DXFERR_NOMOREDATA             HEX: 88760394
+CONSTANT: D3DXFERR_BADCACHEFILE           HEX: 88760395
diff --git a/basis/windows/directx/d3dx9xof/summary.txt b/basis/windows/directx/d3dx9xof/summary.txt
new file mode 100644 (file)
index 0000000..7f88f93
--- /dev/null
@@ -0,0 +1 @@
+File library bindings for DirectX. Corresponds to d3dx9xof.h.
diff --git a/basis/windows/directx/d3dx9xof/tags.txt b/basis/windows/directx/d3dx9xof/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/dcommon/authors.txt b/basis/windows/directx/dcommon/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/dcommon/dcommon.factor b/basis/windows/directx/dcommon/dcommon.factor
new file mode 100644 (file)
index 0000000..3b80bd4
--- /dev/null
@@ -0,0 +1,7 @@
+USING: alien.c-types alien.syntax ;
+IN: windows.directx.dcommon
+
+C-ENUM: DWRITE_MEASURING_MODE_NATURAL
+        DWRITE_MEASURING_MODE_GDI_CLASSIC
+        DWRITE_MEASURING_MODE_GDI_NATURAL ;
+TYPEDEF: int DWRITE_MEASURING_MODE
diff --git a/basis/windows/directx/dcommon/summary.txt b/basis/windows/directx/dcommon/summary.txt
new file mode 100644 (file)
index 0000000..902e5fa
--- /dev/null
@@ -0,0 +1 @@
+Common DirectX constants. Corresponds to dcommon.h.
diff --git a/basis/windows/directx/dcommon/tags.txt b/basis/windows/directx/dcommon/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/dwrite/authors.txt b/basis/windows/directx/dwrite/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/dwrite/dwrite.factor b/basis/windows/directx/dwrite/dwrite.factor
new file mode 100644 (file)
index 0000000..3e4167e
--- /dev/null
@@ -0,0 +1,676 @@
+USING: alien.c-types alien.syntax classes.struct windows.com
+windows.com.syntax windows.directx.dcommon windows.kernel32
+windows.ole32 windows.types ;
+IN: windows.directx.dwrite
+
+LIBRARY: dwrite
+
+C-ENUM:
+    DWRITE_FONT_FILE_TYPE_UNKNOWN
+    DWRITE_FONT_FILE_TYPE_CFF
+    DWRITE_FONT_FILE_TYPE_TRUETYPE
+    DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION
+    DWRITE_FONT_FILE_TYPE_TYPE1_PFM
+    DWRITE_FONT_FILE_TYPE_TYPE1_PFB
+    DWRITE_FONT_FILE_TYPE_VECTOR
+    DWRITE_FONT_FILE_TYPE_BITMAP ;
+TYPEDEF: int DWRITE_FONT_FILE_TYPE
+
+C-ENUM:
+    DWRITE_FONT_FACE_TYPE_CFF
+    DWRITE_FONT_FACE_TYPE_TRUETYPE
+    DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION
+    DWRITE_FONT_FACE_TYPE_TYPE1
+    DWRITE_FONT_FACE_TYPE_VECTOR
+    DWRITE_FONT_FACE_TYPE_BITMAP
+    DWRITE_FONT_FACE_TYPE_UNKNOWN ;
+TYPEDEF: int DWRITE_FONT_FACE_TYPE
+
+CONSTANT: DWRITE_FONT_SIMULATIONS_NONE    0
+CONSTANT: DWRITE_FONT_SIMULATIONS_BOLD    1
+CONSTANT: DWRITE_FONT_SIMULATIONS_OBLIQUE 2
+TYPEDEF: int DWRITE_FONT_SIMULATIONS
+
+CONSTANT: DWRITE_FONT_WEIGHT_THIN        100
+CONSTANT: DWRITE_FONT_WEIGHT_EXTRA_LIGHT 200
+CONSTANT: DWRITE_FONT_WEIGHT_ULTRA_LIGHT 200
+CONSTANT: DWRITE_FONT_WEIGHT_LIGHT       300
+CONSTANT: DWRITE_FONT_WEIGHT_NORMAL      400
+CONSTANT: DWRITE_FONT_WEIGHT_REGULAR     400
+CONSTANT: DWRITE_FONT_WEIGHT_MEDIUM      500
+CONSTANT: DWRITE_FONT_WEIGHT_DEMI_BOLD   600
+CONSTANT: DWRITE_FONT_WEIGHT_SEMI_BOLD   600
+CONSTANT: DWRITE_FONT_WEIGHT_BOLD        700
+CONSTANT: DWRITE_FONT_WEIGHT_EXTRA_BOLD  800
+CONSTANT: DWRITE_FONT_WEIGHT_ULTRA_BOLD  800
+CONSTANT: DWRITE_FONT_WEIGHT_BLACK       900
+CONSTANT: DWRITE_FONT_WEIGHT_HEAVY       900
+CONSTANT: DWRITE_FONT_WEIGHT_EXTRA_BLACK 950
+CONSTANT: DWRITE_FONT_WEIGHT_ULTRA_BLACK 950
+TYPEDEF: int DWRITE_FONT_WEIGHT
+
+CONSTANT: DWRITE_FONT_STRETCH_UNDEFINED       0
+CONSTANT: DWRITE_FONT_STRETCH_ULTRA_CONDENSED 1
+CONSTANT: DWRITE_FONT_STRETCH_EXTRA_CONDENSED 2
+CONSTANT: DWRITE_FONT_STRETCH_CONDENSED       3
+CONSTANT: DWRITE_FONT_STRETCH_SEMI_CONDENSED  4
+CONSTANT: DWRITE_FONT_STRETCH_NORMAL          5
+CONSTANT: DWRITE_FONT_STRETCH_MEDIUM          5
+CONSTANT: DWRITE_FONT_STRETCH_SEMI_EXPANDED   6
+CONSTANT: DWRITE_FONT_STRETCH_EXPANDED        7
+CONSTANT: DWRITE_FONT_STRETCH_EXTRA_EXPANDED  8
+CONSTANT: DWRITE_FONT_STRETCH_ULTRA_EXPANDED  9
+TYPEDEF: int DWRITE_FONT_STRETCH
+
+C-ENUM:
+    DWRITE_FONT_STYLE_NORMAL
+    DWRITE_FONT_STYLE_OBLIQUE
+    DWRITE_FONT_STYLE_ITALIC ;
+TYPEDEF: int DWRITE_FONT_STYLE
+
+C-ENUM:
+    DWRITE_INFORMATIONAL_STRING_NONE
+    DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE
+    DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS
+    DWRITE_INFORMATIONAL_STRING_TRADEMARK
+    DWRITE_INFORMATIONAL_STRING_MANUFACTURER
+    DWRITE_INFORMATIONAL_STRING_DESIGNER
+    DWRITE_INFORMATIONAL_STRING_DESIGNER_URL
+    DWRITE_INFORMATIONAL_STRING_DESCRIPTION
+    DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL
+    DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION
+    DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL
+    DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES
+    DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES
+    DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES
+    DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES
+    DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT ;
+TYPEDEF: int DWRITE_INFORMATIONAL_STRING_ID
+
+STRUCT: DWRITE_FONT_METRICS
+    { designUnitsPerEm       USHORT }
+    { ascent                 USHORT }
+    { descent                USHORT }
+    { lineGap                SHORT  }
+    { capHeight              USHORT }
+    { xHeight                USHORT }
+    { underlinePosition      SHORT  }
+    { underlineThickness     USHORT }
+    { strikethroughPosition  SHORT  }
+    { strikethroughThickness USHORT } ;
+
+STRUCT: DWRITE_GLYPH_METRICS
+    { leftSideBearing   INT32  }
+    { advanceWidth      UINT32 }
+    { rightSideBearing  INT32  }
+    { topSideBearing    INT32  }
+    { advanceHeight     UINT32 }
+    { bottomSideBearing INT32  }
+    { verticalOriginY   INT32  } ;
+
+STRUCT: DWRITE_GLYPH_OFFSET
+    { advanceOffset  FLOAT }
+    { ascenderOffset FLOAT } ;
+
+C-ENUM:
+    DWRITE_FACTORY_TYPE_SHARED
+    DWRITE_FACTORY_TYPE_ISOLATED ;
+TYPEDEF: int DWRITE_FACTORY_TYPE
+
+C-TYPE: IDWriteFontFileStream
+
+COM-INTERFACE: IDWriteFontFileLoader IUnknown {727cad4e-d6af-4c9e-8a08-d695b11caa49}
+    HRESULT CreateStreamFromKey ( void* fontFileReferenceKey, UINT32 fontFileReferenceKeySize, IDWriteFontFileStream** fontFileStream ) ;
+
+COM-INTERFACE: IDWriteLocalFontFileLoader IDWriteFontFileLoader {b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2}
+    HRESULT GetFilePathLengthFromKey ( void* fontFileReferenceKey, UINT32 fontFileReferenceKeySize, UINT32* filePathLength )
+    HRESULT GetFilePathFromKey ( void* fontFileReferenceKey, UINT32 fontFileReferenceKeySize, WCHAR* filePath, UINT32 filePathSize )
+    HRESULT GetLastWriteTimeFromKey ( void* fontFileReferenceKey, UINT32 fontFileReferenceKeySize, FILETIME* lastWriteTime ) ;
+
+COM-INTERFACE: IDWriteFontFileStream IUnknown {6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0}
+    HRESULT ReadFileFragment ( void** fragmentStart, UINT64 fileOffset, UINT64 fragmentSize, void** fragmentContext )
+    void ReleaseFileFragment ( void* fragmentContext )
+    HRESULT GetFileSize ( UINT64* fileSize )
+    HRESULT GetLastWriteTime ( UINT64* lastWriteTime ) ;
+
+COM-INTERFACE: IDWriteFontFile IUnknown {739d886a-cef5-47dc-8769-1a8b41bebbb0}
+    HRESULT GetReferenceKey ( void** fontFileReferenceKey, UINT32* fontFileReferenceKeySize )
+    HRESULT GetLoader ( IDWriteFontFileLoader** fontFileLoader )
+    HRESULT Analyze ( BOOL* isSupportedFontType, DWRITE_FONT_FILE_TYPE* fontFileType, DWRITE_FONT_FACE_TYPE* fontFaceType, UINT32* numberOfFaces ) ;
+
+TYPEDEF: int DWRITE_PIXEL_GEOMETRY
+C-ENUM:
+    DWRITE_PIXEL_GEOMETRY_FLAT
+    DWRITE_PIXEL_GEOMETRY_RGB
+    DWRITE_PIXEL_GEOMETRY_BGR ;
+
+TYPEDEF: int DWRITE_RENDERING_MODE
+C-ENUM:
+    DWRITE_RENDERING_MODE_DEFAULT
+    DWRITE_RENDERING_MODE_ALIASED
+    DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC
+    DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL
+    DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL
+    DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC
+    DWRITE_RENDERING_MODE_OUTLINE ;
+
+STRUCT: DWRITE_MATRIX
+    { m11 FLOAT }
+    { m12 FLOAT }
+    { m21 FLOAT }
+    { m22 FLOAT }
+    { dx  FLOAT }
+    { dy  FLOAT } ;
+
+COM-INTERFACE: IDWriteRenderingParams IUnknown {2f0da53a-2add-47cd-82ee-d9ec34688e75}
+    FLOAT GetGamma ( )
+    FLOAT GetEnhancedContrast ( )
+    FLOAT GetClearTypeLevel ( )
+    DWRITE_PIXEL_GEOMETRY GetPixelGeometry ( )
+    DWRITE_RENDERING_MODE GetRenderingMode ( ) ;
+
+C-TYPE: ID2D1SimplifiedGeometrySink
+
+TYPEDEF: ID2D1SimplifiedGeometrySink IDWriteGeometrySink
+
+COM-INTERFACE: IDWriteFontFace IUnknown {5f49804d-7024-4d43-bfa9-d25984f53849}
+    DWRITE_FONT_FACE_TYPE GetType ( )
+    HRESULT GetFiles ( UINT32* numberOfFiles, IDWriteFontFile** fontFiles )
+    UINT32 GetIndex ( )
+    DWRITE_FONT_SIMULATIONS GetSimulations ( )
+    BOOL IsSymbolFont ( )
+    void GetMetrics ( DWRITE_FONT_METRICS* fontFaceMetrics )
+    USHORT GetGlyphCount ( )
+    HRESULT GetDesignGlyphMetrics ( USHORT* glyphIndices, UINT32 glyphCount, DWRITE_GLYPH_METRICS* glyphMetrics, BOOL isSideways )
+    HRESULT GetGlyphIndices ( UINT32* codePoints, UINT32 codePointCount, USHORT* glyphIndices )
+    HRESULT TryGetFontTable ( UINT32 openTypeTableTag, void** tableData, UINT32* tableSize, void** tableContext, BOOL* exists )
+    void ReleaseFontTable ( void* tableContext )
+    HRESULT GetGlyphRunOutline ( FLOAT emSize, USHORT* glyphIndices, FLOAT* glyphAdvances, DWRITE_GLYPH_OFFSET* glyphOffsets, UINT32 glyphCount, BOOL isSideways, BOOL isRightToLeft, IDWriteGeometrySink* geometrySink )
+    HRESULT GetRecommendedRenderingMode ( FLOAT emSize, FLOAT pixelsPerDip, DWRITE_MEASURING_MODE measuringMode, IDWriteRenderingParams* renderingParams, DWRITE_RENDERING_MODE* renderingMode )
+    HRESULT GetGdiCompatibleMetrics ( FLOAT emSize, FLOAT pixelsPerDip, DWRITE_MATRIX* transform, DWRITE_FONT_METRICS* fontFaceMetrics )
+    HRESULT GetGdiCompatibleGlyphMetrics ( FLOAT emSize, FLOAT pixelsPerDip, DWRITE_MATRIX* transform, BOOL useGdiNatural, USHORT* glyphIndices, UINT32 glyphCount, DWRITE_GLYPH_METRICS* glyphMetrics, BOOL isSideways ) ;
+
+C-TYPE: IDWriteFactory
+C-TYPE: IDWriteFontFileEnumerator
+
+COM-INTERFACE: IDWriteFontCollectionLoader IUnknown {cca920e4-52f0-492b-bfa8-29c72ee0a468}
+    HRESULT CreateEnumeratorFromKey ( IDWriteFactory* factory, void* collectionKey, UINT32 collectionKeySize, IDWriteFontFileEnumerator** fontFileEnumerator ) ;
+
+COM-INTERFACE: IDWriteFontFileEnumerator IUnknown {72755049-5ff7-435d-8348-4be97cfa6c7c}
+    HRESULT MoveNext ( BOOL* hasCurrentFile )
+    HRESULT GetCurrentFontFile ( IDWriteFontFile** fontFile ) ;
+
+COM-INTERFACE: IDWriteLocalizedStrings IUnknown {08256209-099a-4b34-b86d-c22b110e7771}
+    UINT32 GetCount ( )
+    HRESULT FindLocaleName ( WCHAR* localeName, UINT32* index, BOOL* exists )
+    HRESULT GetLocaleNameLength ( UINT32 index, UINT32* length )
+    HRESULT GetLocaleName ( UINT32 index, WCHAR* localeName, UINT32 size )
+    HRESULT GetStringLength ( UINT32 index, UINT32* length )
+    HRESULT GetString ( UINT32 index, WCHAR* stringBuffer, UINT32 size ) ;
+
+C-TYPE: IDWriteFontFamily
+C-TYPE: IDWriteFont
+
+COM-INTERFACE: IDWriteFontCollection IUnknown {a84cee02-3eea-4eee-a827-87c1a02a0fcc}
+    UINT32 GetFontFamilyCount ( )
+    HRESULT GetFontFamily ( UINT32 index, IDWriteFontFamily** fontFamily )
+    HRESULT FindFamilyName ( WCHAR* familyName, UINT32* index, BOOL* exists )
+    HRESULT GetFontFromFontFace ( IDWriteFontFace* fontFace, IDWriteFont** font ) ;
+
+COM-INTERFACE: IDWriteFontList IUnknown {1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb}
+    HRESULT GetFontCollection ( IDWriteFontCollection** fontCollection )
+    UINT32 GetFontCount ( )
+    HRESULT GetFont ( UINT32 index, IDWriteFont** font ) ;
+
+COM-INTERFACE: IDWriteFontFamily IDWriteFontList {da20d8ef-812a-4c43-9802-62ec4abd7add}
+    HRESULT GetFamilyNames ( IDWriteLocalizedStrings** names )
+    HRESULT GetFirstMatchingFont ( DWRITE_FONT_WEIGHT  weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFont** matchingFont )
+    HRESULT GetMatchingFonts ( DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontList** matchingFonts ) ;
+
+COM-INTERFACE: IDWriteFont IUnknown {acd16696-8c14-4f5d-877e-fe3fc1d32737}
+    HRESULT GetFontFamily ( IDWriteFontFamily** fontFamily )
+    DWRITE_FONT_WEIGHT GetWeight ( )
+    DWRITE_FONT_STRETCH GetStretch ( )
+    DWRITE_FONT_STYLE GetStyle ( )
+    BOOL IsSymbolFont ( )
+    HRESULT GetFaceNames ( IDWriteLocalizedStrings** names )
+    HRESULT GetInformationalStrings ( DWRITE_INFORMATIONAL_STRING_ID informationalStringID, IDWriteLocalizedStrings** informationalStrings, BOOL* exists )
+    DWRITE_FONT_SIMULATIONS GetSimulations ( )
+    void GetMetrics ( DWRITE_FONT_METRICS* fontMetrics )
+    HRESULT HasCharacter ( UINT32 unicodeValue, BOOL* exists )
+    HRESULT CreateFontFace ( IDWriteFontFace** fontFace ) ;
+
+TYPEDEF: int DWRITE_READING_DIRECTION
+C-ENUM:
+    DWRITE_READING_DIRECTION_LEFT_TO_RIGHT
+    DWRITE_READING_DIRECTION_RIGHT_TO_LEFT ;
+
+TYPEDEF: int DWRITE_FLOW_DIRECTION
+C-ENUM:
+    DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM ;
+
+TYPEDEF: int DWRITE_TEXT_ALIGNMENT
+C-ENUM:
+    DWRITE_TEXT_ALIGNMENT_LEADING
+    DWRITE_TEXT_ALIGNMENT_TRAILING
+    DWRITE_TEXT_ALIGNMENT_CENTER ;
+
+TYPEDEF: int DWRITE_PARAGRAPH_ALIGNMENT
+C-ENUM:
+    DWRITE_PARAGRAPH_ALIGNMENT_NEAR
+    DWRITE_PARAGRAPH_ALIGNMENT_FAR
+    DWRITE_PARAGRAPH_ALIGNMENT_CENTER ;
+
+TYPEDEF: int DWRITE_WORD_WRAPPING
+C-ENUM:
+    DWRITE_WORD_WRAPPING_WRAP
+    DWRITE_WORD_WRAPPING_NO_WRAP ;
+
+TYPEDEF: int DWRITE_LINE_SPACING_METHOD
+C-ENUM:
+    DWRITE_LINE_SPACING_METHOD_DEFAULT
+    DWRITE_LINE_SPACING_METHOD_UNIFORM ;
+
+TYPEDEF: int DWRITE_TRIMMING_GRANULARITY
+C-ENUM:
+    DWRITE_TRIMMING_GRANULARITY_NONE
+    DWRITE_TRIMMING_GRANULARITY_CHARACTER
+    DWRITE_TRIMMING_GRANULARITY_WORD ;
+
+TYPEDEF: int DWRITE_FONT_FEATURE_TAG
+CONSTANT: DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS               HEX: 63726661
+CONSTANT: DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS       HEX: 63703263
+CONSTANT: DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS        HEX: 63733263
+CONSTANT: DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES               HEX: 746c6163
+CONSTANT: DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS                HEX: 65736163
+CONSTANT: DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION     HEX: 706d6363
+CONSTANT: DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES                HEX: 67696c63
+CONSTANT: DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING                     HEX: 70737063
+CONSTANT: DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH                    HEX: 68777363
+CONSTANT: DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING                 HEX: 73727563
+CONSTANT: DWRITE_FONT_FEATURE_TAG_DEFAULT                             HEX: 746c6664
+CONSTANT: DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES             HEX: 67696c64
+CONSTANT: DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS                        HEX: 74707865
+CONSTANT: DWRITE_FONT_FEATURE_TAG_FRACTIONS                           HEX: 63617266
+CONSTANT: DWRITE_FONT_FEATURE_TAG_FULL_WIDTH                          HEX: 64697766
+CONSTANT: DWRITE_FONT_FEATURE_TAG_HALF_FORMS                          HEX: 666c6168
+CONSTANT: DWRITE_FONT_FEATURE_TAG_HALANT_FORMS                        HEX: 6e6c6168
+CONSTANT: DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH                HEX: 746c6168
+CONSTANT: DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS                    HEX: 74736968
+CONSTANT: DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES          HEX: 616e6b68
+CONSTANT: DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES                HEX: 67696c68
+CONSTANT: DWRITE_FONT_FEATURE_TAG_HALF_WIDTH                          HEX: 64697768
+CONSTANT: DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS                    HEX: 6f6a6f68
+CONSTANT: DWRITE_FONT_FEATURE_TAG_JIS04_FORMS                         HEX: 3430706a
+CONSTANT: DWRITE_FONT_FEATURE_TAG_JIS78_FORMS                         HEX: 3837706a
+CONSTANT: DWRITE_FONT_FEATURE_TAG_JIS83_FORMS                         HEX: 3338706a
+CONSTANT: DWRITE_FONT_FEATURE_TAG_JIS90_FORMS                         HEX: 3039706a
+CONSTANT: DWRITE_FONT_FEATURE_TAG_KERNING                             HEX: 6e72656b
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES                  HEX: 6167696c
+CONSTANT: DWRITE_FONT_FEATURE_TAG_LINING_FIGURES                      HEX: 6d756e6c
+CONSTANT: DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS                     HEX: 6c636f6c
+CONSTANT: DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING                    HEX: 6b72616d
+CONSTANT: DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK                  HEX: 6b72676d
+CONSTANT: DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING            HEX: 6b6d6b6d
+CONSTANT: DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS          HEX: 746c616e
+CONSTANT: DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS                     HEX: 6b636c6e
+CONSTANT: DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES                   HEX: 6d756e6f
+CONSTANT: DWRITE_FONT_FEATURE_TAG_ORDINALS                            HEX: 6e64726f
+CONSTANT: DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH        HEX: 746c6170
+CONSTANT: DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS                     HEX: 70616370
+CONSTANT: DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES                HEX: 6d756e70
+CONSTANT: DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS                 HEX: 64697770
+CONSTANT: DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS                      HEX: 64697771
+CONSTANT: DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES                  HEX: 67696c72
+CONSTANT: DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS                 HEX: 79627572
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES                HEX: 746c6173
+CONSTANT: DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS                HEX: 666e6973
+CONSTANT: DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS                      HEX: 70636d73
+CONSTANT: DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS                    HEX: 6c706d73
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1                     HEX: 31307373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2                     HEX: 32307373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3                     HEX: 33307373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4                     HEX: 34307373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5                     HEX: 35307373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6                     HEX: 36307373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7                     HEX: 37307373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8                     HEX: 38307373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9                     HEX: 39307373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10                    HEX: 30317373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11                    HEX: 31317373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12                    HEX: 32317373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13                    HEX: 33317373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14                    HEX: 34317373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15                    HEX: 35317373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16                    HEX: 36317373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17                    HEX: 37317373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18                    HEX: 38317373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19                    HEX: 39317373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20                    HEX: 30327373
+CONSTANT: DWRITE_FONT_FEATURE_TAG_SUBSCRIPT                           HEX: 73627573
+CONSTANT: DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT                         HEX: 73707573
+CONSTANT: DWRITE_FONT_FEATURE_TAG_SWASH                               HEX: 68737773
+CONSTANT: DWRITE_FONT_FEATURE_TAG_TITLING                             HEX: 6c746974
+CONSTANT: DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS              HEX: 6d616e74
+CONSTANT: DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES                     HEX: 6d756e74
+CONSTANT: DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS                   HEX: 64617274
+CONSTANT: DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS                        HEX: 64697774
+CONSTANT: DWRITE_FONT_FEATURE_TAG_UNICASE                             HEX: 63696e75
+CONSTANT: DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO                        HEX: 6f72657a
+
+STRUCT: DWRITE_TEXT_RANGE
+    { startPosition UINT32 }
+    { length        UINT32 } ;
+
+STRUCT: DWRITE_FONT_FEATURE
+    { nameTag   DWRITE_FONT_FEATURE_TAG }
+    { parameter UINT32                  } ;
+
+STRUCT: DWRITE_TYPOGRAPHIC_FEATURES
+    { features     DWRITE_FONT_FEATURE* }
+    { featureCount UINT32               } ;
+
+STRUCT: DWRITE_TRIMMING
+    { granularity    DWRITE_TRIMMING_GRANULARITY }
+    { delimiter      UINT32                      }
+    { delimiterCount UINT32                      } ;
+
+C-TYPE: IDWriteTypography
+C-TYPE: IDWriteInlineObject
+
+COM-INTERFACE: IDWriteTextFormat IUnknown {9c906818-31d7-4fd3-a151-7c5e225db55a}
+    HRESULT SetTextAlignment ( DWRITE_TEXT_ALIGNMENT textAlignment )
+    HRESULT SetParagraphAlignment ( DWRITE_PARAGRAPH_ALIGNMENT paragraphAlignment )
+    HRESULT SetWordWrapping ( DWRITE_WORD_WRAPPING wordWrapping )
+    HRESULT SetReadingDirection ( DWRITE_READING_DIRECTION readingDirection )
+    HRESULT SetFlowDirection ( DWRITE_FLOW_DIRECTION flowDirection )
+    HRESULT SetIncrementalTabStop ( FLOAT incrementalTabStop )
+    HRESULT SetTrimming ( DWRITE_TRIMMING* trimmingOptions, IDWriteInlineObject* trimmingSign )
+    HRESULT SetLineSpacing ( DWRITE_LINE_SPACING_METHOD lineSpacingMethod, FLOAT lineSpacing, FLOAT baseline )
+    DWRITE_TEXT_ALIGNMENT GetTextAlignment ( )
+    DWRITE_PARAGRAPH_ALIGNMENT GetParagraphAlignment ( )
+    DWRITE_WORD_WRAPPING GetWordWrapping ( )
+    DWRITE_READING_DIRECTION GetReadingDirection ( )
+    DWRITE_FLOW_DIRECTION GetFlowDirection ( )
+    FLOAT GetIncrementalTabStop ( )
+    HRESULT GetTrimming ( DWRITE_TRIMMING* trimmingOptions, IDWriteInlineObject** trimmingSign )
+    HRESULT GetLineSpacing ( DWRITE_LINE_SPACING_METHOD* lineSpacingMethod, FLOAT* lineSpacing, FLOAT* baseline )
+    HRESULT GetFontCollection ( IDWriteFontCollection** fontCollection )
+    UINT32 GetFontFamilyNameLength ( )
+    HRESULT GetFontFamilyName ( WCHAR* fontFamilyName, UINT32 nameSize )
+    DWRITE_FONT_WEIGHT GetFontWeight ( )
+    DWRITE_FONT_STYLE GetFontStyle ( )
+    DWRITE_FONT_STRETCH GetFontStretch ( )
+    FLOAT GetFontSize ( )
+    UINT32 GetLocaleNameLength ( )
+    HRESULT GetLocaleName ( WCHAR* localeName, UINT32 nameSize ) ;
+
+COM-INTERFACE: IDWriteTypography IUnknown {55f1112b-1dc2-4b3c-9541-f46894ed85b6}
+    HRESULT AddFontFeature ( DWRITE_FONT_FEATURE fontFeature )
+    UINT32 GetFontFeatureCount ( )
+    HRESULT GetFontFeature ( UINT32 fontFeatureIndex, DWRITE_FONT_FEATURE* fontFeature ) ;
+
+CONSTANT: DWRITE_SCRIPT_SHAPES_DEFAULT   0
+CONSTANT: DWRITE_SCRIPT_SHAPES_NO_VISUAL 1
+TYPEDEF: int DWRITE_SCRIPT_SHAPES
+
+STRUCT: DWRITE_SCRIPT_ANALYSIS
+    { script USHORT               }
+    { shapes DWRITE_SCRIPT_SHAPES } ;
+
+C-ENUM:
+    DWRITE_BREAK_CONDITION_NEUTRAL
+    DWRITE_BREAK_CONDITION_CAN_BREAK
+    DWRITE_BREAK_CONDITION_MAY_NOT_BREAK
+    DWRITE_BREAK_CONDITION_MUST_BREAK ;
+TYPEDEF: int DWRITE_BREAK_CONDITION
+
+STRUCT: DWRITE_LINE_BREAKPOINT
+    { data BYTE } ;
+
+C-ENUM:
+    DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE
+    DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL
+    DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE
+    DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL
+    DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL ;
+TYPEDEF: int DWRITE_NUMBER_SUBSTITUTION_METHOD
+
+COM-INTERFACE: IDWriteNumberSubstitution IUnknown {14885CC9-BAB0-4f90-B6ED-5C366A2CD03D} ;
+
+STRUCT: DWRITE_SHAPING_TEXT_PROPERTIES
+    { data USHORT } ;
+
+STRUCT: DWRITE_SHAPING_GLYPH_PROPERTIES
+    { data USHORT } ;
+
+COM-INTERFACE: IDWriteTextAnalysisSource IUnknown {688e1a58-5094-47c8-adc8-fbcea60ae92b}
+    HRESULT GetTextAtPosition ( UINT32 textPosition, WCHAR** textString, UINT32* textLength )
+    HRESULT GetTextBeforePosition ( UINT32 textPosition, WCHAR** textString, UINT32* textLength )
+    DWRITE_READING_DIRECTION GetParagraphReadingDirection ( )
+    HRESULT GetLocaleName ( UINT32 textPosition, UINT32* textLength, WCHAR** localeName )
+    HRESULT GetNumberSubstitution ( UINT32 textPosition, UINT32* textLength, IDWriteNumberSubstitution** numberSubstitution ) ;
+
+COM-INTERFACE: IDWriteTextAnalysisSink IUnknown {5810cd44-0ca0-4701-b3fa-bec5182ae4f6}
+    HRESULT SetScriptAnalysis ( UINT32 textPosition, UINT32 textLength, DWRITE_SCRIPT_ANALYSIS* scriptAnalysis )
+    HRESULT SetLineBreakpoints ( UINT32 textPosition, UINT32 textLength, DWRITE_LINE_BREAKPOINT* lineBreakpoints )
+    HRESULT SetBidiLevel ( UINT32 textPosition, UINT32 textLength, BYTE explicitLevel, BYTE resolvedLevel )
+    HRESULT SetNumberSubstitution ( UINT32 textPosition, UINT32 textLength, IDWriteNumberSubstitution* numberSubstitution ) ;
+
+COM-INTERFACE: IDWriteTextAnalyzer IUnknown {b7e6163e-7f46-43b4-84b3-e4e6249c365d}
+    HRESULT AnalyzeScript ( IDWriteTextAnalysisSource* analysisSource, UINT32 textPosition, UINT32 textLength, IDWriteTextAnalysisSink* analysisSink )
+    HRESULT AnalyzeBidi ( IDWriteTextAnalysisSource* analysisSource, UINT32 textPosition, UINT32 textLength, IDWriteTextAnalysisSink* analysisSink )
+    HRESULT AnalyzeNumberSubstitution ( IDWriteTextAnalysisSource* analysisSource, UINT32 textPosition, UINT32 textLength, IDWriteTextAnalysisSink* analysisSink )
+    HRESULT AnalyzeLineBreakpoints ( IDWriteTextAnalysisSource* analysisSource, UINT32 textPosition, UINT32 textLength, IDWriteTextAnalysisSink* analysisSink )
+    HRESULT GetGlyphs ( WCHAR* textString, UINT32 textLength, IDWriteFontFace* fontFace, BOOL isSideways, BOOL isRightToLeft, DWRITE_SCRIPT_ANALYSIS* scriptAnalysis, WCHAR* localeName, IDWriteNumberSubstitution* numberSubstitution, DWRITE_TYPOGRAPHIC_FEATURES** features, UINT32* featureRangeLengths, UINT32 featureRanges, UINT32 maxGlyphCount, USHORT* clusterMap, DWRITE_SHAPING_TEXT_PROPERTIES* textProps, USHORT* glyphIndices, DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps, UINT32* actualGlyphCount )
+    HRESULT GetGlyphPlacements ( WCHAR* textString, USHORT* clusterMap, DWRITE_SHAPING_TEXT_PROPERTIES* textProps, UINT32 textLength, USHORT* glyphIndices, DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps, UINT32 glyphCount, IDWriteFontFace* fontFace, FLOAT fontEmSize, BOOL isSideways, BOOL isRightToLeft, DWRITE_SCRIPT_ANALYSIS* scriptAnalysis, WCHAR* localeName, DWRITE_TYPOGRAPHIC_FEATURES** features, UINT32* featureRangeLengths, UINT32 featureRanges, FLOAT* glyphAdvances, DWRITE_GLYPH_OFFSET* glyphOffsets )
+    HRESULT GetGdiCompatibleGlyphPlacements ( WCHAR* textString, USHORT* clusterMap, DWRITE_SHAPING_TEXT_PROPERTIES* textProps, UINT32 textLength, USHORT* glyphIndices, DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps, UINT32 glyphCount, IDWriteFontFace* fontFace, FLOAT fontEmSize, FLOAT pixelsPerDip, DWRITE_MATRIX* transform, BOOL useGdiNatural, BOOL isSideways, BOOL isRightToLeft, DWRITE_SCRIPT_ANALYSIS* scriptAnalysis, WCHAR* localeName, DWRITE_TYPOGRAPHIC_FEATURES** features, UINT32* featureRangeLengths, UINT32 featureRanges, FLOAT* glyphAdvances, DWRITE_GLYPH_OFFSET* glyphOffsets ) ;
+
+STRUCT: DWRITE_GLYPH_RUN
+    { fontFace      IDWriteFontFace*     }
+    { fontEmSize    FLOAT                }
+    { glyphCount    UINT32               }
+    { glyphIndices  USHORT*              }
+    { glyphAdvances FLOAT*               }
+    { glyphOffsets  DWRITE_GLYPH_OFFSET* }
+    { isSideways    BOOL                 }
+    { bidiLevel     UINT32               } ;
+
+STRUCT: DWRITE_GLYPH_RUN_DESCRIPTION
+    { localeName   WCHAR*  }
+    { string       WCHAR*  }
+    { stringLength UINT32  }
+    { clusterMap   USHORT* }
+    { textPosition UINT32  } ;
+
+STRUCT: DWRITE_UNDERLINE
+    { width            FLOAT                    }
+    { thickness        FLOAT                    }
+    { offset           FLOAT                    }
+    { runHeight        FLOAT                    }
+    { readingDirection DWRITE_READING_DIRECTION }
+    { flowDirection    DWRITE_FLOW_DIRECTION    }
+    { localeName       WCHAR*                   }
+    { measuringMode    DWRITE_MEASURING_MODE    } ;
+
+STRUCT: DWRITE_STRIKETHROUGH
+    { width            FLOAT                    }
+    { thickness        FLOAT                    }
+    { offset           FLOAT                    }
+    { readingDirection DWRITE_READING_DIRECTION }
+    { flowDirection    DWRITE_FLOW_DIRECTION    }
+    { localeName       WCHAR*                   }
+    { measuringMode    DWRITE_MEASURING_MODE    } ;
+
+STRUCT: DWRITE_LINE_METRICS
+    { length                   UINT32 }
+    { trailingWhitespaceLength UINT32 }
+    { newlineLength            UINT32 }
+    { height                   FLOAT  }
+    { baseline                 FLOAT  }
+    { isTrimmed                BOOL   } ;
+
+STRUCT: DWRITE_CLUSTER_METRICS
+    { width  FLOAT  } 
+    { length USHORT }
+    { data   USHORT } ;
+
+STRUCT: DWRITE_TEXT_METRICS
+    { left                             FLOAT  }
+    { top                              FLOAT  }
+    { width                            FLOAT  }
+    { widthIncludingTrailingWhitespace FLOAT  }
+    { height                           FLOAT  }
+    { layoutWidth                      FLOAT  }
+    { layoutHeight                     FLOAT  }
+    { maxBidiReorderingDepth           UINT32 }
+    { lineCount                        UINT32 } ;
+
+STRUCT: DWRITE_INLINE_OBJECT_METRICS
+    { width             FLOAT }
+    { height            FLOAT }
+    { baseline          FLOAT }
+    { supportsSideways  BOOL  } ;
+
+STRUCT: DWRITE_OVERHANG_METRICS
+    { left   FLOAT }
+    { top    FLOAT }
+    { right  FLOAT }
+    { bottom FLOAT } ;
+
+STRUCT: DWRITE_HIT_TEST_METRICS
+    { textPosition UINT32 }
+    { length       UINT32 }
+    { left         FLOAT  }
+    { top          FLOAT  }
+    { width        FLOAT  }
+    { height       FLOAT  }
+    { bidiLevel    UINT32 }
+    { isText       BOOL   }
+    { isTrimmed    BOOL   } ;
+
+C-TYPE: IDWriteTextRenderer
+
+COM-INTERFACE: IDWriteInlineObject IUnknown {8339FDE3-106F-47ab-8373-1C6295EB10B3}
+    HRESULT Draw ( void* clientDrawingContext, IDWriteTextRenderer* renderer, FLOAT originX, FLOAT originY, BOOL isSideways, BOOL isRightToLeft, IUnknown* clientDrawingEffect )
+    HRESULT GetMetrics ( DWRITE_INLINE_OBJECT_METRICS* metrics )
+    HRESULT GetOverhangMetrics ( DWRITE_OVERHANG_METRICS* overhangs )
+    HRESULT GetBreakConditions ( DWRITE_BREAK_CONDITION* breakConditionBefore, DWRITE_BREAK_CONDITION* breakConditionAfter ) ;
+
+COM-INTERFACE: IDWritePixelSnapping IUnknown {eaf3a2da-ecf4-4d24-b644-b34f6842024b}
+    HRESULT IsPixelSnappingDisabled ( void* clientDrawingContext, BOOL* isDisabled )
+    HRESULT GetCurrentTransform ( void* clientDrawingContext, DWRITE_MATRIX* transform )
+    HRESULT GetPixelsPerDip ( void* clientDrawingContext, FLOAT* pixelsPerDip ) ;
+
+COM-INTERFACE: IDWriteTextRenderer IDWritePixelSnapping {ef8a8135-5cc6-45fe-8825-c5a0724eb819}
+    HRESULT DrawGlyphRun ( void* clientDrawingContext, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_MEASURING_MODE measuringMode, DWRITE_GLYPH_RUN* glyphRun, DWRITE_GLYPH_RUN_DESCRIPTION* glyphRunDescription, IUnknown* clientDrawingEffect )
+    HRESULT DrawUnderline ( void* clientDrawingContext, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_UNDERLINE* underline, IUnknown* clientDrawingEffect )
+    HRESULT DrawStrikethrough ( void* clientDrawingContext, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_STRIKETHROUGH* strikethrough, IUnknown* clientDrawingEffect )
+    HRESULT DrawInlineObject ( void* clientDrawingContext, FLOAT originX, FLOAT originY, IDWriteInlineObject* inlineObject, BOOL isSideways, BOOL isRightToLeft, IUnknown* clientDrawingEffect ) ;
+
+COM-INTERFACE: IDWriteTextLayout IDWriteTextFormat {53737037-6d14-410b-9bfe-0b182bb70961}
+    HRESULT SetMaxWidth ( FLOAT maxWidth )
+    HRESULT SetMaxHeight ( FLOAT maxHeight )
+    HRESULT SetFontCollection ( IDWriteFontCollection* fontCollection, DWRITE_TEXT_RANGE textRange )
+    HRESULT SetFontFamilyName ( WCHAR* fontFamilyName, DWRITE_TEXT_RANGE textRange )
+    HRESULT SetFontWeight ( DWRITE_FONT_WEIGHT fontWeight, DWRITE_TEXT_RANGE textRange )
+    HRESULT SetFontStyle ( DWRITE_FONT_STYLE fontStyle, DWRITE_TEXT_RANGE textRange )
+    HRESULT SetFontStretch ( DWRITE_FONT_STRETCH fontStretch, DWRITE_TEXT_RANGE textRange )
+    HRESULT SetFontSize ( FLOAT fontSize, DWRITE_TEXT_RANGE textRange )
+    HRESULT SetUnderline ( BOOL hasUnderline, DWRITE_TEXT_RANGE textRange )
+    HRESULT SetStrikethrough ( BOOL hasStrikethrough, DWRITE_TEXT_RANGE textRange )
+    HRESULT SetDrawingEffect ( IUnknown* drawingEffect, DWRITE_TEXT_RANGE textRange )
+    HRESULT SetInlineObject ( IDWriteInlineObject* inlineObject, DWRITE_TEXT_RANGE textRange )
+    HRESULT SetTypography ( IDWriteTypography* typography, DWRITE_TEXT_RANGE textRange )
+    HRESULT SetLocaleName ( WCHAR* localeName, DWRITE_TEXT_RANGE textRange )
+    FLOAT GetMaxWidth ( )
+    FLOAT GetMaxHeight ( )
+    HRESULT GetFontCollection2 ( UINT32 currentPosition, IDWriteFontCollection** fontCollection, DWRITE_TEXT_RANGE* textRange )
+    HRESULT GetFontFamilyNameLength2 ( UINT32 currentPosition, UINT32* nameLength, DWRITE_TEXT_RANGE* textRange )
+    HRESULT GetFontFamilyName2 ( UINT32 currentPosition, WCHAR* fontFamilyName, UINT32 nameSize, DWRITE_TEXT_RANGE* textRange )
+    HRESULT GetFontWeight2 ( UINT32 currentPosition, DWRITE_FONT_WEIGHT* fontWeight, DWRITE_TEXT_RANGE* textRange )
+    HRESULT GetFontStyle2 ( UINT32 currentPosition, DWRITE_FONT_STYLE* fontStyle, DWRITE_TEXT_RANGE* textRange )
+    HRESULT GetFontStretch2 ( UINT32 currentPosition, DWRITE_FONT_STRETCH* fontStretch, DWRITE_TEXT_RANGE* textRange )
+    HRESULT GetFontSize2 ( UINT32 currentPosition, FLOAT* fontSize, DWRITE_TEXT_RANGE* textRange )
+    HRESULT GetUnderline ( UINT32 currentPosition, BOOL* hasUnderline, DWRITE_TEXT_RANGE* textRange )
+    HRESULT GetStrikethrough ( UINT32 currentPosition, BOOL* hasStrikethrough, DWRITE_TEXT_RANGE* textRange )
+    HRESULT GetDrawingEffect ( UINT32 currentPosition, IUnknown** drawingEffect, DWRITE_TEXT_RANGE* textRange )
+    HRESULT GetInlineObject ( UINT32 currentPosition, IDWriteInlineObject** inlineObject, DWRITE_TEXT_RANGE* textRange )
+    HRESULT GetTypography ( UINT32 currentPosition, IDWriteTypography** typography, DWRITE_TEXT_RANGE* textRange )
+    HRESULT GetLocaleNameLength2 ( UINT32 currentPosition, UINT32* nameLength, DWRITE_TEXT_RANGE* textRange )
+    HRESULT GetLocaleName2 ( UINT32 currentPosition, WCHAR* localeName, UINT32 nameSize, DWRITE_TEXT_RANGE* textRange )
+    HRESULT Draw ( void* clientDrawingContext, IDWriteTextRenderer* renderer, FLOAT originX, FLOAT originY )
+    HRESULT GetLineMetrics ( DWRITE_LINE_METRICS* lineMetrics, UINT32 maxLineCount, UINT32* actualLineCount )
+    HRESULT GetMetrics ( DWRITE_TEXT_METRICS* textMetrics )
+    HRESULT GetOverhangMetrics ( DWRITE_OVERHANG_METRICS* overhangs )
+    HRESULT GetClusterMetrics ( DWRITE_CLUSTER_METRICS* clusterMetrics, UINT32 maxClusterCount, UINT32* actualClusterCount )
+    HRESULT DetermineMinWidth ( FLOAT* minWidth )
+    HRESULT HitTestPoint ( FLOAT pointX, FLOAT pointY, BOOL* isTrailingHit, BOOL* isInside, DWRITE_HIT_TEST_METRICS* hitTestMetrics )
+    HRESULT HitTestTextPosition ( UINT32 textPosition, BOOL isTrailingHit, FLOAT* pointX, FLOAT* pointY, DWRITE_HIT_TEST_METRICS* hitTestMetrics )
+    HRESULT HitTestTextRange ( UINT32 textPosition, UINT32 textLength, FLOAT originX, FLOAT originY, DWRITE_HIT_TEST_METRICS* hitTestMetrics, UINT32 maxHitTestMetricsCount, UINT32* actualHitTestMetricsCount ) ;
+
+COM-INTERFACE: IDWriteBitmapRenderTarget IUnknown {5e5a32a3-8dff-4773-9ff6-0696eab77267}
+    HRESULT DrawGlyphRun ( FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_MEASURING_MODE measuringMode, DWRITE_GLYPH_RUN* glyphRun, IDWriteRenderingParams* renderingParams, COLORREF textColor, RECT* blackBoxRect )
+    HDC GetMemoryDC ( )
+    FLOAT GetPixelsPerDip ( )
+    HRESULT SetPixelsPerDip ( FLOAT pixelsPerDip )
+    HRESULT GetCurrentTransform ( DWRITE_MATRIX* transform )
+    HRESULT SetCurrentTransform ( DWRITE_MATRIX* transform )
+    HRESULT GetSize ( SIZE* size )
+    HRESULT Resize ( UINT32 width, UINT32 height ) ;
+
+C-TYPE: LOGFONTW
+
+COM-INTERFACE: IDWriteGdiInterop IUnknown {1edd9491-9853-4299-898f-6432983b6f3a}
+    HRESULT CreateFontFromLOGFONT ( LOGFONTW* logFont, IDWriteFont** font )
+    HRESULT ConvertFontToLOGFONT ( IDWriteFont* font, LOGFONTW* logFont, BOOL* isSystemFont )
+    HRESULT ConvertFontFaceToLOGFONT ( IDWriteFontFace* font, LOGFONTW* logFont )
+    HRESULT CreateFontFaceFromHdc ( HDC hdc, IDWriteFontFace** fontFace )
+    HRESULT CreateBitmapRenderTarget ( HDC hdc, UINT32 width, UINT32 height, IDWriteBitmapRenderTarget** renderTarget ) ;
+
+C-ENUM: DWRITE_TEXTURE_ALIASED_1x1
+        DWRITE_TEXTURE_CLEARTYPE_3x1 ;
+TYPEDEF: int DWRITE_TEXTURE_TYPE
+
+CONSTANT: DWRITE_ALPHA_MAX 255
+
+COM-INTERFACE: IDWriteGlyphRunAnalysis IUnknown {7d97dbf7-e085-42d4-81e3-6a883bded118}
+    HRESULT GetAlphaTextureBounds ( DWRITE_TEXTURE_TYPE textureType, RECT* textureBounds )
+    HRESULT CreateAlphaTexture ( DWRITE_TEXTURE_TYPE textureType, RECT* textureBounds, BYTE* alphaValues, UINT32 bufferSize )
+    HRESULT GetAlphaBlendParams ( IDWriteRenderingParams* renderingParams, FLOAT* blendGamma, FLOAT* blendEnhancedContrast, FLOAT* blendClearTypeLevel ) ;
+
+COM-INTERFACE: IDWriteFactory IUnknown {b859ee5a-d838-4b5b-a2e8-1adc7d93db48}
+    HRESULT GetSystemFontCollection ( IDWriteFontCollection** fontCollection, BOOL checkForUpdates )
+    HRESULT CreateCustomFontCollection ( IDWriteFontCollectionLoader* collectionLoader, void* collectionKey, UINT32 collectionKeySize, IDWriteFontCollection** fontCollection )
+    HRESULT RegisterFontCollectionLoader ( IDWriteFontCollectionLoader* fontCollectionLoader )
+    HRESULT UnregisterFontCollectionLoader ( IDWriteFontCollectionLoader* fontCollectionLoader )
+    HRESULT CreateFontFileReference ( WCHAR* filePath, FILETIME* lastWriteTime, IDWriteFontFile** fontFile )
+    HRESULT CreateCustomFontFileReference ( void* fontFileReferenceKey, UINT32 fontFileReferenceKeySize, IDWriteFontFileLoader* fontFileLoader, IDWriteFontFile** fontFile )
+    HRESULT CreateFontFace ( DWRITE_FONT_FACE_TYPE fontFaceType, UINT32 numberOfFiles, IDWriteFontFile** fontFiles, UINT32 faceIndex, DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags, IDWriteFontFace** fontFace )
+    HRESULT CreateRenderingParams ( IDWriteRenderingParams** renderingParams )
+    HRESULT CreateMonitorRenderingParams ( HMONITOR monitor, IDWriteRenderingParams** renderingParams )
+    HRESULT CreateCustomRenderingParams ( FLOAT gamma, FLOAT enhancedContrast, FLOAT clearTypeLevel, DWRITE_PIXEL_GEOMETRY pixelGeometry, DWRITE_RENDERING_MODE renderingMode, IDWriteRenderingParams** renderingParams )
+    HRESULT RegisterFontFileLoader ( IDWriteFontFileLoader* fontFileLoader )
+    HRESULT UnregisterFontFileLoader ( IDWriteFontFileLoader* fontFileLoader )
+    HRESULT CreateTextFormat ( WCHAR* fontFamilyName, IDWriteFontCollection* fontCollection, DWRITE_FONT_WEIGHT fontWeight, DWRITE_FONT_STYLE fontStyle, DWRITE_FONT_STRETCH fontStretch, FLOAT fontSize, WCHAR* localeName, IDWriteTextFormat** textFormat )
+    HRESULT CreateTypography ( IDWriteTypography** typography )
+    HRESULT GetGdiInterop ( IDWriteGdiInterop** gdiInterop )
+    HRESULT CreateTextLayout ( WCHAR* string, UINT32 stringLength, IDWriteTextFormat* textFormat, FLOAT maxWidth, FLOAT maxHeight, IDWriteTextLayout** textLayout )
+    HRESULT CreateGdiCompatibleTextLayout ( WCHAR* string, UINT32 stringLength, IDWriteTextFormat* textFormat, FLOAT layoutWidth, FLOAT layoutHeight, FLOAT pixelsPerDip, DWRITE_MATRIX* transform, BOOL useGdiNatural, IDWriteTextLayout** textLayout )
+    HRESULT CreateEllipsisTrimmingSign ( IDWriteTextFormat* textFormat, IDWriteInlineObject** trimmingSign )
+    HRESULT CreateTextAnalyzer ( IDWriteTextAnalyzer** textAnalyzer )
+    HRESULT CreateNumberSubstitution ( DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod, WCHAR* localeName, BOOL ignoreUserOverride, IDWriteNumberSubstitution** numberSubstitution )
+    HRESULT CreateGlyphRunAnalysis ( DWRITE_GLYPH_RUN* glyphRun, FLOAT pixelsPerDip, DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE renderingMode, DWRITE_MEASURING_MODE measuringMode, FLOAT baselineOriginX, FLOAT baselineOriginY, IDWriteGlyphRunAnalysis** glyphRunAnalysis ) ;
+
+FUNCTION: HRESULT DWriteCreateFactory (
+    DWRITE_FACTORY_TYPE factoryType,
+    REFIID              iid,
+    IUnknown**          factory ) ;
+
+CONSTANT: DWRITE_E_FILEFORMAT             HEX: 88985000
+CONSTANT: DWRITE_E_UNEXPECTED             HEX: 88985001
+CONSTANT: DWRITE_E_NOFONT                 HEX: 88985002
+CONSTANT: DWRITE_E_FILENOTFOUND           HEX: 88985003
+CONSTANT: DWRITE_E_FILEACCESS             HEX: 88985004
+CONSTANT: DWRITE_E_FONTCOLLECTIONOBSOLETE HEX: 88985005
+CONSTANT: DWRITE_E_ALREADYREGISTERED      HEX: 88985006
diff --git a/basis/windows/directx/dwrite/summary.txt b/basis/windows/directx/dwrite/summary.txt
new file mode 100644 (file)
index 0000000..06c2e21
--- /dev/null
@@ -0,0 +1 @@
+Bindings to DirectWrite text rendering. Corresponds to dwrite.h.
diff --git a/basis/windows/directx/dwrite/tags.txt b/basis/windows/directx/dwrite/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/dxfile/authors.txt b/basis/windows/directx/dxfile/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/dxfile/dxfile.factor b/basis/windows/directx/dxfile/dxfile.factor
new file mode 100644 (file)
index 0000000..60d0722
--- /dev/null
@@ -0,0 +1,122 @@
+USING: alien.syntax classes.struct windows.com
+windows.com.syntax windows.kernel32 windows.ole32 windows.types ;
+IN: windows.directx.dxfile
+
+LIBRARY: d3dxof
+
+TYPEDEF: DWORD DXFILEFORMAT
+
+CONSTANT: DXFILEFORMAT_BINARY     0
+CONSTANT: DXFILEFORMAT_TEXT       1
+CONSTANT: DXFILEFORMAT_COMPRESSED 2
+
+TYPEDEF: DWORD DXFILELOADOPTIONS
+
+CONSTANT: DXFILELOAD_FROMFILE     0
+CONSTANT: DXFILELOAD_FROMRESOURCE 1
+CONSTANT: DXFILELOAD_FROMMEMORY   2
+CONSTANT: DXFILELOAD_FROMSTREAM   4
+CONSTANT: DXFILELOAD_FROMURL      8
+
+STRUCT: DXFILELOADRESOURCE
+    { hModule HMODULE }
+    { lpName  LPCTSTR }
+    { lpType  LPCTSTR } ;
+TYPEDEF: DXFILELOADRESOURCE* LPDXFILELOADRESOURCE
+
+STRUCT: DXFILELOADMEMORY
+    { lpMemory LPVOID }
+    { dSize    DWORD  } ;
+TYPEDEF: DXFILELOADMEMORY* LPDXFILELOADMEMORY
+
+C-TYPE: IDirectXFile
+TYPEDEF: IDirectXFile* LPDIRECTXFILE
+TYPEDEF: IDirectXFile** LPLPDIRECTXFILE
+C-TYPE: IDirectXFileEnumObject
+TYPEDEF: IDirectXFileEnumObject* LPDIRECTXFILEENUMOBJECT
+TYPEDEF: IDirectXFileEnumObject** LPLPDIRECTXFILEENUMOBJECT
+C-TYPE: IDirectXFileSaveObject
+TYPEDEF: IDirectXFileSaveObject* LPDIRECTXFILESAVEOBJECT
+TYPEDEF: IDirectXFileSaveObject** LPLPDIRECTXFILESAVEOBJECT
+C-TYPE: IDirectXFileObject
+TYPEDEF: IDirectXFileObject* LPDIRECTXFILEOBJECT
+TYPEDEF: IDirectXFileObject** LPLPDIRECTXFILEOBJECT
+C-TYPE: IDirectXFileData
+TYPEDEF: IDirectXFileData* LPDIRECTXFILEDATA
+TYPEDEF: IDirectXFileData** LPLPDIRECTXFILEDATA
+C-TYPE: IDirectXFileDataReference
+TYPEDEF: IDirectXFileDataReference* LPDIRECTXFILEDATAREFERENCE
+TYPEDEF: IDirectXFileDataReference** LPLPDIRECTXFILEDATAREFERENCE
+C-TYPE: IDirectXFileBinary
+TYPEDEF: IDirectXFileBinary* LPDIRECTXFILEBINARY
+TYPEDEF: IDirectXFileBinary** LPLPDIRECTXFILEBINARY
+
+FUNCTION: HRESULT DirectXFileCreate ( LPDIRECTXFILE* lplpDirectXFile ) ;
+
+COM-INTERFACE: IDirectXFile IUnknown {3d82ab40-62da-11cf-ab39-0020af71e433}
+    HRESULT CreateEnumObject ( LPVOID v, DXFILELOADOPTIONS y,
+                               LPDIRECTXFILEENUMOBJECT* z )
+    HRESULT CreateSaveObject ( LPCSTR v, DXFILEFORMAT y,
+                                 LPDIRECTXFILESAVEOBJECT* z )
+    HRESULT RegisterTemplates ( LPVOID x, DWORD y ) ;
+
+COM-INTERFACE: IDirectXFileEnumObject IUnknown {3d82ab41-62da-11cf-ab39-0020af71e433}
+    HRESULT GetNextDataObject ( LPDIRECTXFILEDATA* x )
+    HRESULT GetDataObjectById ( REFGUID x, LPDIRECTXFILEDATA* y )
+    HRESULT GetDataObjectByName ( LPCSTR x, LPDIRECTXFILEDATA* y ) ;
+
+COM-INTERFACE: IDirectXFileSaveObject IUnknown {3d82ab42-62da-11cf-ab39-0020af71e433}
+    HRESULT SaveTemplates ( DWORD x, GUID** y )
+    HRESULT CreateDataObject ( REFGUID x, LPCSTR y, GUID* z,
+                               DWORD a, LPVOID b, LPDIRECTXFILEDATA* c )
+    HRESULT SaveData ( LPDIRECTXFILEDATA x ) ;
+
+COM-INTERFACE: IDirectXFileObject IUnknown {3d82ab43-62da-11cf-ab39-0020af71e433}
+    HRESULT GetName ( LPSTR x, LPDWORD y )
+    HRESULT GetId ( LPGUID y ) ;
+
+COM-INTERFACE: IDirectXFileData IDirectXFileObject {3d82ab44-62da-11cf-ab39-0020af71e433}
+    HRESULT GetData          ( LPCSTR x, DWORD* y, void** z )
+    HRESULT GetType          ( GUID** x )
+    HRESULT GetNextObject    ( LPDIRECTXFILEOBJECT* x )
+    HRESULT AddDataObject    ( LPDIRECTXFILEDATA y )
+    HRESULT AddDataReference ( LPCSTR x, GUID* y )
+    HRESULT AddBinaryObject  ( LPCSTR x, GUID* y, LPCSTR z, LPVOID a, DWORD b ) ;
+
+COM-INTERFACE: IDirectXFileDataReference IDirectXFileObject {3d82ab45-62da-11cf-ab39-0020af71e433}
+    HRESULT Resolve ( LPDIRECTXFILEDATA* x ) ;
+
+COM-INTERFACE: IDirectXFileBinary IDirectXFileObject {3d82ab46-62da-11cf-ab39-0020af71e433}
+    HRESULT GetSize      ( DWORD* x )
+    HRESULT GetMimeType  ( LPCSTR* x )
+    HRESULT Read         ( LPVOID x, DWORD y, LPDWORD z ) ;
+
+CONSTANT: DXFILE_OK   0
+                               
+CONSTANT: DXFILEERR_BADOBJECT                 HEX: 88760352
+CONSTANT: DXFILEERR_BADVALUE                  HEX: 88760353
+CONSTANT: DXFILEERR_BADTYPE                   HEX: 88760354
+CONSTANT: DXFILEERR_BADSTREAMHANDLE           HEX: 88760355
+CONSTANT: DXFILEERR_BADALLOC                  HEX: 88760356
+CONSTANT: DXFILEERR_NOTFOUND                  HEX: 88760357
+CONSTANT: DXFILEERR_NOTDONEYET                HEX: 88760358
+CONSTANT: DXFILEERR_FILENOTFOUND              HEX: 88760359
+CONSTANT: DXFILEERR_RESOURCENOTFOUND          HEX: 8876035A
+CONSTANT: DXFILEERR_URLNOTFOUND               HEX: 8876035B
+CONSTANT: DXFILEERR_BADRESOURCE               HEX: 8876035C
+CONSTANT: DXFILEERR_BADFILETYPE               HEX: 8876035D
+CONSTANT: DXFILEERR_BADFILEVERSION            HEX: 8876035E
+CONSTANT: DXFILEERR_BADFILEFLOATSIZE          HEX: 8876035F
+CONSTANT: DXFILEERR_BADFILECOMPRESSIONTYPE    HEX: 88760360
+CONSTANT: DXFILEERR_BADFILE                   HEX: 88760361
+CONSTANT: DXFILEERR_PARSEERROR                HEX: 88760362
+CONSTANT: DXFILEERR_NOTEMPLATE                HEX: 88760363
+CONSTANT: DXFILEERR_BADARRAYSIZE              HEX: 88760364
+CONSTANT: DXFILEERR_BADDATAREFERENCE          HEX: 88760365
+CONSTANT: DXFILEERR_INTERNALERROR             HEX: 88760366
+CONSTANT: DXFILEERR_NOMOREOBJECTS             HEX: 88760367
+CONSTANT: DXFILEERR_BADINTRINSICS             HEX: 88760368
+CONSTANT: DXFILEERR_NOMORESTREAMHANDLES       HEX: 88760369
+CONSTANT: DXFILEERR_NOMOREDATA                HEX: 8876036A
+CONSTANT: DXFILEERR_BADCACHEFILE              HEX: 8876036B
+CONSTANT: DXFILEERR_NOINTERNET                HEX: 8876036C
diff --git a/basis/windows/directx/dxfile/summary.txt b/basis/windows/directx/dxfile/summary.txt
new file mode 100644 (file)
index 0000000..34ad8e6
--- /dev/null
@@ -0,0 +1 @@
+Bindings to DirectX file abstraction. Corresponds to dxfile.h.
diff --git a/basis/windows/directx/dxfile/tags.txt b/basis/windows/directx/dxfile/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/dxgi/authors.txt b/basis/windows/directx/dxgi/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/dxgi/dxgi.factor b/basis/windows/directx/dxgi/dxgi.factor
new file mode 100644 (file)
index 0000000..6537de8
--- /dev/null
@@ -0,0 +1,213 @@
+USING: alien.c-types alien.syntax classes.struct windows.com windows.com.syntax
+windows.directx.dxgiformat windows.directx.dxgitype windows.kernel32
+windows.ole32 windows.types ;
+IN: windows.directx.dxgi
+
+LIBRARY: dxgi
+
+CONSTANT: DXGI_CPU_ACCESS_NONE 0
+CONSTANT: DXGI_CPU_ACCESS_DYNAMIC 1
+CONSTANT: DXGI_CPU_ACCESS_READ_WRITE 2
+CONSTANT: DXGI_CPU_ACCESS_SCRATCH 3
+CONSTANT: DXGI_CPU_ACCESS_FIELD 15
+CONSTANT: DXGI_USAGE_SHADER_INPUT 16
+CONSTANT: DXGI_USAGE_RENDER_TARGET_OUTPUT 32
+CONSTANT: DXGI_USAGE_BACK_BUFFER 64
+CONSTANT: DXGI_USAGE_SHARED 128
+CONSTANT: DXGI_USAGE_READ_ONLY 256
+CONSTANT: DXGI_USAGE_DISCARD_ON_PRESENT 512
+CONSTANT: DXGI_USAGE_UNORDERED_ACCESS 1024
+TYPEDEF: UINT DXGI_USAGE
+
+STRUCT: DXGI_FRAME_STATISTICS
+{ PresentCount UINT }
+{ PresentRefreshCount UINT }
+{ SyncRefreshCount UINT }
+{ SyncQPCTime LARGE_INTEGER }
+{ SyncGPUTime LARGE_INTEGER } ;
+
+STRUCT: DXGI_MAPPED_RECT
+{ Pitch INT }
+{ pBits BYTE* } ;
+
+STRUCT: DXGI_ADAPTER_DESC
+{ Description WCHAR[128] }
+{ VendorId UINT }
+{ DeviceId UINT }
+{ SubSysId UINT }
+{ Revision UINT }
+{ DedicatedVideoMemory SIZE_T }
+{ DedicatedSystemMemory SIZE_T }
+{ SharedSystemMemory SIZE_T }
+{ AdapterLuid LUID } ;
+
+STRUCT: DXGI_OUTPUT_DESC
+{ DeviceName WCHAR[32] }
+{ DesktopCoordinates RECT }
+{ AttachedToDesktop BOOL }
+{ Rotation DXGI_MODE_ROTATION }
+{ Monitor HMONITOR } ;
+
+STRUCT: DXGI_SHARED_RESOURCE
+{ Handle HANDLE } ;
+
+CONSTANT: DXGI_RESOURCE_PRIORITY_MINIMUM HEX: 28000000
+CONSTANT: DXGI_RESOURCE_PRIORITY_LOW HEX: 50000000
+CONSTANT: DXGI_RESOURCE_PRIORITY_NORMAL HEX: 78000000
+CONSTANT: DXGI_RESOURCE_PRIORITY_HIGH HEX: a0000000
+CONSTANT: DXGI_RESOURCE_PRIORITY_MAXIMUM HEX: c8000000
+
+CONSTANT: DXGI_RESIDENCY_FULLY_RESIDENT 1
+CONSTANT: DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY 2
+CONSTANT: DXGI_RESIDENCY_EVICTED_TO_DISK 3
+TYPEDEF: int DXGI_RESIDENCY
+
+STRUCT: DXGI_SURFACE_DESC
+{ Width UINT }
+{ Height UINT }
+{ Format DXGI_FORMAT }
+{ SampleDesc DXGI_SAMPLE_DESC } ;
+
+CONSTANT: DXGI_SWAP_EFFECT_DISCARD 0
+CONSTANT: DXGI_SWAP_EFFECT_SEQUENTIAL 1
+TYPEDEF: int DXGI_SWAP_EFFECT
+
+CONSTANT: DXGI_SWAP_CHAIN_FLAG_NONPREROTATED 1
+CONSTANT: DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH 2
+CONSTANT: DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE 4
+TYPEDEF: int DXGI_SWAP_CHAIN_FLAG
+
+STRUCT: DXGI_SWAP_CHAIN_DESC
+{ BufferDesc DXGI_MODE_DESC }
+{ SampleDesc DXGI_SAMPLE_DESC }
+{ BufferUsage DXGI_USAGE }
+{ BufferCount UINT }
+{ OutputWindow HWND }
+{ Windowed BOOL }
+{ SwapEffect DXGI_SWAP_EFFECT }
+{ Flags UINT } ;
+
+COM-INTERFACE: IDXGIObject IUnknown {aec22fb8-76f3-4639-9be0-28eb43a67a2e}
+HRESULT SetPrivateData ( REFGUID Name, UINT DataSize, void* pData )
+HRESULT SetPrivateDataInterface ( REFGUID Name, IUnknown* pUnknown )
+HRESULT GetPrivateData ( REFGUID Name, UINT* pDataSize, void* pData )
+HRESULT GetParent ( REFIID riid, void** ppParent ) ;
+
+COM-INTERFACE: IDXGIDeviceSubObject IDXGIObject {3d3e0379-f9de-4d58-bb6c-18d62992f1a6}
+HRESULT GetDevice ( REFIID riid, void** ppDevice ) ;
+
+COM-INTERFACE: IDXGIResource IDXGIDeviceSubObject {035f3ab4-482e-4e50-b41f-8a7f8bd8960b}
+HRESULT GetSharedHandle ( HANDLE* pSharedHandle )
+HRESULT GetUsage ( DXGI_USAGE* pUsage )
+HRESULT SetEvictionPriority ( UINT EvictionPriority )
+HRESULT GetEvictionPriority ( UINT* pEvictionPriority ) ;
+
+COM-INTERFACE: IDXGIKeyedMutex IDXGIDeviceSubObject {9d8e1289-d7b3-465f-8126-250e349af85d}
+HRESULT AcquireSync ( UINT64 Key, DWORD dwMilliseconds )
+HRESULT ReleaseSync ( UINT64 Key ) ;
+
+CONSTANT: DXGI_MAP_READ 1
+CONSTANT: DXGI_MAP_WRITE 2
+CONSTANT: DXGI_MAP_DISCARD 4
+
+COM-INTERFACE: IDXGISurface IDXGIDeviceSubObject {cafcb56c-6ac3-4889-bf47-9e23bbd260ec}
+HRESULT GetDesc ( DXGI_SURFACE_DESC* pDesc )
+HRESULT Map ( DXGI_MAPPED_RECT* pLockedRect, UINT MapFlags )
+HRESULT Unmap ( ) ;
+
+COM-INTERFACE: IDXGISurface1 IDXGISurface {4AE63092-6327-4c1b-80AE-BFE12EA32B86}
+HRESULT GetDC ( BOOL Discard, HDC* phdc )
+HRESULT ReleaseDC ( RECT* pDirtyRect ) ;
+
+COM-INTERFACE: IDXGIAdapter IDXGIObject {2411e7e1-12ac-4ccf-bd14-9798e8534dc0}
+HRESULT EnumOutputs ( UINT Output, IDXGIOutput** ppOutput )
+HRESULT GetDesc ( DXGI_ADAPTER_DESC* pDesc )
+HRESULT CheckInterfaceSupport ( REFGUID InterfaceName, LARGE_INTEGER* pUMDVersion ) ;
+
+CONSTANT: DXGI_ENUM_MODES_INTERLACED 1
+CONSTANT: DXGI_ENUM_MODES_SCALING 2
+
+COM-INTERFACE: IDXGIOutput IDXGIObject {ae02eedb-c735-4690-8d52-5a8dc20213aa}
+HRESULT GetDesc ( DXGI_OUTPUT_DESC* pDesc )
+HRESULT GetDisplayModeList ( DXGI_FORMAT EnumFormat, UINT Flags, UINT* pNumModes, DXGI_MODE_DESC* pDesc )
+HRESULT FindClosestMatchingMode ( DXGI_MODE_DESC* pModeToMatch, DXGI_MODE_DESC* pClosestMatch, IUnknown* pConcernedDevice )
+HRESULT WaitForVBlank ( )
+HRESULT TakeOwnership ( IUnknown* pDevice, BOOL Exclusive )
+void ReleaseOwnership ( )
+HRESULT GetGammaControlCapabilities ( DXGI_GAMMA_CONTROL_CAPABILITIES* pGammaCaps )
+HRESULT SetGammaControl ( DXGI_GAMMA_CONTROL* pArray )
+HRESULT GetGammaControl ( DXGI_GAMMA_CONTROL* pArray )
+HRESULT SetDisplaySurface ( IDXGISurface* pScanoutSurface )
+HRESULT GetDisplaySurfaceData ( IDXGISurface* pDestination )
+HRESULT GetFrameStatistics ( DXGI_FRAME_STATISTICS* pStats ) ;
+
+CONSTANT: DXGI_MAX_SWAP_CHAIN_BUFFERS 16
+CONSTANT: DXGI_PRESENT_TEST 1
+CONSTANT: DXGI_PRESENT_DO_NOT_SEQUENCE 2
+CONSTANT: DXGI_PRESENT_RESTART 4
+
+COM-INTERFACE: IDXGISwapChain IDXGIDeviceSubObject {310d36a0-d2e7-4c0a-aa04-6a9d23b8886a}
+HRESULT Present ( UINT SyncInterval, UINT Flags )
+HRESULT GetBuffer ( UINT Buffer, REFIID riid, void** ppSurface )
+HRESULT SetFullscreenState ( BOOL Fullscreen, IDXGIOutput* pTarget )
+HRESULT GetFullscreenState ( BOOL* pFullscreen, IDXGIOutput** ppTarget )
+HRESULT GetDesc ( DXGI_SWAP_CHAIN_DESC* pDesc )
+HRESULT ResizeBuffers ( UINT BufferCount, UINT Width, UINT Height, DXGI_FORMAT NewFormat, UINT SwapChainFlags )
+HRESULT ResizeTarget ( DXGI_MODE_DESC* pNewTargetParameters )
+HRESULT GetContainingOutput ( IDXGIOutput** ppOutput )
+HRESULT GetFrameStatistics ( DXGI_FRAME_STATISTICS* pStats )
+HRESULT GetLastPresentCount ( UINT* pLastPresentCount ) ;
+
+CONSTANT: DXGI_MWA_NO_WINDOW_CHANGES 1
+CONSTANT: DXGI_MWA_NO_ALT_ENTER 2
+CONSTANT: DXGI_MWA_NO_PRINT_SCREEN 4
+CONSTANT: DXGI_MWA_VALID 7
+
+COM-INTERFACE: IDXGIFactory IDXGIObject {7b7166ec-21c7-44ae-b21a-c9ae321ae369}
+HRESULT EnumAdapters ( UINT Adapter, IDXGIAdapter** ppAdapter )
+HRESULT MakeWindowAssociation ( HWND WindowHandle, UINT Flags )
+HRESULT GetWindowAssociation ( HWND* pWindowHandle )
+HRESULT CreateSwapChain ( IUnknown* pDevice, DXGI_SWAP_CHAIN_DESC* pDesc, IDXGISwapChain** ppSwapChain )
+HRESULT CreateSoftwareAdapter ( HMODULE Module, IDXGIAdapter** ppAdapter ) ;
+
+FUNCTION: HRESULT CreateDXGIFactory ( REFIID riid, void** ppFactory ) ;
+FUNCTION: HRESULT CreateDXGIFactory1 ( REFIID riid, void** ppFactory ) ;
+
+COM-INTERFACE: IDXGIDevice IDXGIObject {54ec77fa-1377-44e6-8c32-88fd5f44c84c}
+HRESULT GetAdapter ( IDXGIAdapter** pAdapter )
+HRESULT CreateSurface ( DXGI_SURFACE_DESC* pDesc, UINT NumSurfaces, DXGI_USAGE Usage, DXGI_SHARED_RESOURCE* pSharedResource, IDXGISurface** ppSurface )
+HRESULT QueryResourceResidency ( IUnknown** ppResources, DXGI_RESIDENCY* pResidencyStatus, UINT NumResources )
+HRESULT SetGPUThreadPriority ( INT Priority )
+HRESULT GetGPUThreadPriority ( INT* pPriority ) ;
+
+CONSTANT: DXGI_ADAPTER_FLAG_NONE 0
+CONSTANT: DXGI_ADAPTER_FLAG_REMOTE 1
+CONSTANT: DXGI_ADAPTER_FLAG_FORCE_DWORD HEX: ffffffff
+TYPEDEF: int DXGI_ADAPTER_FLAG
+
+STRUCT: DXGI_ADAPTER_DESC1
+{ Description WCHAR[128] }
+{ VendorId UINT }
+{ DeviceId UINT }
+{ SubSysId UINT }
+{ Revision UINT }
+{ DedicatedVideoMemory SIZE_T }
+{ DedicatedSystemMemory SIZE_T }
+{ SharedSystemMemory SIZE_T }
+{ AdapterLuid LUID }
+{ Flags UINT } ;
+
+STRUCT: DXGI_DISPLAY_COLOR_SPACE
+{ PrimaryCoordinates FLOAT[8][2] }
+{ WhitePoints FLOAT[16][2] } ;
+
+COM-INTERFACE: IDXGIFactory1 IDXGIFactory {770aae78-f26f-4dba-a829-253c83d1b387}
+HRESULT EnumAdapters1 ( UINT Adapter, IDXGIAdapter1** ppAdapter )
+BOOL IsCurrent ( ) ;
+
+COM-INTERFACE: IDXGIAdapter1 IDXGIAdapter {29038f61-3839-4626-91fd-086879011a05}
+HRESULT GetDesc1 ( DXGI_ADAPTER_DESC1* pDesc ) ;
+
+COM-INTERFACE: IDXGIDevice1 IDXGIDevice {77db970f-6276-48ba-ba28-070143b4392c}
+HRESULT SetMaximumFrameLatency ( UINT MaxLatency )
+HRESULT GetMaximumFrameLatency ( UINT* pMaxLatency ) ;
diff --git a/basis/windows/directx/dxgi/summary.txt b/basis/windows/directx/dxgi/summary.txt
new file mode 100644 (file)
index 0000000..1bcb6b4
--- /dev/null
@@ -0,0 +1 @@
+Bindings to the DirectX Graphics Infrastructure. Corresponds to DXGI.h.
diff --git a/basis/windows/directx/dxgi/tags.txt b/basis/windows/directx/dxgi/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/dxgiformat/authors.txt b/basis/windows/directx/dxgiformat/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/dxgiformat/dxgiformat.factor b/basis/windows/directx/dxgiformat/dxgiformat.factor
new file mode 100644 (file)
index 0000000..ab2c082
--- /dev/null
@@ -0,0 +1,105 @@
+USING: alien.c-types alien.syntax ;
+IN: windows.directx.dxgiformat
+
+CONSTANT: DXGI_FORMAT_UNKNOWN 0
+CONSTANT: DXGI_FORMAT_R32G32B32A32_TYPELESS 1
+CONSTANT: DXGI_FORMAT_R32G32B32A32_FLOAT 2
+CONSTANT: DXGI_FORMAT_R32G32B32A32_UINT 3
+CONSTANT: DXGI_FORMAT_R32G32B32A32_SINT 4
+CONSTANT: DXGI_FORMAT_R32G32B32_TYPELESS 5
+CONSTANT: DXGI_FORMAT_R32G32B32_FLOAT 6
+CONSTANT: DXGI_FORMAT_R32G32B32_UINT 7
+CONSTANT: DXGI_FORMAT_R32G32B32_SINT 8
+CONSTANT: DXGI_FORMAT_R16G16B16A16_TYPELESS 9
+CONSTANT: DXGI_FORMAT_R16G16B16A16_FLOAT 10
+CONSTANT: DXGI_FORMAT_R16G16B16A16_UNORM 11
+CONSTANT: DXGI_FORMAT_R16G16B16A16_UINT 12
+CONSTANT: DXGI_FORMAT_R16G16B16A16_SNORM 13
+CONSTANT: DXGI_FORMAT_R16G16B16A16_SINT 14
+CONSTANT: DXGI_FORMAT_R32G32_TYPELESS 15
+CONSTANT: DXGI_FORMAT_R32G32_FLOAT 16
+CONSTANT: DXGI_FORMAT_R32G32_UINT 17
+CONSTANT: DXGI_FORMAT_R32G32_SINT 18
+CONSTANT: DXGI_FORMAT_R32G8X24_TYPELESS 19
+CONSTANT: DXGI_FORMAT_D32_FLOAT_S8X24_UINT 20
+CONSTANT: DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS 21
+CONSTANT: DXGI_FORMAT_X32_TYPELESS_G8X24_UINT 22
+CONSTANT: DXGI_FORMAT_R10G10B10A2_TYPELESS 23
+CONSTANT: DXGI_FORMAT_R10G10B10A2_UNORM 24
+CONSTANT: DXGI_FORMAT_R10G10B10A2_UINT 25
+CONSTANT: DXGI_FORMAT_R11G11B10_FLOAT 26
+CONSTANT: DXGI_FORMAT_R8G8B8A8_TYPELESS 27
+CONSTANT: DXGI_FORMAT_R8G8B8A8_UNORM 28
+CONSTANT: DXGI_FORMAT_R8G8B8A8_UNORM_SRGB 29
+CONSTANT: DXGI_FORMAT_R8G8B8A8_UINT 30
+CONSTANT: DXGI_FORMAT_R8G8B8A8_SNORM 31
+CONSTANT: DXGI_FORMAT_R8G8B8A8_SINT 32
+CONSTANT: DXGI_FORMAT_R16G16_TYPELESS 33
+CONSTANT: DXGI_FORMAT_R16G16_FLOAT 34
+CONSTANT: DXGI_FORMAT_R16G16_UNORM 35
+CONSTANT: DXGI_FORMAT_R16G16_UINT 36
+CONSTANT: DXGI_FORMAT_R16G16_SNORM 37
+CONSTANT: DXGI_FORMAT_R16G16_SINT 38
+CONSTANT: DXGI_FORMAT_R32_TYPELESS 39
+CONSTANT: DXGI_FORMAT_D32_FLOAT 40
+CONSTANT: DXGI_FORMAT_R32_FLOAT 41
+CONSTANT: DXGI_FORMAT_R32_UINT 42
+CONSTANT: DXGI_FORMAT_R32_SINT 43
+CONSTANT: DXGI_FORMAT_R24G8_TYPELESS 44
+CONSTANT: DXGI_FORMAT_D24_UNORM_S8_UINT 45
+CONSTANT: DXGI_FORMAT_R24_UNORM_X8_TYPELESS 46
+CONSTANT: DXGI_FORMAT_X24_TYPELESS_G8_UINT 47
+CONSTANT: DXGI_FORMAT_R8G8_TYPELESS 48
+CONSTANT: DXGI_FORMAT_R8G8_UNORM 49
+CONSTANT: DXGI_FORMAT_R8G8_UINT 50
+CONSTANT: DXGI_FORMAT_R8G8_SNORM 51
+CONSTANT: DXGI_FORMAT_R8G8_SINT 52
+CONSTANT: DXGI_FORMAT_R16_TYPELESS 53
+CONSTANT: DXGI_FORMAT_R16_FLOAT 54
+CONSTANT: DXGI_FORMAT_D16_UNORM 55
+CONSTANT: DXGI_FORMAT_R16_UNORM 56
+CONSTANT: DXGI_FORMAT_R16_UINT 57
+CONSTANT: DXGI_FORMAT_R16_SNORM 58
+CONSTANT: DXGI_FORMAT_R16_SINT 59
+CONSTANT: DXGI_FORMAT_R8_TYPELESS 60
+CONSTANT: DXGI_FORMAT_R8_UNORM 61
+CONSTANT: DXGI_FORMAT_R8_UINT 62
+CONSTANT: DXGI_FORMAT_R8_SNORM 63
+CONSTANT: DXGI_FORMAT_R8_SINT 64
+CONSTANT: DXGI_FORMAT_A8_UNORM 65
+CONSTANT: DXGI_FORMAT_R1_UNORM 66
+CONSTANT: DXGI_FORMAT_R9G9B9E5_SHAREDEXP 67
+CONSTANT: DXGI_FORMAT_R8G8_B8G8_UNORM 68
+CONSTANT: DXGI_FORMAT_G8R8_G8B8_UNORM 69
+CONSTANT: DXGI_FORMAT_BC1_TYPELESS 70
+CONSTANT: DXGI_FORMAT_BC1_UNORM 71
+CONSTANT: DXGI_FORMAT_BC1_UNORM_SRGB 72
+CONSTANT: DXGI_FORMAT_BC2_TYPELESS 73
+CONSTANT: DXGI_FORMAT_BC2_UNORM 74
+CONSTANT: DXGI_FORMAT_BC2_UNORM_SRGB 75
+CONSTANT: DXGI_FORMAT_BC3_TYPELESS 76
+CONSTANT: DXGI_FORMAT_BC3_UNORM 77
+CONSTANT: DXGI_FORMAT_BC3_UNORM_SRGB 78
+CONSTANT: DXGI_FORMAT_BC4_TYPELESS 79
+CONSTANT: DXGI_FORMAT_BC4_UNORM 80
+CONSTANT: DXGI_FORMAT_BC4_SNORM 81
+CONSTANT: DXGI_FORMAT_BC5_TYPELESS 82
+CONSTANT: DXGI_FORMAT_BC5_UNORM 83
+CONSTANT: DXGI_FORMAT_BC5_SNORM 84
+CONSTANT: DXGI_FORMAT_B5G6R5_UNORM 85
+CONSTANT: DXGI_FORMAT_B5G5R5A1_UNORM 86
+CONSTANT: DXGI_FORMAT_B8G8R8A8_UNORM 87
+CONSTANT: DXGI_FORMAT_B8G8R8X8_UNORM 88
+CONSTANT: DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM 89
+CONSTANT: DXGI_FORMAT_B8G8R8A8_TYPELESS 90
+CONSTANT: DXGI_FORMAT_B8G8R8A8_UNORM_SRGB 91
+CONSTANT: DXGI_FORMAT_B8G8R8X8_TYPELESS 92
+CONSTANT: DXGI_FORMAT_B8G8R8X8_UNORM_SRGB 93
+CONSTANT: DXGI_FORMAT_BC6H_TYPELESS 94
+CONSTANT: DXGI_FORMAT_BC6H_UF16 95
+CONSTANT: DXGI_FORMAT_BC6H_SF16 96
+CONSTANT: DXGI_FORMAT_BC7_TYPELESS 97
+CONSTANT: DXGI_FORMAT_BC7_UNORM 98
+CONSTANT: DXGI_FORMAT_BC7_UNORM_SRGB 99
+CONSTANT: DXGI_FORMAT_FORCE_UINT HEX: ffffffff
+TYPEDEF: int DXGI_FORMAT
diff --git a/basis/windows/directx/dxgiformat/summary.txt b/basis/windows/directx/dxgiformat/summary.txt
new file mode 100644 (file)
index 0000000..9aa9982
--- /dev/null
@@ -0,0 +1 @@
+Bindings to the DirectX Graphics Infrastructure. Corresponds to DXGIFormat.h.
diff --git a/basis/windows/directx/dxgiformat/tags.txt b/basis/windows/directx/dxgiformat/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/dxgitype/authors.txt b/basis/windows/directx/dxgitype/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/dxgitype/dxgitype.factor b/basis/windows/directx/dxgitype/dxgitype.factor
new file mode 100644 (file)
index 0000000..0b318f7
--- /dev/null
@@ -0,0 +1,78 @@
+USING: alien.c-types alien.syntax classes.struct
+windows.directx.dxgiformat windows.types ;
+IN: windows.directx.dxgitype
+
+CONSTANT: DXGI_STATUS_OCCLUDED HEX: 087a0001
+CONSTANT: DXGI_STATUS_CLIPPED HEX: 087a0002
+CONSTANT: DXGI_STATUS_NO_REDIRECTION HEX: 087a0004
+CONSTANT: DXGI_STATUS_NO_DESKTOP_ACCESS HEX: 087a0005
+CONSTANT: DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE HEX: 087a0006
+CONSTANT: DXGI_STATUS_MODE_CHANGED HEX: 087a0007
+CONSTANT: DXGI_STATUS_MODE_CHANGE_IN_PROGRESS HEX: 087a0008
+
+CONSTANT: DXGI_ERROR_INVALID_CALL HEX: 887a0001
+CONSTANT: DXGI_ERROR_NOT_FOUND HEX: 887a0002
+CONSTANT: DXGI_ERROR_MORE_DATA HEX: 887a0003
+CONSTANT: DXGI_ERROR_UNSUPPORTED HEX: 887a0004
+CONSTANT: DXGI_ERROR_DEVICE_REMOVED HEX: 887a0005
+CONSTANT: DXGI_ERROR_DEVICE_HUNG HEX: 887a0006
+CONSTANT: DXGI_ERROR_DEVICE_RESET HEX: 887a0007
+CONSTANT: DXGI_ERROR_WAS_STILL_DRAWING HEX: 887a000a
+CONSTANT: DXGI_ERROR_FRAME_STATISTICS_DISJOINT HEX: 887a000b
+CONSTANT: DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE HEX: 887a000c
+CONSTANT: DXGI_ERROR_DRIVER_INTERNAL_ERROR HEX: 887a0020
+CONSTANT: DXGI_ERROR_NONEXCLUSIVE HEX: 887a0021
+CONSTANT: DXGI_ERROR_NOT_CURRENTLY_AVAILABLE HEX: 887a0022
+CONSTANT: DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED HEX: 887a0023
+CONSTANT: DXGI_ERROR_REMOTE_OUTOFMEMORY HEX: 887a0024
+
+STRUCT: DXGI_RGB
+{ Red FLOAT }
+{ Green FLOAT }
+{ Blue FLOAT } ;
+
+STRUCT: DXGI_GAMMA_CONTROL
+{ Scale DXGI_RGB }
+{ Offset DXGI_RGB }
+{ GammaCurve DXGI_RGB[1025] } ;
+
+STRUCT: DXGI_GAMMA_CONTROL_CAPABILITIES
+{ ScaleAndOffsetSupported BOOL }
+{ MaxConvertedValue FLOAT }
+{ MinConvertedValue FLOAT }
+{ NumGammaControlPoints UINT }
+{ ControlPointPositions FLOAT[1025] } ;
+
+STRUCT: DXGI_RATIONAL
+{ Numerator UINT }
+{ Denominator UINT } ;
+
+C-ENUM: DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED
+        DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE
+        DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST
+        DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST ;
+TYPEDEF: int DXGI_MODE_SCANLINE_ORDER
+
+C-ENUM: DXGI_MODE_SCALING_UNSPECIFIED
+        DXGI_MODE_SCALING_CENTERED
+        DXGI_MODE_SCALING_STRETCHED ;
+TYPEDEF: int DXGI_MODE_SCALING
+
+C-ENUM: DXGI_MODE_ROTATION_UNSPECIFIED
+        DXGI_MODE_ROTATION_IDENTITY
+        DXGI_MODE_ROTATION_ROTATE90
+        DXGI_MODE_ROTATION_ROTATE180
+        DXGI_MODE_ROTATION_ROTATE270 ;
+TYPEDEF: int DXGI_MODE_ROTATION
+
+STRUCT: DXGI_MODE_DESC
+{ Width UINT }
+{ Height UINT }
+{ RefreshRate DXGI_RATIONAL }
+{ Format DXGI_FORMAT }
+{ ScanlineOrdering DXGI_MODE_SCANLINE_ORDER }
+{ Scaling DXGI_MODE_SCALING } ;
+
+STRUCT: DXGI_SAMPLE_DESC
+{ Count UINT }
+{ Quality UINT } ;
diff --git a/basis/windows/directx/dxgitype/summary.txt b/basis/windows/directx/dxgitype/summary.txt
new file mode 100644 (file)
index 0000000..f7ea233
--- /dev/null
@@ -0,0 +1 @@
+Bindings to the DirectX Graphics Infrastructure. Corresponds to DXGIType.h.
diff --git a/basis/windows/directx/dxgitype/tags.txt b/basis/windows/directx/dxgitype/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/x3daudio/authors.txt b/basis/windows/directx/x3daudio/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/x3daudio/summary.txt b/basis/windows/directx/x3daudio/summary.txt
new file mode 100644 (file)
index 0000000..9fa60a3
--- /dev/null
@@ -0,0 +1 @@
+X3DAudio bindings. Corresponds to x3daudio.h.
diff --git a/basis/windows/directx/x3daudio/tags.txt b/basis/windows/directx/x3daudio/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/x3daudio/x3daudio.factor b/basis/windows/directx/x3daudio/x3daudio.factor
new file mode 100644 (file)
index 0000000..f6b1e63
--- /dev/null
@@ -0,0 +1,96 @@
+USING: alien.c-types alien.syntax classes.struct
+windows.directx.d3dx10math windows.types ;
+IN: windows.directx.x3daudio
+
+LIBRARY: x3daudio
+
+CONSTANT: X3DAUDIO_HANDLE_BYTESIZE 20
+
+CONSTANT: X3DAUDIO_PI  3.141592654
+CONSTANT: X3DAUDIO_2PI 6.283185307
+
+CONSTANT: X3DAUDIO_SPEED_OF_SOUND 343.5
+
+CONSTANT: X3DAUDIO_CALCULATE_MATRIX          HEX: 00000001
+CONSTANT: X3DAUDIO_CALCULATE_DELAY           HEX: 00000002
+CONSTANT: X3DAUDIO_CALCULATE_LPF_DIRECT      HEX: 00000004
+CONSTANT: X3DAUDIO_CALCULATE_LPF_REVERB      HEX: 00000008
+CONSTANT: X3DAUDIO_CALCULATE_REVERB          HEX: 00000010
+CONSTANT: X3DAUDIO_CALCULATE_DOPPLER         HEX: 00000020
+CONSTANT: X3DAUDIO_CALCULATE_EMITTER_ANGLE   HEX: 00000040
+CONSTANT: X3DAUDIO_CALCULATE_ZEROCENTER      HEX: 00010000
+CONSTANT: X3DAUDIO_CALCULATE_REDIRECT_TO_LFE HEX: 00020000
+
+TYPEDEF: float FLOAT32
+TYPEDEF: D3DVECTOR X3DAUDIO_VECTOR
+
+TYPEDEF: BYTE[20] X3DAUDIO_HANDLE
+
+STRUCT: X3DAUDIO_DISTANCE_CURVE_POINT
+    { Distance   FLOAT32 }
+    { DSPSetting FLOAT32 } ;
+TYPEDEF: X3DAUDIO_DISTANCE_CURVE_POINT* LPX3DAUDIO_DISTANCE_CURVE_POINT
+
+STRUCT: X3DAUDIO_DISTANCE_CURVE
+    { pPoints                            X3DAUDIO_DISTANCE_CURVE_POINT* }
+    { PointCount                         UINT32                         } ;
+TYPEDEF: X3DAUDIO_DISTANCE_CURVE* LPX3DAUDIO_DISTANCE_CURVE
+
+STRUCT: X3DAUDIO_CONE
+    { InnerAngle  FLOAT32 }
+    { OuterAngle  FLOAT32 }
+    { InnerVolume FLOAT32 }
+    { OuterVolume FLOAT32 }
+    { InnerLPF    FLOAT32 }
+    { OuterLPF    FLOAT32 }
+    { InnerReverb FLOAT32 }
+    { OuterReverb FLOAT32 } ;
+TYPEDEF: X3DAUDIO_CONE* LPX3DAUDIO_CONE
+
+STRUCT: X3DAUDIO_LISTENER
+    { OrientFront X3DAUDIO_VECTOR }
+    { OrientTop   X3DAUDIO_VECTOR }
+    { Position    X3DAUDIO_VECTOR }
+    { Velocity    X3DAUDIO_VECTOR }
+    { pCone       X3DAUDIO_CONE*  } ;
+TYPEDEF: X3DAUDIO_LISTENER* LPX3DAUDIO_LISTENER
+
+STRUCT: X3DAUDIO_EMITTER
+    { pCone               X3DAUDIO_CONE*           }
+    { OrientFront         X3DAUDIO_VECTOR          }
+    { OrientTop           X3DAUDIO_VECTOR          }
+    { Position            X3DAUDIO_VECTOR          }
+    { Velocity            X3DAUDIO_VECTOR          }
+    { InnerRadius         FLOAT32                  }
+    { InnerRadiusAngle    FLOAT32                  }
+    { ChannelCount        UINT32                   }
+    { ChannelRadius       FLOAT32                  }
+    { pChannelAzimuths    FLOAT32*                 }
+    { pVolumeCurve        X3DAUDIO_DISTANCE_CURVE* }
+    { pLFECurve           X3DAUDIO_DISTANCE_CURVE* }
+    { pLPFDirectCurve     X3DAUDIO_DISTANCE_CURVE* }
+    { pLPFReverbCurve     X3DAUDIO_DISTANCE_CURVE* }
+    { pReverbCurve        X3DAUDIO_DISTANCE_CURVE* }
+    { CurveDistanceScaler FLOAT32                  }
+    { DopplerScaler       FLOAT32                  } ;
+TYPEDEF: X3DAUDIO_EMITTER* LPX3DAUDIO_EMITTER
+
+STRUCT: X3DAUDIO_DSP_SETTINGS
+    { pMatrixCoefficients       FLOAT32* }
+    { pDelayTimes               FLOAT32* }
+    { SrcChannelCount           UINT32   }
+    { DstChannelCount           UINT32   }
+    { LPFDirectCoefficient      FLOAT32  }
+    { LPFReverbCoefficient      FLOAT32  }
+    { ReverbLevel               FLOAT32  }
+    { DopplerFactor             FLOAT32  }
+    { EmitterToListenerAngle    FLOAT32  }
+    { EmitterToListenerDistance FLOAT32  }
+    { EmitterVelocityComponent  FLOAT32  }
+    { ListenerVelocityComponent FLOAT32  } ;
+TYPEDEF: X3DAUDIO_DSP_SETTINGS* LPX3DAUDIO_DSP_SETTINGS
+
+
+FUNCTION: void X3DAudioInitialize ( UINT32 SpeakerChannelMask, FLOAT32 SpeedOfSound, X3DAUDIO_HANDLE Instance ) ;
+
+FUNCTION: void X3DAudioCalculate ( X3DAUDIO_HANDLE Instance, X3DAUDIO_LISTENER* pListener, X3DAUDIO_EMITTER* pEmitter, UINT32 Flags, X3DAUDIO_DSP_SETTINGS* pDSPSettings ) ;
diff --git a/basis/windows/directx/xact3/authors.txt b/basis/windows/directx/xact3/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/xact3/summary.txt b/basis/windows/directx/xact3/summary.txt
new file mode 100644 (file)
index 0000000..99a2c4a
--- /dev/null
@@ -0,0 +1 @@
+XACT3 bindings. Corresponds to xact3.h.
diff --git a/basis/windows/directx/xact3/tags.txt b/basis/windows/directx/xact3/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/xact3/xact3.factor b/basis/windows/directx/xact3/xact3.factor
new file mode 100644 (file)
index 0000000..f9ebf24
--- /dev/null
@@ -0,0 +1,474 @@
+USING: alien.c-types alien.syntax classes.struct windows.com
+windows.com.syntax windows.directx.xaudio2 windows.kernel32
+windows.types ;
+IN: windows.directx.xact3
+
+LIBRARY: xactengine
+
+C-TYPE: IXACT3SoundBank
+C-TYPE: IXACT3WaveBank
+C-TYPE: IXACT3Cue
+C-TYPE: IXACT3Wave
+C-TYPE: IXACT3Engine
+C-TYPE: XACT_NOTIFICATION
+
+TYPEDEF: WORD  XACTINDEX
+TYPEDEF: BYTE  XACTNOTIFICATIONTYPE
+TYPEDEF: FLOAT XACTVARIABLEVALUE
+TYPEDEF: WORD  XACTVARIABLEINDEX
+TYPEDEF: WORD  XACTCATEGORY
+TYPEDEF: BYTE  XACTCHANNEL
+TYPEDEF: FLOAT XACTVOLUME
+TYPEDEF: LONG  XACTTIME
+TYPEDEF: SHORT XACTPITCH
+TYPEDEF: BYTE  XACTLOOPCOUNT
+TYPEDEF: BYTE  XACTVARIATIONWEIGHT
+TYPEDEF: BYTE  XACTPRIORITY
+TYPEDEF: BYTE  XACTINSTANCELIMIT
+
+CONSTANT: WAVE_FORMAT_IEEE_FLOAT HEX: 0003
+CONSTANT: WAVE_FORMAT_EXTENSIBLE HEX: FFFE
+
+STRUCT: WAVEFORMATEX
+    { wFormatTag        WORD  }
+    { nChannels         WORD  }
+    { nSamplesPerSec    DWORD }
+    { nAvgBytesPerSec   DWORD }
+    { nBlockAlign       WORD  }
+    { wBitsPerSample    WORD  }
+    { cbSize            WORD  } ;
+TYPEDEF: WAVEFORMATEX* PWAVEFORMATEX
+TYPEDEF: WAVEFORMATEX* NPWAVEFORMATEX
+TYPEDEF: WAVEFORMATEX* LPWAVEFORMATEX
+
+UNION-STRUCT: WAVEFORMATEXTENSIBLE_UNION
+    { wValidBitsPerSample        WORD }
+    { wSamplesPerBlock           WORD }
+    { wReserved                  WORD } ;
+STRUCT: WAVEFORMATEXTENSIBLE
+    { Format                  WAVEFORMATEX               }
+    { Union                   WAVEFORMATEXTENSIBLE_UNION }
+    { dwChannelMask           DWORD                      }
+    { SubFormat               GUID                       } ;
+TYPEDEF: WAVEFORMATEXTENSIBLE* PWAVEFORMATEXTENSIBLE
+
+CONSTANT: XACTTIME_MIN                    HEX: 80000001
+CONSTANT: XACTTIME_MAX                    HEX: 7fffffff
+CONSTANT: XACTTIME_INFINITE               HEX: 7fffffff
+CONSTANT: XACTINSTANCELIMIT_INFINITE      HEX: ff
+CONSTANT: XACTINSTANCELIMIT_MIN           HEX: 00
+CONSTANT: XACTINSTANCELIMIT_MAX           HEX: fe
+CONSTANT: XACTINDEX_MIN                   HEX: 0
+CONSTANT: XACTINDEX_MAX                   HEX: fffe
+CONSTANT: XACTINDEX_INVALID               HEX: ffff
+CONSTANT: XACTNOTIFICATIONTYPE_MIN        HEX: 00
+CONSTANT: XACTNOTIFICATIONTYPE_MAX        HEX: ff
+CONSTANT: XACTVARIABLEINDEX_MIN           HEX: 0000
+CONSTANT: XACTVARIABLEINDEX_MAX           HEX: fffe
+CONSTANT: XACTVARIABLEINDEX_INVALID       HEX: ffff
+CONSTANT: XACTCATEGORY_MIN                HEX: 0
+CONSTANT: XACTCATEGORY_MAX                HEX: fffe
+CONSTANT: XACTCATEGORY_INVALID            HEX: ffff
+CONSTANT: XACTCHANNEL_MIN                 0
+CONSTANT: XACTCHANNEL_MAX                 HEX: FF
+CONSTANT: XACTPITCH_MIN                   -1200
+CONSTANT: XACTPITCH_MAX                   1200
+CONSTANT: XACTPITCH_MIN_TOTAL             -2400
+CONSTANT: XACTPITCH_MAX_TOTAL             2400
+CONSTANT: XACTVOLUME_MIN                  0.0
+CONSTANT: XACTVOLUME_MAX                  16777216.0
+CONSTANT: XACTLOOPCOUNT_MIN               HEX: 0
+CONSTANT: XACTLOOPCOUNT_MAX               HEX: fe
+CONSTANT: XACTLOOPCOUNT_INFINITE          HEX: ff
+CONSTANT: XACTWAVEALIGNMENT_MIN           2048
+
+CONSTANT: XACT_CUE_NAME_LENGTH        HEX: FF
+CONSTANT: XACT_CONTENT_VERSION        46
+
+CONSTANT: XACT_FLAG_STOP_RELEASE       HEX: 00000000
+CONSTANT: XACT_FLAG_STOP_IMMEDIATE     HEX: 00000001
+
+CONSTANT: XACT_FLAG_MANAGEDATA         HEX: 00000001
+
+CONSTANT: XACT_FLAG_BACKGROUND_MUSIC   HEX: 00000002
+CONSTANT: XACT_FLAG_UNITS_MS           HEX: 00000004
+CONSTANT: XACT_FLAG_UNITS_SAMPLES      HEX: 00000008
+
+CONSTANT: XACT_STATE_CREATED           HEX: 00000001
+CONSTANT: XACT_STATE_PREPARING         HEX: 00000002
+CONSTANT: XACT_STATE_PREPARED          HEX: 00000004
+CONSTANT: XACT_STATE_PLAYING           HEX: 00000008
+CONSTANT: XACT_STATE_STOPPING          HEX: 00000010
+CONSTANT: XACT_STATE_STOPPED           HEX: 00000020
+CONSTANT: XACT_STATE_PAUSED            HEX: 00000040
+CONSTANT: XACT_STATE_INUSE             HEX: 00000080
+CONSTANT: XACT_STATE_PREPAREFAILED     HEX: 80000000
+
+C-TYPE: XACT_READFILE_CB
+C-TYPE: XACT_GETOVERLAPPEDRESULT_CB
+
+: XACT_FLAG_GLOBAL_SETTINGS_MANAGEDATA ( -- z ) XACT_FLAG_MANAGEDATA ; inline
+
+
+STRUCT: XACT_FILEIO_CALLBACKS
+    { readFileCallback              XACT_READFILE_CB* }
+    { getOverlappedResultCallback   XACT_GETOVERLAPPEDRESULT_CB* } ;
+TYPEDEF: XACT_FILEIO_CALLBACKS* PXACT_FILEIO_CALLBACKS
+
+C-TYPE: XACT_NOTIFICATION_CALLBACK
+
+CONSTANT: XACT_RENDERER_ID_LENGTH                 HEX: ff
+CONSTANT: XACT_RENDERER_NAME_LENGTH               HEX: ff
+
+STRUCT: XACT_RENDERER_DETAILS
+    { rendererID     WCHAR[255] }
+    { displayName    WCHAR[255] }
+    { defaultDevice  BOOL       } ;
+TYPEDEF: XACT_RENDERER_DETAILS* LPXACT_RENDERER_DETAILS
+
+CONSTANT: XACT_ENGINE_LOOKAHEAD_DEFAULT 250
+
+STRUCT: XACT_RUNTIME_PARAMETERS
+    { lookAheadTime                  DWORD                       }
+    { pGlobalSettingsBuffer          void*                       }
+    { globalSettingsBufferSize       DWORD                       }
+    { globalSettingsFlags            DWORD                       }
+    { globalSettingsAllocAttributes  DWORD                       }
+    { fileIOCallbacks                XACT_FILEIO_CALLBACKS       }
+    { fnNotificationCallback         XACT_NOTIFICATION_CALLBACK* }
+    { pRendererID                    PWSTR                       }
+    { pXAudio2                       IXAudio2*                   }
+    { pMasteringVoice                IXAudio2MasteringVoice*     } ;
+TYPEDEF: XACT_RUNTIME_PARAMETERS* LPXACT_RUNTIME_PARAMETERS
+
+STRUCT: XACT_STREAMING_PARAMETERS
+    { file          HANDLE }
+    { offset        DWORD  }
+    { flags         DWORD  }
+    { packetSize    WORD   } ;
+TYPEDEF: XACT_STREAMING_PARAMETERS XACT_WAVEBANK_STREAMING_PARAMETERS
+TYPEDEF: XACT_WAVEBANK_STREAMING_PARAMETERS* LPXACT_WAVEBANK_STREAMING_PARAMETERS
+TYPEDEF: XACT_STREAMING_PARAMETERS* LPXACT_STREAMING_PARAMETERS
+
+STRUCT: XACT_CUE_PROPERTIES
+    { friendlyName     CHAR[255] }
+    { interactive      BOOL }
+    { iaVariableIndex  XACTINDEX }
+    { numVariations    XACTINDEX }
+    { maxInstances     XACTINSTANCELIMIT }
+    { currentInstances XACTINSTANCELIMIT } ;
+TYPEDEF: XACT_CUE_PROPERTIES* LPXACT_CUE_PROPERTIES
+
+STRUCT: XACT_TRACK_PROPERTIES
+    { duration            XACTTIME      }
+    { numVariations       XACTINDEX     }
+    { numChannels         XACTCHANNEL   }
+    { waveVariation       XACTINDEX     }
+    { loopCount           XACTLOOPCOUNT } ;
+TYPEDEF: XACT_TRACK_PROPERTIES* LPXACT_TRACK_PROPERTIES
+
+STRUCT: XACT_VARIATION_PROPERTIES
+    { index                     XACTINDEX           }
+    { weight                    XACTVARIATIONWEIGHT }
+    { iaVariableMin             XACTVARIABLEVALUE   }
+    { iaVariableMax             XACTVARIABLEVALUE   }
+    { linger                    BOOL                } ;
+TYPEDEF: XACT_VARIATION_PROPERTIES* LPXACT_VARIATION_PROPERTIES
+
+STRUCT: XACT_SOUND_PROPERTIES
+    { category            XACTCATEGORY          }
+    { priority            BYTE                  }
+    { pitch               XACTPITCH             }
+    { volume              XACTVOLUME            }
+    { numTracks           XACTINDEX             }
+    { arrTrackProperties  XACT_TRACK_PROPERTIES } ;
+TYPEDEF: XACT_SOUND_PROPERTIES* LPXACT_SOUND_PROPERTIES
+
+STRUCT: XACT_SOUND_VARIATION_PROPERTIES
+    { variationProperties   XACT_VARIATION_PROPERTIES }
+    { soundProperties       XACT_SOUND_PROPERTIES     } ;
+TYPEDEF: XACT_SOUND_VARIATION_PROPERTIES* LPXACT_SOUND_VARIATION_PROPERTIES
+
+STRUCT: XACT_CUE_INSTANCE_PROPERTIES
+    { allocAttributes           DWORD                           }
+    { cueProperties             XACT_CUE_PROPERTIES             }
+    { activeVariationProperties XACT_SOUND_VARIATION_PROPERTIES } ;
+TYPEDEF: XACT_CUE_INSTANCE_PROPERTIES* LPXACT_CUE_INSTANCE_PROPERTIES
+
+STRUCT: WAVEBANKMINIWAVEFORMAT
+    { dwValue DWORD } ;
+
+STRUCT: WAVEBANKSAMPLEREGION
+    { dwStartSample  DWORD }
+    { dwTotalSamples DWORD } ;
+
+STRUCT: XACT_WAVE_PROPERTIES
+    { friendlyName      char[64]               }
+    { format            WAVEBANKMINIWAVEFORMAT }
+    { durationInSamples DWORD                  }
+    { loopRegion        WAVEBANKSAMPLEREGION   }
+    { streaming         BOOL                   } ;
+TYPEDEF: XACT_WAVE_PROPERTIES* LPXACT_WAVE_PROPERTIES
+
+STRUCT: XACT_WAVE_INSTANCE_PROPERTIES
+    { properties      XACT_WAVE_PROPERTIES }
+    { backgroundMusic BOOL                 } ;
+TYPEDEF: XACT_WAVE_INSTANCE_PROPERTIES* LPXACT_WAVE_INSTANCE_PROPERTIES
+
+STRUCT: XACTCHANNELMAPENTRY
+    { InputChannel    XACTCHANNEL }
+    { OutputChannel   XACTCHANNEL }
+    { Volume          XACTVOLUME  } ;
+TYPEDEF: XACTCHANNELMAPENTRY* LPXACTCHANNELMAPENTRY
+
+STRUCT: XACTCHANNELMAP
+    { EntryCount             XACTCHANNEL          }
+    { paEntries              XACTCHANNELMAPENTRY* } ;
+TYPEDEF: XACTCHANNELMAP* LPXACTCHANNELMAP
+
+STRUCT: XACTCHANNELVOLUMEENTRY
+    { EntryIndex   XACTCHANNEL }
+    { Volume       XACTVOLUME  } ;
+TYPEDEF: XACTCHANNELVOLUMEENTRY* LPXACTCHANNELVOLUMEENTRY
+
+STRUCT: XACTCHANNELVOLUME
+    { EntryCount             XACTCHANNEL             }
+    { paEntries              XACTCHANNELVOLUMEENTRY* } ;
+TYPEDEF: XACTCHANNELVOLUME* LPXACTCHANNELVOLUME
+
+CONSTANT: XACTNOTIFICATIONTYPE_CUEPREPARED                      1
+CONSTANT: XACTNOTIFICATIONTYPE_CUEPLAY                          2
+CONSTANT: XACTNOTIFICATIONTYPE_CUESTOP                          3
+CONSTANT: XACTNOTIFICATIONTYPE_CUEDESTROYED                     4
+CONSTANT: XACTNOTIFICATIONTYPE_MARKER                           5
+CONSTANT: XACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED               6
+CONSTANT: XACTNOTIFICATIONTYPE_WAVEBANKDESTROYED                7
+CONSTANT: XACTNOTIFICATIONTYPE_LOCALVARIABLECHANGED             8
+CONSTANT: XACTNOTIFICATIONTYPE_GLOBALVARIABLECHANGED            9
+CONSTANT: XACTNOTIFICATIONTYPE_GUICONNECTED                     10
+CONSTANT: XACTNOTIFICATIONTYPE_GUIDISCONNECTED                  11
+CONSTANT: XACTNOTIFICATIONTYPE_WAVEPREPARED                     12
+CONSTANT: XACTNOTIFICATIONTYPE_WAVEPLAY                         13
+CONSTANT: XACTNOTIFICATIONTYPE_WAVESTOP                         14
+CONSTANT: XACTNOTIFICATIONTYPE_WAVELOOPED                       15
+CONSTANT: XACTNOTIFICATIONTYPE_WAVEDESTROYED                    16
+CONSTANT: XACTNOTIFICATIONTYPE_WAVEBANKPREPARED                 17
+CONSTANT: XACTNOTIFICATIONTYPE_WAVEBANKSTREAMING_INVALIDCONTENT 18
+
+CONSTANT: XACT_FLAG_NOTIFICATION_PERSIST HEX: 01
+
+STRUCT: XACT_NOTIFICATION_DESCRIPTION
+    { type                     XACTNOTIFICATIONTYPE }
+    { flags                    BYTE                 }
+    { pSoundBank               IXACT3SoundBank*     }
+    { pWaveBank                IXACT3WaveBank*      }
+    { pCue                     IXACT3Cue*           }
+    { pWave                    IXACT3Wave*          }
+    { cueIndex                 XACTINDEX            }
+    { waveIndex                XACTINDEX            }
+    { pvContext                PVOID                } ;
+TYPEDEF: XACT_NOTIFICATION_DESCRIPTION* LPXACT_NOTIFICATION_DESCRIPTION
+
+STRUCT: XACT_NOTIFICATION_CUE
+    { cueIndex       XACTINDEX        }
+    { pSoundBank     IXACT3SoundBank* }
+    { pCue           IXACT3Cue*       } ;
+TYPEDEF: XACT_NOTIFICATION_CUE* LPXACT_NOTIFICATION_CUE
+
+STRUCT: XACT_NOTIFICATION_MARKER
+    { cueIndex         XACTINDEX        }
+    { pSoundBank       IXACT3SoundBank* }
+    { pCue             IXACT3Cue*       }
+    { marker           DWORD            } ;
+TYPEDEF: XACT_NOTIFICATION_MARKER* LPXACT_NOTIFICATION_MARKER
+
+STRUCT: XACT_NOTIFICATION_SOUNDBANK
+    { pSoundBank IXACT3SoundBank* } ;
+TYPEDEF: XACT_NOTIFICATION_SOUNDBANK* LPXACT_NOTIFICATION_SOUNDBANK
+
+STRUCT: XACT_NOTIFICATION_WAVEBANK
+    { pWaveBank  IXACT3WaveBank* } ;
+TYPEDEF: XACT_NOTIFICATION_WAVEBANK* LPXACT_NOTIFICATION_WAVEBANK
+
+STRUCT: XACT_NOTIFICATION_VARIABLE
+    { cueIndex             XACTINDEX         }
+    { pSoundBank           IXACT3SoundBank*  }
+    { pCue                 IXACT3Cue*        }
+    { variableIndex        XACTVARIABLEINDEX }
+    { variableValue        XACTVARIABLEVALUE }
+    { local                BOOL              } ;
+TYPEDEF: XACT_NOTIFICATION_VARIABLE* LPXACT_NOTIFICATION_VARIABLE
+
+STRUCT: XACT_NOTIFICATION_GUI
+    { reserved   DWORD } ;
+TYPEDEF: XACT_NOTIFICATION_GUI* LPXACT_NOTIFICATION_GUI
+
+STRUCT: XACT_NOTIFICATION_WAVE
+    { pWaveBank       IXACT3WaveBank*  }
+    { waveIndex       XACTINDEX        }
+    { cueIndex        XACTINDEX        }
+    { pSoundBank      IXACT3SoundBank* }
+    { pCue            IXACT3Cue*       }
+    { pWave           IXACT3Wave*      } ;
+TYPEDEF: XACT_NOTIFICATION_WAVE* LPXACT_NOTIFICATION_WAVE
+
+UNION-STRUCT: XACT_NOTIFICATION_UNION
+    { cue       XACT_NOTIFICATION_CUE }
+    { marker    XACT_NOTIFICATION_MARKER }
+    { soundBank XACT_NOTIFICATION_SOUNDBANK }
+    { waveBank  XACT_NOTIFICATION_WAVEBANK }
+    { variable  XACT_NOTIFICATION_VARIABLE }
+    { gui       XACT_NOTIFICATION_GUI }
+    { wave      XACT_NOTIFICATION_WAVE } ;
+STRUCT: XACT_NOTIFICATION
+    { type                         XACTNOTIFICATIONTYPE    }
+    { timeStamp                    LONG                    }
+    { pvContext                    PVOID                   }
+    { union                        XACT_NOTIFICATION_UNION } ;
+TYPEDEF: XACT_NOTIFICATION* LPXACT_NOTIFICATION
+
+CONSTANT: XACT_FLAG_SOUNDBANK_STOP_IMMEDIATE  HEX: 00000001
+CONSTANT: XACT_SOUNDBANKSTATE_INUSE           HEX: 00000080
+
+COM-INTERFACE: IXACT3SoundBank f {00000000-0000-0000-0000-000000000000}
+    XACTINDEX GetCueIndex ( PCSTR szFriendlyName )
+    HRESULT GetNumCues ( XACTINDEX* pnNumCues )
+    HRESULT GetCueProperties ( XACTINDEX nCueIndex, LPXACT_CUE_PROPERTIES pProperties )
+    HRESULT Prepare ( XACTINDEX nCueIndex, DWORD dwFlags, XACTTIME timeOffset, IXACT3Cue** ppCue )
+    HRESULT Play ( XACTINDEX nCueIndex, DWORD dwFlags, XACTTIME timeOffset, IXACT3Cue** ppCue )
+    HRESULT Stop ( XACTINDEX nCueIndex, DWORD dwFlags )
+    HRESULT Destroy ( )
+    HRESULT GetState ( DWORD* pdwState ) ;
+
+CONSTANT: XACT_WAVEBANKSTATE_INUSE            HEX: 00000080
+CONSTANT: XACT_WAVEBANKSTATE_PREPARED         HEX: 00000004
+CONSTANT: XACT_WAVEBANKSTATE_PREPAREFAILED    HEX: 80000000
+
+COM-INTERFACE: IXACT3WaveBank f {00000000-0000-0000-0000-000000000000}
+    HRESULT Destroy ( )
+    HRESULT GetNumWaves ( XACTINDEX* pnNumWaves )
+    XACTINDEX GetWaveIndex ( PCSTR szFriendlyName )
+    HRESULT GetWaveProperties ( XACTINDEX nWaveIndex, LPXACT_WAVE_PROPERTIES pWaveProperties )
+    HRESULT Prepare ( XACTINDEX nWaveIndex, DWORD dwFlags, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, IXACT3Wave** ppWave )
+    HRESULT Play ( XACTINDEX nWaveIndex, DWORD dwFlags, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, IXACT3Wave** ppWave )
+    HRESULT Stop ( XACTINDEX nWaveIndex, DWORD dwFlags )
+    HRESULT GetState ( DWORD* pdwState ) ;
+
+COM-INTERFACE: IXACT3Wave f {00000000-0000-0000-0000-000000000000}
+    HRESULT Destroy ( )
+    HRESULT Play ( )
+    HRESULT Stop ( DWORD dwFlags )
+    HRESULT Pause ( BOOL fPause )
+    HRESULT GetState ( DWORD* pdwState )
+    HRESULT SetPitch ( XACTPITCH pitch )
+    HRESULT SetVolume ( XACTVOLUME volume )
+    HRESULT SetMatrixCoefficients ( UINT32 uSrcChannelCount, UINT32 uDstChannelCount,  float* pMatrixCoefficients )
+    HRESULT GetProperties ( LPXACT_WAVE_INSTANCE_PROPERTIES pProperties ) ;
+
+: XACT_FLAG_CUE_STOP_RELEASE      ( -- z ) XACT_FLAG_STOP_RELEASE ; inline 
+: XACT_FLAG_CUE_STOP_IMMEDIATE    ( -- z ) XACT_FLAG_STOP_IMMEDIATE ; inline 
+
+: XACT_CUESTATE_CREATED           ( -- z ) XACT_STATE_CREATED ; inline 
+: XACT_CUESTATE_PREPARING         ( -- z ) XACT_STATE_PREPARING ; inline 
+: XACT_CUESTATE_PREPARED          ( -- z ) XACT_STATE_PREPARED ; inline 
+: XACT_CUESTATE_PLAYING           ( -- z ) XACT_STATE_PLAYING ; inline 
+: XACT_CUESTATE_STOPPING          ( -- z ) XACT_STATE_STOPPING ; inline 
+: XACT_CUESTATE_STOPPED           ( -- z ) XACT_STATE_STOPPED ; inline 
+: XACT_CUESTATE_PAUSED            ( -- z ) XACT_STATE_PAUSED ; inline 
+
+COM-INTERFACE: IXACT3Cue f {00000000-0000-0000-0000-000000000000}
+    HRESULT Play (  )
+    HRESULT Stop ( DWORD dwFlags )
+    HRESULT GetState ( DWORD* pdwState )
+    HRESULT Destroy (  )
+    HRESULT SetMatrixCoefficients ( UINT32 uSrcChannelCount, UINT32 uDstChannelCount,  float* pMatrixCoefficients )
+    XACTVARIABLEINDEX GetVariableIndex ( PCSTR szFriendlyName )
+    HRESULT SetVariable ( XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE nValue )
+    HRESULT GetVariable ( XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE* nValue )
+    HRESULT Pause ( BOOL fPause )
+    HRESULT GetProperties ( LPXACT_CUE_INSTANCE_PROPERTIES* ppProperties )
+    HRESULT SetOutputVoices ( XAUDIO2_VOICE_SENDS* pSendList )
+    HRESULT SetOutputVoiceMatrix ( IXAudio2Voice* pDestinationVoice, UINT32 SourceChannels, UINT32 DestinationChannels, float* pLevelMatrix ) ;
+
+: XACT_FLAG_ENGINE_CREATE_MANAGEDATA    ( -- z ) XACT_FLAG_MANAGEDATA ; inline 
+: XACT_FLAG_ENGINE_STOP_IMMEDIATE       ( -- z ) XACT_FLAG_STOP_IMMEDIATE ; inline 
+
+STRUCT: WAVEBANKREGION
+    { dwOffset       DWORD }
+    { dwLength       DWORD } ;
+
+STRUCT: WAVEBANKENTRY
+    { dwFlagsAndDuration  DWORD                  }
+    { Format              WAVEBANKMINIWAVEFORMAT }
+    { PlayRegion          WAVEBANKREGION         }
+    { LoopRegion          WAVEBANKSAMPLEREGION   } ;
+
+COM-INTERFACE: IXACT3Engine IUnknown {b1ee676a-d9cd-4d2a-89a8-fa53eb9e480b}
+    HRESULT GetRendererCount ( XACTINDEX* pnRendererCount )
+    HRESULT GetRendererDetails ( XACTINDEX nRendererIndex, LPXACT_RENDERER_DETAILS pRendererDetails )
+    HRESULT GetFinalMixFormat ( WAVEFORMATEXTENSIBLE* pFinalMixFormat )
+    HRESULT Initialize ( XACT_RUNTIME_PARAMETERS* pParams )
+    HRESULT ShutDown (  )
+    HRESULT DoWork (  )
+    HRESULT CreateSoundBank ( void* pvBuffer, DWORD dwSize, DWORD dwFlags, DWORD dwAllocAttributes, IXACT3SoundBank** ppSoundBank )
+    HRESULT CreateInMemoryWaveBank ( void* pvBuffer, DWORD dwSize, DWORD dwFlags, DWORD dwAllocAttributes, IXACT3WaveBank** ppWaveBank )
+    HRESULT CreateStreamingWaveBank ( XACT_WAVEBANK_STREAMING_PARAMETERS* pParms, IXACT3WaveBank** ppWaveBank )
+    HRESULT PrepareWave ( DWORD dwFlags,  PCSTR szWavePath, WORD wStreamingPacketSize, DWORD dwAlignment, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, IXACT3Wave** ppWave )
+    HRESULT PrepareInMemoryWave ( DWORD dwFlags, WAVEBANKENTRY entry, DWORD* pdwSeekTable, BYTE* pbWaveData, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, IXACT3Wave** ppWave )
+    HRESULT PrepareStreamingWave ( DWORD dwFlags, WAVEBANKENTRY entry, XACT_STREAMING_PARAMETERS streamingParams, DWORD dwAlignment, DWORD* pdwSeekTable, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, IXACT3Wave** ppWave )
+    HRESULT RegisterNotification ( XACT_NOTIFICATION_DESCRIPTION* pNotificationDesc )
+    HRESULT UnRegisterNotification ( XACT_NOTIFICATION_DESCRIPTION* pNotificationDesc )
+    XACTCATEGORY GetCategory ( PCSTR szFriendlyName )
+    HRESULT Stop ( XACTCATEGORY nCategory, DWORD dwFlags )
+    HRESULT SetVolume ( XACTCATEGORY nCategory, XACTVOLUME nVolume )
+    HRESULT Pause ( XACTCATEGORY nCategory, BOOL fPause )
+    XACTVARIABLEINDEX GetGlobalVariableIndex ( PCSTR szFriendlyName )
+    HRESULT SetGlobalVariable ( XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE nValue )
+    HRESULT GetGlobalVariable ( XACTVARIABLEINDEX nIndex,  XACTVARIABLEVALUE* nValue ) ;
+
+CONSTANT: XACT_FLAG_API_AUDITION_MODE 1
+CONSTANT: XACT_FLAG_API_DEBUG_MODE    2
+
+CONSTANT: XACTENGINE_E_OUTOFMEMORY               HEX: 80070000
+CONSTANT: XACTENGINE_E_INVALIDARG                HEX: 80070057
+CONSTANT: XACTENGINE_E_NOTIMPL                   HEX: 80004001
+CONSTANT: XACTENGINE_E_FAIL                      HEX: 80004005
+
+CONSTANT: XACTENGINE_E_ALREADYINITIALIZED        HEX: 8AC70001
+CONSTANT: XACTENGINE_E_NOTINITIALIZED            HEX: 8AC70002
+CONSTANT: XACTENGINE_E_EXPIRED                   HEX: 8AC70003
+CONSTANT: XACTENGINE_E_NONOTIFICATIONCALLBACK    HEX: 8AC70004
+CONSTANT: XACTENGINE_E_NOTIFICATIONREGISTERED    HEX: 8AC70005
+CONSTANT: XACTENGINE_E_INVALIDUSAGE              HEX: 8AC70006
+CONSTANT: XACTENGINE_E_INVALIDDATA               HEX: 8AC70007
+CONSTANT: XACTENGINE_E_INSTANCELIMITFAILTOPLAY   HEX: 8AC70008
+CONSTANT: XACTENGINE_E_NOGLOBALSETTINGS          HEX: 8AC70009
+CONSTANT: XACTENGINE_E_INVALIDVARIABLEINDEX      HEX: 8AC7000a
+CONSTANT: XACTENGINE_E_INVALIDCATEGORY           HEX: 8AC7000b
+CONSTANT: XACTENGINE_E_INVALIDCUEINDEX           HEX: 8AC7000c
+CONSTANT: XACTENGINE_E_INVALIDWAVEINDEX          HEX: 8AC7000d
+CONSTANT: XACTENGINE_E_INVALIDTRACKINDEX         HEX: 8AC7000e
+CONSTANT: XACTENGINE_E_INVALIDSOUNDOFFSETORINDEX HEX: 8AC7000f
+CONSTANT: XACTENGINE_E_READFILE                  HEX: 8AC70010
+CONSTANT: XACTENGINE_E_UNKNOWNEVENT              HEX: 8AC70011
+CONSTANT: XACTENGINE_E_INCALLBACK                HEX: 8AC70012
+CONSTANT: XACTENGINE_E_NOWAVEBANK                HEX: 8AC70013
+CONSTANT: XACTENGINE_E_SELECTVARIATION           HEX: 8AC70014
+CONSTANT: XACTENGINE_E_MULTIPLEAUDITIONENGINES   HEX: 8AC70015
+CONSTANT: XACTENGINE_E_WAVEBANKNOTPREPARED       HEX: 8AC70016
+CONSTANT: XACTENGINE_E_NORENDERER                HEX: 8AC70017
+CONSTANT: XACTENGINE_E_INVALIDENTRYCOUNT         HEX: 8AC70018
+CONSTANT: XACTENGINE_E_SEEKTIMEBEYONDCUEEND      HEX: 8AC70019
+CONSTANT: XACTENGINE_E_SEEKTIMEBEYONDWAVEEND     HEX: 8AC7001a
+CONSTANT: XACTENGINE_E_NOFRIENDLYNAMES           HEX: 8AC7001b
+
+CONSTANT: XACTENGINE_E_AUDITION_WRITEFILE             HEX: 8AC70101
+CONSTANT: XACTENGINE_E_AUDITION_NOSOUNDBANK           HEX: 8AC70102
+CONSTANT: XACTENGINE_E_AUDITION_INVALIDRPCINDEX       HEX: 8AC70103
+CONSTANT: XACTENGINE_E_AUDITION_MISSINGDATA           HEX: 8AC70104
+CONSTANT: XACTENGINE_E_AUDITION_UNKNOWNCOMMAND        HEX: 8AC70105
+CONSTANT: XACTENGINE_E_AUDITION_INVALIDDSPINDEX       HEX: 8AC70106
+CONSTANT: XACTENGINE_E_AUDITION_MISSINGWAVE           HEX: 8AC70107
+CONSTANT: XACTENGINE_E_AUDITION_CREATEDIRECTORYFAILED HEX: 8AC70108
+CONSTANT: XACTENGINE_E_AUDITION_INVALIDSESSION        HEX: 8AC70109
+
diff --git a/basis/windows/directx/xapo/authors.txt b/basis/windows/directx/xapo/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/xapo/summary.txt b/basis/windows/directx/xapo/summary.txt
new file mode 100644 (file)
index 0000000..95e1421
--- /dev/null
@@ -0,0 +1 @@
+XAPO bindings. Corresponds to xapo.h.
diff --git a/basis/windows/directx/xapo/tags.txt b/basis/windows/directx/xapo/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/xapo/xapo.factor b/basis/windows/directx/xapo/xapo.factor
new file mode 100644 (file)
index 0000000..5878af8
--- /dev/null
@@ -0,0 +1,68 @@
+USING: alien.c-types alien.syntax classes.struct windows.com
+windows.com.syntax windows.directx.audiodefs windows.kernel32
+windows.types ;
+IN: windows.directx.xapo
+
+CONSTANT: XAPO_MIN_CHANNELS 1
+CONSTANT: XAPO_MAX_CHANNELS 64
+
+CONSTANT: XAPO_MIN_FRAMERATE 1000
+CONSTANT: XAPO_MAX_FRAMERATE 200000
+
+CONSTANT: XAPO_REGISTRATION_STRING_LENGTH 256
+
+CONSTANT: XAPO_FLAG_CHANNELS_MUST_MATCH      HEX: 00000001
+
+CONSTANT: XAPO_FLAG_FRAMERATE_MUST_MATCH     HEX: 00000002
+
+CONSTANT: XAPO_FLAG_BITSPERSAMPLE_MUST_MATCH HEX: 00000004
+
+CONSTANT: XAPO_FLAG_BUFFERCOUNT_MUST_MATCH   HEX: 00000008
+
+CONSTANT: XAPO_FLAG_INPLACE_REQUIRED         HEX: 00000020
+
+CONSTANT: XAPO_FLAG_INPLACE_SUPPORTED        HEX: 00000010
+
+STRUCT: XAPO_REGISTRATION_PROPERTIES 
+    { clsid                GUID       }
+    { FriendlyName         WCHAR[256] }
+    { CopyrightInfo        WCHAR[256] }
+    { MajorVersion         UINT32     }
+    { MinorVersion         UINT32     }
+    { Flags                UINT32     }
+    { MinInputBufferCount  UINT32     }
+    { MaxInputBufferCount  UINT32     }
+    { MinOutputBufferCount UINT32     }
+    { MaxOutputBufferCount UINT32     } ;
+
+STRUCT: XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS
+    { pFormat                    WAVEFORMATEX* }
+    { MaxFrameCount              UINT32        } ;
+
+C-ENUM:
+        XAPO_BUFFER_SILENT
+        XAPO_BUFFER_VALID ;
+TYPEDEF: int XAPO_BUFFER_FLAGS
+
+STRUCT: XAPO_PROCESS_BUFFER_PARAMETERS
+    { pBuffer                    void*             }
+    { BufferFlags                XAPO_BUFFER_FLAGS }
+    { ValidFrameCount            UINT32            } ;
+
+COM-INTERFACE: IXAPO IUnknown {A90BC001-E897-E897-55E4-9E4700000000}
+    HRESULT GetRegistrationProperties ( XAPO_REGISTRATION_PROPERTIES** ppRegistrationProperties )
+    HRESULT IsInputFormatSupported ( WAVEFORMATEX* pOutputFormat, WAVEFORMATEX* pRequestedInputFormat, WAVEFORMATEX** ppSupportedInputFormat )
+    HRESULT IsOutputFormatSupported ( WAVEFORMATEX* pInputFormat, WAVEFORMATEX* pRequestedOutputFormat, WAVEFORMATEX** ppSupportedOutputFormat )
+    HRESULT Initialize ( void* pData, UINT32 DataByteSize )
+    void Reset ( )
+    HRESULT LockForProcess ( UINT32 InputLockedParameterCount, XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS* pInputLockedParameters, UINT32 OutputLockedParameterCount, XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS* pOutputLockedParameters )
+    void UnlockForProcess ( )
+    void Process ( UINT32 InputProcessParameterCount, XAPO_PROCESS_BUFFER_PARAMETERS* pInputProcessParameters, UINT32 OutputProcessParameterCount, XAPO_PROCESS_BUFFER_PARAMETERS* pOutputProcessParameters, BOOL IsEnabled )
+    UINT32 CalcInputFrames ( UINT32 OutputFrameCount )
+    UINT32 CalcOutputFrames ( UINT32 InputFrameCount ) ;
+
+COM-INTERFACE: IXAPOParameters IUnknown {A90BC001-E897-E897-55E4-9E4700000001}
+    void SetParameters ( void* pParameters, UINT32 ParameterByteSize )
+    void GetParameters ( void* pParameters, UINT32 ParameterByteSize ) ;
+
+
diff --git a/basis/windows/directx/xapofx/authors.txt b/basis/windows/directx/xapofx/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/xapofx/summary.txt b/basis/windows/directx/xapofx/summary.txt
new file mode 100644 (file)
index 0000000..8dce424
--- /dev/null
@@ -0,0 +1 @@
+XAPOFX bindings. Corresponds to xapofx.h.
diff --git a/basis/windows/directx/xapofx/tags.txt b/basis/windows/directx/xapofx/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/xapofx/xapofx.factor b/basis/windows/directx/xapofx/xapofx.factor
new file mode 100644 (file)
index 0000000..1255880
--- /dev/null
@@ -0,0 +1,80 @@
+USING: alien.c-types alien.syntax classes.struct windows.ole32
+windows.types ;
+IN: windows.directx.xapofx
+
+LIBRARY: xapofx
+
+CONSTANT: FXEQ_MIN_FRAMERATE 22000
+CONSTANT: FXEQ_MAX_FRAMERATE 48000
+
+CONSTANT: FXEQ_MIN_FREQUENCY_CENTER       20.0
+CONSTANT: FXEQ_MAX_FREQUENCY_CENTER       20000.0
+CONSTANT: FXEQ_DEFAULT_FREQUENCY_CENTER_0 100.0
+CONSTANT: FXEQ_DEFAULT_FREQUENCY_CENTER_1 800.0
+CONSTANT: FXEQ_DEFAULT_FREQUENCY_CENTER_2 2000.0
+CONSTANT: FXEQ_DEFAULT_FREQUENCY_CENTER_3 10000.0
+
+CONSTANT: FXEQ_MIN_GAIN     0.126
+CONSTANT: FXEQ_MAX_GAIN     7.94
+CONSTANT: FXEQ_DEFAULT_GAIN 1.0
+
+CONSTANT: FXEQ_MIN_BANDWIDTH     0.1
+CONSTANT: FXEQ_MAX_BANDWIDTH     2.0
+CONSTANT: FXEQ_DEFAULT_BANDWIDTH 1.0
+
+CONSTANT: FXMASTERINGLIMITER_MIN_RELEASE     1
+CONSTANT: FXMASTERINGLIMITER_MAX_RELEASE     20
+CONSTANT: FXMASTERINGLIMITER_DEFAULT_RELEASE 6
+
+CONSTANT: FXMASTERINGLIMITER_MIN_LOUDNESS     1
+CONSTANT: FXMASTERINGLIMITER_MAX_LOUDNESS     1800
+CONSTANT: FXMASTERINGLIMITER_DEFAULT_LOUDNESS 1000
+
+CONSTANT: FXREVERB_MIN_DIFFUSION     0.0
+CONSTANT: FXREVERB_MAX_DIFFUSION     1.0
+CONSTANT: FXREVERB_DEFAULT_DIFFUSION 0.9
+
+CONSTANT: FXREVERB_MIN_ROOMSIZE     0.0001
+CONSTANT: FXREVERB_MAX_ROOMSIZE     1.0
+CONSTANT: FXREVERB_DEFAULT_ROOMSIZE 0.6
+
+CONSTANT: FXECHO_MIN_WETDRYMIX     0.0
+CONSTANT: FXECHO_MAX_WETDRYMIX     1.0
+CONSTANT: FXECHO_DEFAULT_WETDRYMIX 0.5
+
+CONSTANT: FXECHO_MIN_FEEDBACK     0.0
+CONSTANT: FXECHO_MAX_FEEDBACK     1.0
+CONSTANT: FXECHO_DEFAULT_FEEDBACK 0.5
+
+CONSTANT: FXECHO_MIN_DELAY     1.0
+CONSTANT: FXECHO_MAX_DELAY     2000.0
+CONSTANT: FXECHO_DEFAULT_DELAY 500.0
+
+STRUCT: FXEQ_PARAMETERS
+    { FrequencyCenter0 float }
+    { Gain0            float }
+    { Bandwidth0       float }
+    { FrequencyCenter1 float }
+    { Gain1            float }
+    { Bandwidth1       float }
+    { FrequencyCenter2 float }
+    { Gain2            float }
+    { Bandwidth2       float }
+    { FrequencyCenter3 float }
+    { Gain3            float }
+    { Bandwidth3       float } ;
+
+STRUCT: FXMASTERINGLIMITER_PARAMETERS
+    { Release  UINT32 }
+    { Loudness UINT32 } ;
+
+STRUCT: FXREVERB_PARAMETERS
+    { Diffusion float }
+    { RoomSize  float } ;
+
+STRUCT: FXECHO_PARAMETERS
+    { WetDryMix float }
+    { Feedback  float }
+    { Delay     float } ;
+
+FUNCTION: HRESULT CreateFX ( REFCLSID clsid, IUnknown** pEffect ) ;
diff --git a/basis/windows/directx/xaudio2/authors.txt b/basis/windows/directx/xaudio2/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/xaudio2/summary.txt b/basis/windows/directx/xaudio2/summary.txt
new file mode 100644 (file)
index 0000000..4b78fa9
--- /dev/null
@@ -0,0 +1 @@
+XAudio2 bindings. Corresponds to xaudio2.h.
diff --git a/basis/windows/directx/xaudio2/tags.txt b/basis/windows/directx/xaudio2/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/xaudio2/xaudio2.factor b/basis/windows/directx/xaudio2/xaudio2.factor
new file mode 100644 (file)
index 0000000..67a9234
--- /dev/null
@@ -0,0 +1,312 @@
+USING: alien.c-types alien.syntax classes.struct math
+windows.com windows.com.syntax windows.directx.audiodefs
+windows.types ;
+IN: windows.directx.xaudio2
+
+LIBRARY: xaudio2
+
+CONSTANT: XAUDIO2_MAX_BUFFER_BYTES        HEX: 80000000
+CONSTANT: XAUDIO2_MAX_QUEUED_BUFFERS      64
+CONSTANT: XAUDIO2_MAX_BUFFERS_SYSTEM      2
+CONSTANT: XAUDIO2_MAX_AUDIO_CHANNELS      64
+CONSTANT: XAUDIO2_MIN_SAMPLE_RATE         1000
+CONSTANT: XAUDIO2_MAX_SAMPLE_RATE         200000
+CONSTANT: XAUDIO2_MAX_VOLUME_LEVEL        16777216.0
+: XAUDIO2_MIN_FREQ_RATIO ( -- z ) 1.0 1024.0 / ; inline
+CONSTANT: XAUDIO2_MAX_FREQ_RATIO          1024.0
+CONSTANT: XAUDIO2_DEFAULT_FREQ_RATIO      2.0
+CONSTANT: XAUDIO2_MAX_FILTER_ONEOVERQ     1.5
+CONSTANT: XAUDIO2_MAX_FILTER_FREQUENCY    1.0
+CONSTANT: XAUDIO2_MAX_LOOP_COUNT          254
+CONSTANT: XAUDIO2_MAX_INSTANCES           8
+
+CONSTANT: XAUDIO2_MAX_RATIO_TIMES_RATE_XMA_MONO         600000
+CONSTANT: XAUDIO2_MAX_RATIO_TIMES_RATE_XMA_MULTICHANNEL 300000
+
+CONSTANT: XAUDIO2_COMMIT_NOW              0
+CONSTANT: XAUDIO2_COMMIT_ALL              0
+CONSTANT: XAUDIO2_INVALID_OPSET           HEX: ffffffff
+CONSTANT: XAUDIO2_NO_LOOP_REGION          0
+CONSTANT: XAUDIO2_LOOP_INFINITE           255
+CONSTANT: XAUDIO2_DEFAULT_CHANNELS        0
+CONSTANT: XAUDIO2_DEFAULT_SAMPLERATE      0
+
+
+CONSTANT: XAUDIO2_DEBUG_ENGINE            HEX: 0001
+CONSTANT: XAUDIO2_VOICE_NOPITCH           HEX: 0002
+CONSTANT: XAUDIO2_VOICE_NOSRC             HEX: 0004
+CONSTANT: XAUDIO2_VOICE_USEFILTER         HEX: 0008
+CONSTANT: XAUDIO2_VOICE_MUSIC             HEX: 0010
+CONSTANT: XAUDIO2_PLAY_TAILS              HEX: 0020
+CONSTANT: XAUDIO2_END_OF_STREAM           HEX: 0040
+CONSTANT: XAUDIO2_SEND_USEFILTER          HEX: 0080
+
+
+CONSTANT: XAUDIO2_DEFAULT_FILTER_TYPE      0
+CONSTANT: XAUDIO2_DEFAULT_FILTER_FREQUENCY 1.0
+CONSTANT: XAUDIO2_DEFAULT_FILTER_ONEOVERQ  1.0
+
+CONSTANT: XAUDIO2_QUANTUM_NUMERATOR   1
+CONSTANT: XAUDIO2_QUANTUM_DENOMINATOR 100
+
+: XAUDIO2_QUANTUM_MS ( -- z )
+    XAUDIO2_QUANTUM_DENOMINATOR 1000.0 XAUDIO2_QUANTUM_NUMERATOR * / ; inline
+
+CONSTANT: XAUDIO2_E_INVALID_CALL          HEX: 88960001
+CONSTANT: XAUDIO2_E_XMA_DECODER_ERROR     HEX: 88960002
+CONSTANT: XAUDIO2_E_XAPO_CREATION_FAILED  HEX: 88960003
+CONSTANT: XAUDIO2_E_DEVICE_INVALIDATED    HEX: 88960004
+
+CONSTANT: Processor1  HEX: 00000001
+CONSTANT: Processor2  HEX: 00000002
+CONSTANT: Processor3  HEX: 00000004
+CONSTANT: Processor4  HEX: 00000008
+CONSTANT: Processor5  HEX: 00000010
+CONSTANT: Processor6  HEX: 00000020
+CONSTANT: Processor7  HEX: 00000040
+CONSTANT: Processor8  HEX: 00000080
+CONSTANT: Processor9  HEX: 00000100
+CONSTANT: Processor10 HEX: 00000200
+CONSTANT: Processor11 HEX: 00000400
+CONSTANT: Processor12 HEX: 00000800
+CONSTANT: Processor13 HEX: 00001000
+CONSTANT: Processor14 HEX: 00002000
+CONSTANT: Processor15 HEX: 00004000
+CONSTANT: Processor16 HEX: 00008000
+CONSTANT: Processor17 HEX: 00010000
+CONSTANT: Processor18 HEX: 00020000
+CONSTANT: Processor19 HEX: 00040000
+CONSTANT: Processor20 HEX: 00080000
+CONSTANT: Processor21 HEX: 00100000
+CONSTANT: Processor22 HEX: 00200000
+CONSTANT: Processor23 HEX: 00400000
+CONSTANT: Processor24 HEX: 00800000
+CONSTANT: Processor25 HEX: 01000000
+CONSTANT: Processor26 HEX: 02000000
+CONSTANT: Processor27 HEX: 04000000
+CONSTANT: Processor28 HEX: 08000000
+CONSTANT: Processor29 HEX: 10000000
+CONSTANT: Processor30 HEX: 20000000
+CONSTANT: Processor31 HEX: 40000000
+CONSTANT: Processor32 HEX: 80000000
+CONSTANT: XAUDIO2_ANY_PROCESSOR HEX: ffffffff
+CONSTANT: XAUDIO2_DEFAULT_PROCESSOR HEX: ffffffff
+TYPEDEF: int XAUDIO2_WINDOWS_PROCESSOR_SPECIFIER
+TYPEDEF: int XAUDIO2_PROCESSOR
+
+CONSTANT: NotDefaultDevice            HEX: 0
+CONSTANT: DefaultConsoleDevice        HEX: 1
+CONSTANT: DefaultMultimediaDevice     HEX: 2
+CONSTANT: DefaultCommunicationsDevice HEX: 4
+CONSTANT: DefaultGameDevice           HEX: 8
+CONSTANT: GlobalDefaultDevice         HEX: f
+CONSTANT: InvalidDeviceRole           HEX: 0
+TYPEDEF: int XAUDIO2_DEVICE_ROLE
+
+STRUCT: XAUDIO2_DEVICE_DETAILS
+    { DeviceID     WCHAR[256]           }
+    { DisplayName  WCHAR[256]           }
+    { Role         XAUDIO2_DEVICE_ROLE  }
+    { OutputFormat WAVEFORMATEXTENSIBLE } ;
+
+STRUCT: XAUDIO2_VOICE_DETAILS
+    { CreationFlags   UINT32 }
+    { InputChannels   UINT32 }
+    { InputSampleRate UINT32 } ;
+
+C-TYPE: IXAudio2Voice
+
+STRUCT: XAUDIO2_SEND_DESCRIPTOR
+    { Flags        UINT32         }
+    { pOutputVoice IXAudio2Voice* } ;
+
+STRUCT: XAUDIO2_VOICE_SENDS
+    { SendCount UINT32                   }
+    { pSends    XAUDIO2_SEND_DESCRIPTOR* } ;
+
+STRUCT: XAUDIO2_EFFECT_DESCRIPTOR
+    { pEffect        IUnknown* }
+    { InitialState   BOOL      }
+    { OutputChannels UINT32    } ;
+
+STRUCT: XAUDIO2_EFFECT_CHAIN
+    { EffectCount        UINT32                     }
+    { pEffectDescriptors XAUDIO2_EFFECT_DESCRIPTOR* } ;
+
+C-ENUM:
+    LowPassFilter
+    BandPassFilter
+    HighPassFilter
+    NotchFilter ;
+TYPEDEF: int XAUDIO2_FILTER_TYPE
+
+STRUCT: XAUDIO2_FILTER_PARAMETERS
+    { Type      XAUDIO2_FILTER_TYPE }
+    { Frequency FLOAT               }
+    { OneOverQ  FLOAT               } ;
+
+STRUCT: XAUDIO2_BUFFER
+    { Flags      UINT32 }
+    { AudioBytes UINT32 }
+    { pAudioData BYTE*  }
+    { PlayBegin  UINT32 }
+    { PlayLength UINT32 }
+    { LoopBegin  UINT32 }
+    { LoopLength UINT32 }
+    { LoopCount  UINT32 }
+    { pContext   void*  } ;
+
+
+STRUCT: XAUDIO2_BUFFER_WMA
+    { pDecodedPacketCumulativeBytes UINT32* }
+    { PacketCount                   UINT32  } ;
+
+STRUCT: XAUDIO2_VOICE_STATE
+    { pCurrentBufferContext void*  }
+    { BuffersQueued         UINT32 }
+    { SamplesPlayed         UINT64 } ;
+
+STRUCT: XAUDIO2_PERFORMANCE_DATA
+    { AudioCyclesSinceLastQuery  UINT64 }
+    { TotalCyclesSinceLastQuery  UINT64 }
+    { MinimumCyclesPerQuantum    UINT32 }
+    { MaximumCyclesPerQuantum    UINT32 }
+    { MemoryUsageInBytes         UINT32 }
+    { CurrentLatencyInSamples    UINT32 }
+    { GlitchesSinceEngineStarted UINT32 }
+    { ActiveSourceVoiceCount     UINT32 }
+    { TotalSourceVoiceCount      UINT32 }
+    { ActiveSubmixVoiceCount     UINT32 }
+    { ActiveResamplerCount       UINT32 }
+    { ActiveMatrixMixCount       UINT32 }
+    { ActiveXmaSourceVoices      UINT32 }
+    { ActiveXmaStreams           UINT32 } ;
+
+STRUCT: XAUDIO2_DEBUG_CONFIGURATION
+    { TraceMask       UINT32 }
+    { BreakMask       UINT32 }
+    { LogThreadID     BOOL   }
+    { LogFileline     BOOL   }
+    { LogFunctionName BOOL   }
+    { LogTiming       BOOL   } ;
+
+CONSTANT: XAUDIO2_LOG_ERRORS     HEX: 0001
+CONSTANT: XAUDIO2_LOG_WARNINGS   HEX: 0002
+CONSTANT: XAUDIO2_LOG_INFO       HEX: 0004
+CONSTANT: XAUDIO2_LOG_DETAIL     HEX: 0008
+CONSTANT: XAUDIO2_LOG_API_CALLS  HEX: 0010
+CONSTANT: XAUDIO2_LOG_FUNC_CALLS HEX: 0020
+CONSTANT: XAUDIO2_LOG_TIMING     HEX: 0040
+CONSTANT: XAUDIO2_LOG_LOCKS      HEX: 0080
+CONSTANT: XAUDIO2_LOG_MEMORY     HEX: 0100
+CONSTANT: XAUDIO2_LOG_STREAMING  HEX: 1000
+
+C-TYPE: IXAudio2EngineCallback
+C-TYPE: IXAudio2VoiceCallback
+
+COM-INTERFACE: IXAudio2 IUnknown {8bcf1f58-9fe7-4583-8ac6-e2adc465c8bb}
+    HRESULT GetDeviceCount ( UINT32* pCount )
+    HRESULT GetDeviceDetails ( UINT32 Index, XAUDIO2_DEVICE_DETAILS* pDeviceDetails )
+    HRESULT Initialize ( UINT32 Flags, XAUDIO2_PROCESSOR XAudio2Processor )
+    HRESULT RegisterForCallbacks ( IXAudio2EngineCallback* pCallback )
+    void UnregisterForCallbacks ( IXAudio2EngineCallback* pCallback )
+    HRESULT CreateSourceVoice (
+        IXAudio2SourceVoice**  ppSourceVoice,
+        WAVEFORMATEX*          pSourceFormat,
+        UINT32                 Flags,
+        FLOAT                  MaxFrequencyRatio,
+        IXAudio2VoiceCallback* pCallback,
+        XAUDIO2_VOICE_SENDS*   pSendList,
+        XAUDIO2_EFFECT_CHAIN*  pEffectChain )
+    HRESULT CreateSubmixVoice (
+        IXAudio2SubmixVoice** ppSubmixVoice,
+        UINT32                InputChannels,
+        UINT32                InputSampleRate,
+        UINT32                Flags,
+        UINT32                ProcessingStage,
+        XAUDIO2_VOICE_SENDS*  pSendList,
+        XAUDIO2_EFFECT_CHAIN* pEffectChain )
+    HRESULT CreateMasteringVoice (
+        IXAudio2MasteringVoice** ppMasteringVoice,
+        UINT32                   InputChannels,
+        UINT32                   InputSampleRate,
+        UINT32                   Flags
+        UINT32                   DeviceIndex,
+        XAUDIO2_EFFECT_CHAIN*    pEffectChain )
+    HRESULT StartEngine (   )
+    void StopEngine (   )
+    HRESULT CommitChanges ( UINT32 OperationSet )
+    void GetPerformanceData ( XAUDIO2_PERFORMANCE_DATA* pPerfData )
+    void SetDebugConfiguration ( XAUDIO2_DEBUG_CONFIGURATION* pDebugConfiguration, void* pReserved ) ;
+
+COM-INTERFACE: IXAudio2Voice f {00000000-0000-0000-0000-000000000000}
+    void GetVoiceDetails ( XAUDIO2_VOICE_DETAILS* pVoiceDetails )
+    HRESULT SetOutputVoices ( XAUDIO2_VOICE_SENDS* pSendList )
+    HRESULT SetEffectChain ( XAUDIO2_EFFECT_CHAIN* pEffectChain )
+    HRESULT EnableEffect ( UINT32 EffectIndex, UINT32 OperationSet )
+    HRESULT DisableEffect ( UINT32 EffectIndex, UINT32 OperationSet )
+    void GetEffectState ( UINT32 EffectIndex, BOOL* pEnabled )
+    HRESULT SetEffectParameters (
+        UINT32 EffectIndex,
+        void*  pParameters,
+        UINT32 ParametersByteSize,
+        UINT32 OperationSet )
+    HRESULT GetEffectParameters (
+        UINT32 EffectIndex,
+        void*  pParameters,
+        UINT32 ParametersByteSize )
+    HRESULT SetFilterParameters ( XAUDIO2_FILTER_PARAMETERS* pParameters, UINT32 OperationSet )
+    void GetFilterParameters ( XAUDIO2_FILTER_PARAMETERS* pParameters )
+    HRESULT SetOutputFilterParameters ( IXAudio2Voice*             pDestinationVoice,
+                                        XAUDIO2_FILTER_PARAMETERS* pParameters,
+                                        UINT32                     OperationSet )
+    void GetOutputFilterParameters ( IXAudio2Voice*             pDestinationVoice,
+                                     XAUDIO2_FILTER_PARAMETERS* pParameters )
+    HRESULT SetVolume ( FLOAT  Volume,
+                        UINT32 OperationSet )
+    void GetVolume ( FLOAT* pVolume )
+    HRESULT SetChannelVolumes ( UINT32 Channels,
+                                FLOAT* pVolumes,
+                                UINT32 OperationSet )
+    void GetChannelVolumes ( UINT32 Channels, FLOAT* pVolumes )
+    HRESULT SetOutputMatrix (
+        IXAudio2Voice* pDestinationVoice,
+        UINT32         SourceChannels,
+        UINT32         DestinationChannels,
+        FLOAT*         pLevelMatrix,
+        UINT32         OperationSet    )
+    void GetOutputMatrix (
+        IXAudio2Voice* pDestinationVoice,
+        UINT32         SourceChannels,
+        UINT32         DestinationChannels,
+        FLOAT*         pLevelMatrix )
+    void DestroyVoice (  ) ;
+
+COM-INTERFACE: IXAudio2SourceVoice IXAudio2Voice {00000000-0000-0000-0000-000000000000}
+    HRESULT Start ( UINT32 Flags, UINT32 OperationSet )
+    HRESULT Stop ( UINT32 Flags, UINT32 OperationSet )
+    HRESULT SubmitSourceBuffer ( XAUDIO2_BUFFER* pBuffer, XAUDIO2_BUFFER_WMA* pBufferWMA )
+    HRESULT FlushSourceBuffers ( )
+    HRESULT Discontinuity ( )
+    HRESULT ExitLoop ( UINT32 OperationSet )
+    void GetState ( XAUDIO2_VOICE_STATE* pVoiceState )
+    HRESULT SetFrequencyRatio ( FLOAT Ratio, UINT32 OperationSet )
+    void GetFrequencyRatio ( FLOAT* pRatio )
+    HRESULT SetSourceSampleRate ( UINT32 NewSourceSampleRate ) ;
+
+COM-INTERFACE: IXAudio2SubmixVoice IXAudio2Voice {00000000-0000-0000-0000-000000000000} ;
+COM-INTERFACE: IXAudio2MasteringVoice IXAudio2Voice {00000000-0000-0000-0000-000000000000} ;
+    
+COM-INTERFACE: IXAudio2EngineCallback f {00000000-0000-0000-0000-000000000000}
+    void OnProcessingPassStart (   )
+    void OnProcessingPassEnd (   )
+    void OnCriticalError ( HRESULT Error ) ;
+
+COM-INTERFACE: IXAudio2VoiceCallback f {00000000-0000-0000-0000-000000000000}
+    void OnVoiceProcessingPassStart ( UINT32 BytesRequired )
+    void OnVoiceProcessingPassEnd (   )
+    void OnStreamEnd (   )
+    void OnBufferStart ( void* pBufferContext )
+    void OnBufferEnd ( void* pBufferContext )
+    void OnLoopEnd ( void* pBufferContext )
+    void OnVoiceError ( void* pBufferContext, HRESULT Error ) ;
diff --git a/basis/windows/directx/xaudio2fx/authors.txt b/basis/windows/directx/xaudio2fx/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/xaudio2fx/summary.txt b/basis/windows/directx/xaudio2fx/summary.txt
new file mode 100644 (file)
index 0000000..92502ae
--- /dev/null
@@ -0,0 +1 @@
+Constants and types for XAudio2. Corresponds to xaudio2fx.h.
diff --git a/basis/windows/directx/xaudio2fx/tags.txt b/basis/windows/directx/xaudio2fx/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/xaudio2fx/xaudio2fx.factor b/basis/windows/directx/xaudio2fx/xaudio2fx.factor
new file mode 100644 (file)
index 0000000..9d088f3
--- /dev/null
@@ -0,0 +1,109 @@
+USING: alien.c-types classes.struct windows.types ;
+IN: windows.directx.xaudio2fx
+
+CONSTANT: XAUDIO2FX_DEBUG 1
+
+STRUCT: XAUDIO2FX_VOLUMEMETER_LEVELS
+    { pPeakLevels  float*  }
+    { pRMSLevels   float*  }
+    { ChannelCount UINT32  } ;
+
+CONSTANT: XAUDIO2FX_REVERB_MIN_FRAMERATE 20000
+CONSTANT: XAUDIO2FX_REVERB_MAX_FRAMERATE 48000
+
+STRUCT: XAUDIO2FX_REVERB_PARAMETERS
+    { WetDryMix           float  }
+    { ReflectionsDelay    UINT32 }
+    { ReverbDelay         BYTE   }
+    { RearDelay           BYTE   }
+    { PositionLeft        BYTE   }
+    { PositionRight       BYTE   }
+    { PositionMatrixLeft  BYTE   }
+    { PositionMatrixRight BYTE   }
+    { EarlyDiffusion      BYTE   }
+    { LateDiffusion       BYTE   }
+    { LowEQGain           BYTE   }
+    { LowEQCutoff         BYTE   }
+    { HighEQGain          BYTE   }
+    { HighEQCutoff        BYTE   }
+    { RoomFilterFreq      float  }
+    { RoomFilterMain      float  }
+    { RoomFilterHF        float  }
+    { ReflectionsGain     float  }
+    { ReverbGain          float  }
+    { DecayTime           float  }
+    { Density             float  }
+    { RoomSize            float  } ;
+
+CONSTANT: XAUDIO2FX_REVERB_MIN_WET_DRY_MIX            0.0
+CONSTANT: XAUDIO2FX_REVERB_MIN_REFLECTIONS_DELAY      0
+CONSTANT: XAUDIO2FX_REVERB_MIN_REVERB_DELAY           0
+CONSTANT: XAUDIO2FX_REVERB_MIN_REAR_DELAY             0
+CONSTANT: XAUDIO2FX_REVERB_MIN_POSITION               0
+CONSTANT: XAUDIO2FX_REVERB_MIN_DIFFUSION              0
+CONSTANT: XAUDIO2FX_REVERB_MIN_LOW_EQ_GAIN            0
+CONSTANT: XAUDIO2FX_REVERB_MIN_LOW_EQ_CUTOFF          0
+CONSTANT: XAUDIO2FX_REVERB_MIN_HIGH_EQ_GAIN           0
+CONSTANT: XAUDIO2FX_REVERB_MIN_HIGH_EQ_CUTOFF         0
+CONSTANT: XAUDIO2FX_REVERB_MIN_ROOM_FILTER_FREQ       20.0
+CONSTANT: XAUDIO2FX_REVERB_MIN_ROOM_FILTER_MAIN       -100.0
+CONSTANT: XAUDIO2FX_REVERB_MIN_ROOM_FILTER_HF         -100.0
+CONSTANT: XAUDIO2FX_REVERB_MIN_REFLECTIONS_GAIN       -100.0
+CONSTANT: XAUDIO2FX_REVERB_MIN_REVERB_GAIN            -100.0
+CONSTANT: XAUDIO2FX_REVERB_MIN_DECAY_TIME             0.1
+CONSTANT: XAUDIO2FX_REVERB_MIN_DENSITY                0.0
+CONSTANT: XAUDIO2FX_REVERB_MIN_ROOM_SIZE              0.0
+
+CONSTANT: XAUDIO2FX_REVERB_MAX_WET_DRY_MIX            100.0
+CONSTANT: XAUDIO2FX_REVERB_MAX_REFLECTIONS_DELAY      300
+CONSTANT: XAUDIO2FX_REVERB_MAX_REVERB_DELAY           85
+CONSTANT: XAUDIO2FX_REVERB_MAX_REAR_DELAY             5
+CONSTANT: XAUDIO2FX_REVERB_MAX_POSITION               30
+CONSTANT: XAUDIO2FX_REVERB_MAX_DIFFUSION              15
+CONSTANT: XAUDIO2FX_REVERB_MAX_LOW_EQ_GAIN            12
+CONSTANT: XAUDIO2FX_REVERB_MAX_LOW_EQ_CUTOFF          9
+CONSTANT: XAUDIO2FX_REVERB_MAX_HIGH_EQ_GAIN           8
+CONSTANT: XAUDIO2FX_REVERB_MAX_HIGH_EQ_CUTOFF         14
+CONSTANT: XAUDIO2FX_REVERB_MAX_ROOM_FILTER_FREQ       20000.0
+CONSTANT: XAUDIO2FX_REVERB_MAX_ROOM_FILTER_MAIN       0.0
+CONSTANT: XAUDIO2FX_REVERB_MAX_ROOM_FILTER_HF         0.0
+CONSTANT: XAUDIO2FX_REVERB_MAX_REFLECTIONS_GAIN       20.0
+CONSTANT: XAUDIO2FX_REVERB_MAX_REVERB_GAIN            20.0
+CONSTANT: XAUDIO2FX_REVERB_MAX_DENSITY                100.0
+CONSTANT: XAUDIO2FX_REVERB_MAX_ROOM_SIZE              100.0
+
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_WET_DRY_MIX        100.0
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_REFLECTIONS_DELAY  5
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_REVERB_DELAY       5
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_REAR_DELAY         5
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_POSITION           6
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_POSITION_MATRIX    27
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_EARLY_DIFFUSION    8
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_LATE_DIFFUSION     8
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_LOW_EQ_GAIN        8
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_LOW_EQ_CUTOFF      4
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_HIGH_EQ_GAIN       8
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_HIGH_EQ_CUTOFF     4
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_ROOM_FILTER_FREQ   5000.0
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_ROOM_FILTER_MAIN   0.0
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_ROOM_FILTER_HF     0.0
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_REFLECTIONS_GAIN   0.0
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_REVERB_GAIN        0.0
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_DECAY_TIME         1.0
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_DENSITY            100.0
+CONSTANT: XAUDIO2FX_REVERB_DEFAULT_ROOM_SIZE          100.0
+
+STRUCT: XAUDIO2FX_REVERB_I3DL2_PARAMETERS
+    { WetDryMix         float }
+    { Room              INT32 }
+    { RoomHF            INT32 }
+    { RoomRolloffFactor float }
+    { DecayTime         float }
+    { DecayHFRatio      float }
+    { Reflections       INT32 }
+    { ReflectionsDelay  float }
+    { Reverb            INT32 }
+    { ReverbDelay       float }
+    { Diffusion         float }
+    { Density           float }
+    { HFReference       float } ;
diff --git a/basis/windows/directx/xinput/authors.txt b/basis/windows/directx/xinput/authors.txt
new file mode 100644 (file)
index 0000000..6f03a12
--- /dev/null
@@ -0,0 +1 @@
+Erik Charlebois
diff --git a/basis/windows/directx/xinput/summary.txt b/basis/windows/directx/xinput/summary.txt
new file mode 100644 (file)
index 0000000..4b67f6f
--- /dev/null
@@ -0,0 +1 @@
+XInput bindings for using the Xbox 360 controller. Corresponds to XInput.h.
diff --git a/basis/windows/directx/xinput/tags.txt b/basis/windows/directx/xinput/tags.txt
new file mode 100644 (file)
index 0000000..2320bdd
--- /dev/null
@@ -0,0 +1,2 @@
+unportable
+bindings
diff --git a/basis/windows/directx/xinput/xinput.factor b/basis/windows/directx/xinput/xinput.factor
new file mode 100644 (file)
index 0000000..d51e37a
--- /dev/null
@@ -0,0 +1,123 @@
+USING: alien.syntax classes.struct windows.kernel32 windows.types ;
+IN: windows.directx.xinput
+
+LIBRARY: xinput
+
+CONSTANT: XINPUT_DEVTYPE_GAMEPAD         1
+CONSTANT: XINPUT_DEVSUBTYPE_GAMEPAD      1
+CONSTANT: XINPUT_DEVSUBTYPE_WHEEL        2
+CONSTANT: XINPUT_DEVSUBTYPE_ARCADE_STICK 3
+CONSTANT: XINPUT_DEVSUBTYPE_FLIGHT_SICK  4
+CONSTANT: XINPUT_DEVSUBTYPE_DANCE_PAD    5
+CONSTANT: XINPUT_DEVSUBTYPE_GUITAR       6
+CONSTANT: XINPUT_DEVSUBTYPE_DRUM_KIT     8
+
+CONSTANT: XINPUT_CAPS_VOICE_SUPPORTED 4
+
+CONSTANT: XINPUT_GAMEPAD_DPAD_UP        HEX: 0001
+CONSTANT: XINPUT_GAMEPAD_DPAD_DOWN      HEX: 0002
+CONSTANT: XINPUT_GAMEPAD_DPAD_LEFT      HEX: 0004
+CONSTANT: XINPUT_GAMEPAD_DPAD_RIGHT     HEX: 0008
+CONSTANT: XINPUT_GAMEPAD_START          HEX: 0010
+CONSTANT: XINPUT_GAMEPAD_BACK           HEX: 0020
+CONSTANT: XINPUT_GAMEPAD_LEFT_THUMB     HEX: 0040
+CONSTANT: XINPUT_GAMEPAD_RIGHT_THUMB    HEX: 0080
+CONSTANT: XINPUT_GAMEPAD_LEFT_SHOULDER  HEX: 0100
+CONSTANT: XINPUT_GAMEPAD_RIGHT_SHOULDER HEX: 0200
+CONSTANT: XINPUT_GAMEPAD_A              HEX: 1000
+CONSTANT: XINPUT_GAMEPAD_B              HEX: 2000
+CONSTANT: XINPUT_GAMEPAD_X              HEX: 4000
+CONSTANT: XINPUT_GAMEPAD_Y              HEX: 8000
+
+CONSTANT: XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE  7849
+CONSTANT: XINPUT_GAMEPAD_RIGHT_THUMB_DEADZONE 8689
+CONSTANT: XINPUT_GAMEPAD_TRIGGER_THRESHOLD    30
+
+CONSTANT: XINPUT_FLAG_GAMEPAD 1
+
+CONSTANT: XUSER_MAX_COUNT                 4
+
+CONSTANT: XUSER_INDEX_ANY                 HEX: 000000FF
+
+CONSTANT: VK_PAD_A                        HEX: 5800
+CONSTANT: VK_PAD_B                        HEX: 5801
+CONSTANT: VK_PAD_X                        HEX: 5802
+CONSTANT: VK_PAD_Y                        HEX: 5803
+CONSTANT: VK_PAD_RSHOULDER                HEX: 5804
+CONSTANT: VK_PAD_LSHOULDER                HEX: 5805
+CONSTANT: VK_PAD_LTRIGGER                 HEX: 5806
+CONSTANT: VK_PAD_RTRIGGER                 HEX: 5807
+
+CONSTANT: VK_PAD_DPAD_UP                  HEX: 5810
+CONSTANT: VK_PAD_DPAD_DOWN                HEX: 5811
+CONSTANT: VK_PAD_DPAD_LEFT                HEX: 5812
+CONSTANT: VK_PAD_DPAD_RIGHT               HEX: 5813
+CONSTANT: VK_PAD_START                    HEX: 5814
+CONSTANT: VK_PAD_BACK                     HEX: 5815
+CONSTANT: VK_PAD_LTHUMB_PRESS             HEX: 5816
+CONSTANT: VK_PAD_RTHUMB_PRESS             HEX: 5817
+
+CONSTANT: VK_PAD_LTHUMB_UP                HEX: 5820
+CONSTANT: VK_PAD_LTHUMB_DOWN              HEX: 5821
+CONSTANT: VK_PAD_LTHUMB_RIGHT             HEX: 5822
+CONSTANT: VK_PAD_LTHUMB_LEFT              HEX: 5823
+CONSTANT: VK_PAD_LTHUMB_UPLEFT            HEX: 5824
+CONSTANT: VK_PAD_LTHUMB_UPRIGHT           HEX: 5825
+CONSTANT: VK_PAD_LTHUMB_DOWNRIGHT         HEX: 5826
+CONSTANT: VK_PAD_LTHUMB_DOWNLEFT          HEX: 5827
+
+CONSTANT: VK_PAD_RTHUMB_UP                HEX: 5830
+CONSTANT: VK_PAD_RTHUMB_DOWN              HEX: 5831
+CONSTANT: VK_PAD_RTHUMB_RIGHT             HEX: 5832
+CONSTANT: VK_PAD_RTHUMB_LEFT              HEX: 5833
+CONSTANT: VK_PAD_RTHUMB_UPLEFT            HEX: 5834
+CONSTANT: VK_PAD_RTHUMB_UPRIGHT           HEX: 5835
+CONSTANT: VK_PAD_RTHUMB_DOWNRIGHT         HEX: 5836
+CONSTANT: VK_PAD_RTHUMB_DOWNLEFT          HEX: 5837
+
+CONSTANT: XINPUT_KEYSTROKE_KEYDOWN        HEX: 0001
+CONSTANT: XINPUT_KEYSTROKE_KEYUP          HEX: 0002
+CONSTANT: XINPUT_KEYSTROKE_REPEAT         HEX: 0004
+
+STRUCT: XINPUT_GAMEPAD
+    { wButtons WORD }
+    { bLeftTrigger BYTE }
+    { bRightTrigger BYTE }
+    { sThumbLX SHORT }
+    { sThumbLY SHORT }
+    { sThumbRX SHORT }
+    { sThumbRY SHORT } ;
+TYPEDEF: XINPUT_GAMEPAD* PXINPUT_GAMEPAD
+
+STRUCT: XINPUT_VIBRATION
+    { wLeftMotorSpeed WORD }
+    { wRightMotorSpeed WORD } ;
+TYPEDEF: XINPUT_VIBRATION* PXINPUT_VIBRATION
+
+STRUCT: XINPUT_CAPABILITIES
+    { Type BYTE }
+    { SubType BYTE }
+    { Flags WORD }
+    { Gamepad XINPUT_GAMEPAD }
+    { Vibration XINPUT_VIBRATION } ;
+TYPEDEF: XINPUT_CAPABILITIES* PXINPUT_CAPABILITIES
+
+STRUCT: XINPUT_KEYSTROKE
+    { VirtualKey WORD }
+    { Unicode WCHAR }
+    { Flags WORD }
+    { UserIndex BYTE }
+    { HidCode BYTE } ;
+TYPEDEF: XINPUT_KEYSTROKE* PXINPUT_KEYSTROKE
+
+STRUCT: XINPUT_STATE
+    { dwPacketNumber DWORD }
+    { Gamepad XINPUT_GAMEPAD } ;
+TYPEDEF: XINPUT_STATE* PXINPUT_STATE
+
+FUNCTION: DWORD XInputGetCapabilities ( DWORD dwUserIndex, DWORD dwFlags, XINPUT_CAPABILITIES* pCapabilities ) ;
+FUNCTION: DWORD XInputGetKeystroke ( DWORD dwUserIndex, DWORD dwReserved, PXINPUT_KEYSTROKE pKeystroke ) ;
+FUNCTION: DWORD XInputGetState ( DWORD dwUserIndex, XINPUT_STATE* pState ) ;
+FUNCTION: DWORD XInputSetState ( DWORD dwUserIndex, XINPUT_VIBRATION* pVibration ) ;
+FUNCTION: DWORD XInputGetDSoundAudioDeviceGuids ( DWORD dwUserIndex, GUID* pDSoundRenderGuid, GUID* pDSoundCaptureGuid ) ;
+FUNCTION: void XInputEnable ( BOOL enable ) ;
index 10e6cd43c5217193f1e3c3187895fb21f2c0a3cb..40b0979d491a225eb19219ef8da6a8d98429de22 100644 (file)
@@ -1024,3 +1024,63 @@ CONSTANT: SC_RESTORE      HEX: f120
 CONSTANT: SC_TASKLIST     HEX: f130
 CONSTANT: SC_SCREENSAVE   HEX: f140
 CONSTANT: SC_HOTKEY       HEX: f150
+
+CONSTANT: APPCOMMAND_BROWSER_BACKWARD       1
+CONSTANT: APPCOMMAND_BROWSER_FORWARD        2
+CONSTANT: APPCOMMAND_BROWSER_REFRESH        3
+CONSTANT: APPCOMMAND_BROWSER_STOP           4
+CONSTANT: APPCOMMAND_BROWSER_SEARCH         5
+CONSTANT: APPCOMMAND_BROWSER_FAVORITES      6
+CONSTANT: APPCOMMAND_BROWSER_HOME           7
+CONSTANT: APPCOMMAND_VOLUME_MUTE            8
+CONSTANT: APPCOMMAND_VOLUME_DOWN            9
+CONSTANT: APPCOMMAND_VOLUME_UP              10
+CONSTANT: APPCOMMAND_MEDIA_NEXTTRACK        11
+CONSTANT: APPCOMMAND_MEDIA_PREVIOUSTRACK    12
+CONSTANT: APPCOMMAND_MEDIA_STOP             13
+CONSTANT: APPCOMMAND_MEDIA_PLAY_PAUSE       14
+CONSTANT: APPCOMMAND_LAUNCH_MAIL            15
+CONSTANT: APPCOMMAND_LAUNCH_MEDIA_SELECT    16
+CONSTANT: APPCOMMAND_LAUNCH_APP1            17
+CONSTANT: APPCOMMAND_LAUNCH_APP2            18
+CONSTANT: APPCOMMAND_BASS_DOWN              19
+CONSTANT: APPCOMMAND_BASS_BOOST             20
+CONSTANT: APPCOMMAND_BASS_UP                21
+CONSTANT: APPCOMMAND_TREBLE_DOWN            22
+CONSTANT: APPCOMMAND_TREBLE_UP              23
+CONSTANT: APPCOMMAND_MICROPHONE_VOLUME_MUTE 24
+CONSTANT: APPCOMMAND_MICROPHONE_VOLUME_DOWN 25
+CONSTANT: APPCOMMAND_MICROPHONE_VOLUME_UP   26
+CONSTANT: APPCOMMAND_HELP                   27
+CONSTANT: APPCOMMAND_FIND                   28
+CONSTANT: APPCOMMAND_NEW                    29
+CONSTANT: APPCOMMAND_OPEN                   30
+CONSTANT: APPCOMMAND_CLOSE                  31
+CONSTANT: APPCOMMAND_SAVE                   32
+CONSTANT: APPCOMMAND_PRINT                  33
+CONSTANT: APPCOMMAND_UNDO                   34
+CONSTANT: APPCOMMAND_REDO                   35
+CONSTANT: APPCOMMAND_COPY                   36
+CONSTANT: APPCOMMAND_CUT                    37
+CONSTANT: APPCOMMAND_PASTE                  38
+CONSTANT: APPCOMMAND_REPLY_TO_MAIL          39
+CONSTANT: APPCOMMAND_FORWARD_MAIL           40
+CONSTANT: APPCOMMAND_SEND_MAIL              41
+CONSTANT: APPCOMMAND_SPELL_CHECK            42
+CONSTANT: APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE    43
+CONSTANT: APPCOMMAND_MIC_ON_OFF_TOGGLE      44
+CONSTANT: APPCOMMAND_CORRECTION_LIST        45
+CONSTANT: APPCOMMAND_MEDIA_PLAY             46
+CONSTANT: APPCOMMAND_MEDIA_PAUSE            47
+CONSTANT: APPCOMMAND_MEDIA_RECORD           48
+CONSTANT: APPCOMMAND_MEDIA_FAST_FORWARD     49
+CONSTANT: APPCOMMAND_MEDIA_REWIND           50
+CONSTANT: APPCOMMAND_MEDIA_CHANNEL_UP       51
+CONSTANT: APPCOMMAND_MEDIA_CHANNEL_DOWN     52
+CONSTANT: APPCOMMAND_DELETE                 53
+CONSTANT: APPCOMMAND_DWM_FLIP3D             54
+
+CONSTANT: FAPPCOMMAND_MOUSE HEX: 8000
+CONSTANT: FAPPCOMMAND_KEY   HEX: 0000
+CONSTANT: FAPPCOMMAND_OEM   HEX: 1000
+CONSTANT: FAPPCOMMAND_MASK  HEX: F000
index abc728ed19cfe456aea82652b042bd887afe88ea..8e831e153e0cf7f9399fb829efc4081e0f2cda39 100644 (file)
@@ -1,18 +1,35 @@
 USING: alien sequences alien.libraries ;
 {
-    { "advapi32" "advapi32.dll" "stdcall" }
-    { "dinput"   "dinput8.dll"  "stdcall" }
-    { "gdi32"    "gdi32.dll"    "stdcall" }
-    { "user32"   "user32.dll"   "stdcall" }
-    { "kernel32" "kernel32.dll" "stdcall" }
-    { "winsock"  "ws2_32.dll"   "stdcall" }
-    { "mswsock"  "mswsock.dll"  "stdcall" }
-    { "shell32"  "shell32.dll"  "stdcall" }
-    { "libc"     "msvcrt.dll"   "cdecl"   }
-    { "libm"     "msvcrt.dll"   "cdecl"   }
-    { "gl"       "opengl32.dll" "stdcall" }
-    { "glu"      "glu32.dll"    "stdcall" }
-    { "ole32"    "ole32.dll"    "stdcall" }
-    { "usp10"    "usp10.dll"    "stdcall" }
-    { "psapi"    "psapi.dll"    "stdcall" }
+    { "advapi32"    "advapi32.dll"       "stdcall" }
+    { "dinput"      "dinput8.dll"        "stdcall" }
+    { "gdi32"       "gdi32.dll"          "stdcall" }
+    { "user32"      "user32.dll"         "stdcall" }
+    { "kernel32"    "kernel32.dll"       "stdcall" }
+    { "winsock"     "ws2_32.dll"         "stdcall" }
+    { "mswsock"     "mswsock.dll"        "stdcall" }
+    { "shell32"     "shell32.dll"        "stdcall" }
+    { "libc"        "msvcrt.dll"         "cdecl"   }
+    { "libm"        "msvcrt.dll"         "cdecl"   }
+    { "gl"          "opengl32.dll"       "stdcall" }
+    { "glu"         "glu32.dll"          "stdcall" }
+    { "ole32"       "ole32.dll"          "stdcall" }
+    { "usp10"       "usp10.dll"          "stdcall" }
+    { "psapi"       "psapi.dll"          "stdcall" }
+    { "xinput"      "xinput1_3.dll"      "stdcall" }
+    { "dxgi"        "dxgi.dll"           "stdcall" }
+    { "d2d1"        "d2d1.dll"           "stdcall" }
+    { "d3d9"        "d3d9.dll"           "stdcall" }
+    { "d3d10"       "d3d10.dll"          "stdcall" }
+    { "d3d10_1"     "d3d10_1.dll"        "stdcall" }
+    { "d3d11"       "d3d11.dll"          "stdcall" }
+    { "d3dcompiler" "d3dcompiler_42.dll" "stdcall" } 
+    { "d3dcsx"      "d3dcsx_42.dll"      "stdcall" }
+    { "d3dx9"       "d3dx9_42.dll"       "stdcall" }
+    { "d3dx10"      "d3dx10_42.dll"      "stdcall" }
+    { "d3dx11"      "d3dx11_42.dll"      "stdcall" }
+    { "dwrite"      "dwrite.dll"         "stdcall" }
+    { "x3daudio"    "x3daudio1_6.dll"    "stdcall" }
+    { "xactengine"  "xactengine3_5.dll"  "stdcall" }
+    { "xapofx"      "xapofx1_3.dll"      "stdcall" }
+    { "xaudio2"     "xaudio2_5.dll"      "stdcall" }
 } [ first3 add-library ] each