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);