1 module directx.d3d10misc;
2 //////////////////////////////////////////////////////////////////////////////
3 //
4 //  Copyright (c) Microsoft Corporation.  All rights reserved.
5 //
6 //  File:       D3D10Misc.h
7 //  Content:    D3D10 Device Creation APIs
8 //
9 //////////////////////////////////////////////////////////////////////////////
10 
11 version(Windows):
12 
13 public import directx.d3d10;
14 
15 alias DWORD D3D10_DRIVER_TYPE;
16 enum : D3D10_DRIVER_TYPE {
17     D3D10_DRIVER_TYPE_HARDWARE   = 0,
18     D3D10_DRIVER_TYPE_REFERENCE  = 1,
19     D3D10_DRIVER_TYPE_NULL       = 2,
20     D3D10_DRIVER_TYPE_SOFTWARE   = 3,
21     D3D10_DRIVER_TYPE_WARP       = 5
22 }
23 
24 ///////////////////////////////////////////////////////////////////////////
25 // D3D10CreateDevice
26 // ------------------
27 //
28 // pAdapter
29 //      If NULL, D3D10CreateDevice will choose the primary adapter and
30 //      create a new instance from a temporarily created IDXGIFactory.
31 //      If non-NULL, D3D10CreateDevice will register the appropriate
32 //      device, if necessary (via IDXGIAdapter::RegisterDrver), before
33 //      creating the device.
34 // DriverType
35 //      Specifies the driver type to be created: hardware, reference or
36 //      null.
37 // Software
38 //      HMODULE of a DLL implementing a software rasterizer. Must be NULL for
39 //      non-Software driver types.
40 // Flags
41 //      Any of those documented for D3D10CreateDevice.
42 // SDKVersion
43 //      SDK version. Use the D3D10_SDK_VERSION macro.
44 // ppDevice
45 //      Pointer to returned interface.
46 //
47 // Return Values
48 //  Any of those documented for
49 //          CreateDXGIFactory
50 //          IDXGIFactory::EnumAdapters
51 //          IDXGIAdapter::RegisterDriver
52 //          D3D10CreateDevice
53 //
54 ///////////////////////////////////////////////////////////////////////////
55 
56 __gshared _D3D10CreateDevice D3D10CreateDevice;
57 
58 extern (Windows) {
59     alias _D3D10CreateDevice = HRESULT function(IDXGIAdapter      pAdapter,
60                                                 D3D10_DRIVER_TYPE DriverType,
61                                                 HMODULE           Software,
62                                                 UINT              Flags,
63                                                 UINT              SDKVersion,
64                                                 ID3D10Device      *ppDevice);
65 }
66 
67 ///////////////////////////////////////////////////////////////////////////
68 // D3D10CreateDeviceAndSwapChain
69 // ------------------------------
70 //
71 // ppAdapter
72 //      If NULL, D3D10CreateDevice will choose the primary adapter and
73 //      create a new instance from a temporarily created IDXGIFactory.
74 //      If non-NULL, D3D10CreateDevice will register the appropriate
75 //      device, if necessary (via IDXGIAdapter::RegisterDrver), before
76 //      creating the device.
77 // DriverType
78 //      Specifies the driver type to be created: hardware, reference or
79 //      null.
80 // Software
81 //      HMODULE of a DLL implementing a software rasterizer. Must be NULL for
82 //      non-Software driver types.
83 // Flags
84 //      Any of those documented for D3D10CreateDevice.
85 // SDKVersion
86 //      SDK version. Use the D3D10_SDK_VERSION macro.
87 // pSwapChainDesc
88 //      Swap chain description, may be NULL.
89 // ppSwapChain
90 //      Pointer to returned interface. May be NULL.
91 // ppDevice
92 //      Pointer to returned interface.
93 //
94 // Return Values
95 //  Any of those documented for
96 //          CreateDXGIFactory
97 //          IDXGIFactory::EnumAdapters
98 //          IDXGIAdapter::RegisterDriver
99 //          D3D10CreateDevice
100 //          IDXGIFactory::CreateSwapChain
101 //
102 ///////////////////////////////////////////////////////////////////////////
103 
104 __gshared _D3D10CreateDeviceAndSwapChain D3D10CreateDeviceAndSwapChain;
105 
106 extern (Windows) {
107     alias _D3D10CreateDeviceAndSwapChain = HRESULT function(
108         IDXGIAdapter pAdapter,
109         D3D10_DRIVER_TYPE DriverType,
110         HMODULE Software,
111         UINT Flags,
112         UINT SDKVersion,
113         DXGI_SWAP_CHAIN_DESC* pSwapChainDesc,
114         IDXGISwapChain* ppSwapChain,
115         ID3D10Device* ppDevice);
116 }
117 
118 ///////////////////////////////////////////////////////////////////////////
119 // D3D10CreateBlob:
120 // -----------------
121 // Creates a Buffer of n Bytes
122 //////////////////////////////////////////////////////////////////////////
123 
124 __gshared _D3D10CreateBlob D3D10CreateBlob;
125 
126 alias _D3D10CreateBlob = HRESULT function(SIZE_T NumBytes, LPD3D10BLOB ppBuffer);