Artifact 371321ee8dae06506dcc99d9af09b6f6a7fc2fe2:
- File
src/win32/directx/d3d10misc.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /*************** 0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20 ********\..* 0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0060: 20 20 20 20 20 20 20 20 20 20 20 64 33 64 31 30 d3d10 0070: 6d 69 73 63 2e 64 20 20 20 20 20 20 20 20 20 20 misc.d 0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20 *..* 00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d *. 00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .* 00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows 0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu 0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le 0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20 *..* 0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..* 0180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 P 0190: 6c 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c 69 laced into publi 01a0: 63 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 20 c domain 01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a * 01c0: 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ..\************* 01d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 01e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 01f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0200: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 6d 6f 64 **********/..mod 0210: 75 6c 65 20 77 69 6e 33 32 2e 64 69 72 65 63 74 ule win32.direct 0220: 78 2e 64 33 64 31 30 6d 69 73 63 3b 0d 0a 0d 0a x.d3d10misc;.... 0230: 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74 20 77 private import w 0240: 69 6e 33 32 2e 77 69 6e 64 6f 77 73 3b 0d 0a 0d in32.windows;... 0250: 0a 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74 20 .private import 0260: 77 69 6e 33 32 2e 64 69 72 65 63 74 78 2e 64 78 win32.directx.dx 0270: 67 69 3b 0d 0a 70 72 69 76 61 74 65 20 69 6d 70 gi;..private imp 0280: 6f 72 74 20 77 69 6e 33 32 2e 64 69 72 65 63 74 ort win32.direct 0290: 78 2e 64 33 64 31 30 3b 0d 0a 0d 0a 65 78 74 65 x.d3d10;....exte 02a0: 72 6e 20 28 43 29 20 63 6f 6e 73 74 20 47 55 49 rn (C) const GUI 02b0: 44 20 49 49 44 5f 49 44 33 44 31 30 42 6c 6f 62 D IID_ID3D10Blob 02c0: 20 3d 20 7b 0d 0a 09 30 78 38 42 41 35 46 42 30 = {...0x8BA5FB0 02d0: 38 2c 20 30 78 35 31 39 35 2c 20 30 78 34 30 45 8, 0x5195, 0x40E 02e0: 32 2c 20 5b 30 78 41 43 2c 20 30 78 35 38 2c 20 2, [0xAC, 0x58, 02f0: 30 78 30 44 2c 20 30 78 39 38 2c 20 30 78 39 43 0x0D, 0x98, 0x9C 0300: 2c 20 30 78 33 41 2c 20 30 78 30 31 2c 20 30 78 , 0x3A, 0x01, 0x 0310: 30 32 5d 0d 0a 7d 3b 0d 0a 0d 0a 69 6e 74 65 72 02]..};....inter 0320: 66 61 63 65 20 49 44 33 44 31 30 42 6c 6f 62 20 face ID3D10Blob 0330: 3a 20 49 55 6e 6b 6e 6f 77 6e 20 7b 0d 0a 09 65 : IUnknown {...e 0340: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 3a xtern(Windows) : 0350: 0d 0a 09 4c 50 56 4f 49 44 20 47 65 74 42 75 66 ...LPVOID GetBuf 0360: 66 65 72 50 6f 69 6e 74 65 72 28 29 3b 0d 0a 09 ferPointer();... 0370: 53 49 5a 45 5f 54 20 47 65 74 42 75 66 66 65 72 SIZE_T GetBuffer 0380: 53 69 7a 65 28 29 3b 0d 0a 7d 0d 0a 0d 0a 65 6e Size();..}....en 0390: 75 6d 20 44 33 44 31 30 5f 44 52 49 56 45 52 5f um D3D10_DRIVER_ 03a0: 54 59 50 45 20 7b 0d 0a 09 44 33 44 31 30 5f 44 TYPE {...D3D10_D 03b0: 52 49 56 45 52 5f 54 59 50 45 5f 48 41 52 44 57 RIVER_TYPE_HARDW 03c0: 41 52 45 20 20 3d 20 30 2c 0d 0a 09 44 33 44 31 ARE = 0,...D3D1 03d0: 30 5f 44 52 49 56 45 52 5f 54 59 50 45 5f 52 45 0_DRIVER_TYPE_RE 03e0: 46 45 52 45 4e 43 45 20 3d 20 31 2c 0d 0a 09 44 FERENCE = 1,...D 03f0: 33 44 31 30 5f 44 52 49 56 45 52 5f 54 59 50 45 3D10_DRIVER_TYPE 0400: 5f 4e 55 4c 4c 20 20 20 20 20 20 3d 20 32 2c 0d _NULL = 2,. 0410: 0a 09 44 33 44 31 30 5f 44 52 49 56 45 52 5f 54 ..D3D10_DRIVER_T 0420: 59 50 45 5f 53 4f 46 54 57 41 52 45 20 20 3d 20 YPE_SOFTWARE = 0430: 33 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 3..}....extern ( 0440: 43 29 20 63 6f 6e 73 74 20 47 55 49 44 20 47 55 C) const GUID GU 0450: 49 44 5f 44 65 76 69 63 65 54 79 70 65 20 3d 20 ID_DeviceType = 0460: 7b 0d 0a 09 30 78 44 37 32 32 46 42 34 44 2c 20 {...0xD722FB4D, 0470: 30 78 37 41 36 38 2c 20 30 78 34 33 37 41 2c 20 0x7A68, 0x437A, 0480: 5b 30 78 42 32 2c 20 30 78 30 43 2c 20 30 78 35 [0xB2, 0x0C, 0x5 0490: 38 2c 20 30 78 30 34 2c 20 30 78 45 45 2c 20 30 8, 0x04, 0xEE, 0 04a0: 78 32 34 2c 20 30 78 39 34 2c 20 30 78 41 36 5d x24, 0x94, 0xA6] 04b0: 0d 0a 7d 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 ..};....extern(W 04c0: 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 48 52 45 53 indows) {...HRES 04d0: 55 4c 54 20 44 33 44 31 30 43 72 65 61 74 65 44 ULT D3D10CreateD 04e0: 65 76 69 63 65 28 49 44 58 47 49 41 64 61 70 74 evice(IDXGIAdapt 04f0: 65 72 20 70 41 64 61 70 74 65 72 2c 0d 0a 09 20 er pAdapter,... 0500: 20 44 33 44 31 30 5f 44 52 49 56 45 52 5f 54 59 D3D10_DRIVER_TY 0510: 50 45 20 44 72 69 76 65 72 54 79 70 65 2c 20 48 PE DriverType, H 0520: 4d 4f 44 55 4c 45 20 53 6f 66 74 77 61 72 65 2c MODULE Software, 0530: 20 55 49 4e 54 20 46 6c 61 67 73 2c 0d 0a 09 20 UINT Flags,... 0540: 20 55 49 4e 54 20 53 44 4b 56 65 72 73 69 6f 6e UINT SDKVersion 0550: 2c 20 49 44 33 44 31 30 44 65 76 69 63 65 2a 20 , ID3D10Device* 0560: 70 70 44 65 76 69 63 65 29 3b 0d 0a 09 48 52 45 ppDevice);...HRE 0570: 53 55 4c 54 20 44 33 44 31 30 43 72 65 61 74 65 SULT D3D10Create 0580: 44 65 76 69 63 65 41 6e 64 53 77 61 70 43 68 61 DeviceAndSwapCha 0590: 69 6e 28 49 44 58 47 49 41 64 61 70 74 65 72 20 in(IDXGIAdapter 05a0: 70 41 64 61 70 74 65 72 2c 0d 0a 09 20 20 44 33 pAdapter,... D3 05b0: 44 31 30 5f 44 52 49 56 45 52 5f 54 59 50 45 20 D10_DRIVER_TYPE 05c0: 44 72 69 76 65 72 54 79 70 65 2c 20 48 4d 4f 44 DriverType, HMOD 05d0: 55 4c 45 20 53 6f 66 74 77 61 72 65 2c 20 55 49 ULE Software, UI 05e0: 4e 54 20 46 6c 61 67 73 2c 0d 0a 09 20 20 55 49 NT Flags,... UI 05f0: 4e 54 20 53 44 4b 56 65 72 73 69 6f 6e 2c 20 44 NT SDKVersion, D 0600: 58 47 49 5f 53 57 41 50 5f 43 48 41 49 4e 5f 44 XGI_SWAP_CHAIN_D 0610: 45 53 43 2a 20 70 53 77 61 70 43 68 61 69 6e 44 ESC* pSwapChainD 0620: 65 73 63 2c 0d 0a 09 20 20 49 44 58 47 49 53 77 esc,... IDXGISw 0630: 61 70 43 68 61 69 6e 2a 20 70 70 53 77 61 70 43 apChain* ppSwapC 0640: 68 61 69 6e 2c 20 49 44 33 44 31 30 44 65 76 69 hain, ID3D10Devi 0650: 63 65 2a 20 70 70 44 65 76 69 63 65 29 3b 0d 0a ce* ppDevice);.. 0660: 09 48 52 45 53 55 4c 54 20 44 33 44 31 30 43 72 .HRESULT D3D10Cr 0670: 65 61 74 65 42 6c 6f 62 28 53 49 5a 45 5f 54 20 eateBlob(SIZE_T 0680: 4e 75 6d 42 79 74 65 73 2c 20 49 44 33 44 31 30 NumBytes, ID3D10 0690: 42 6c 6f 62 2a 20 70 70 42 75 66 66 65 72 29 3b Blob* ppBuffer); 06a0: 0d 0a 7d 0d 0a ..}..