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 ..}..