34#define D3DERR_INVALIDCALL 0x8876086c
36#define MAKE_TAG(ch0, ch1, ch2, ch3) \
37 ((DWORD)(ch0) | ((DWORD)(ch1) << 8) | \
38 ((DWORD)(ch2) << 16) | ((DWORD)(ch3) << 24 ))
39#define TAG_Aon9 MAKE_TAG('A', 'o', 'n', '9')
40#define TAG_DXBC MAKE_TAG('D', 'X', 'B', 'C')
41#define TAG_ISGN MAKE_TAG('I', 'S', 'G', 'N')
42#define TAG_OSGN MAKE_TAG('O', 'S', 'G', 'N')
43#define TAG_PCSG MAKE_TAG('P', 'C', 'S', 'G')
44#define TAG_RDEF MAKE_TAG('R', 'D', 'E', 'F')
45#define TAG_SDBG MAKE_TAG('S', 'D', 'B', 'G')
46#define TAG_SHDR MAKE_TAG('S', 'H', 'D', 'R')
47#define TAG_SHEX MAKE_TAG('S', 'H', 'E', 'X')
48#define TAG_STAT MAKE_TAG('S', 'T', 'A', 'T')
49#define TAG_XNAP MAKE_TAG('X', 'N', 'A', 'P')
50#define TAG_XNAS MAKE_TAG('X', 'N', 'A', 'S')
52#if D3D_COMPILER_VERSION >= 43
53static void test_create_blob(
void)
66 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
68 refcount = ID3D10Blob_Release(
blob);
69 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
84float4 VS(float4 position :
POSITION, float4
pos : SV_POSITION) : SV_POSITION
89static DWORD test_blob_part[] = {
900x43425844, 0x0ef2a70f, 0x6a548011, 0x91ff9409, 0x9973a43d, 0x00000001, 0x000002e0, 0x00000008,
910x00000040, 0x0000008c, 0x000000d8, 0x0000013c, 0x00000180, 0x000001fc, 0x00000254, 0x000002ac,
920x53414e58, 0x00000044, 0x00000044, 0xfffe0200, 0x00000020, 0x00000024, 0x00240000, 0x00240000,
930x00240000, 0x00240000, 0x00240000, 0xfffe0200, 0x0200001f, 0x80000005, 0x900f0000, 0x02000001,
940xc00f0000, 0x80e40000, 0x0000ffff, 0x50414e58, 0x00000044, 0x00000044, 0xfffe0200, 0x00000020,
950x00000024, 0x00240000, 0x00240000, 0x00240000, 0x00240000, 0x00240000, 0xfffe0200, 0x0200001f,
960x80000005, 0x900f0000, 0x02000001, 0xc00f0000, 0x80e40000, 0x0000ffff, 0x396e6f41, 0x0000005c,
970x0000005c, 0xfffe0200, 0x00000034, 0x00000028, 0x00240000, 0x00240000, 0x00240000, 0x00240000,
980x00240001, 0x00000000, 0xfffe0200, 0x0200001f, 0x80000005, 0x900f0000, 0x04000004, 0xc0030000,
990x90ff0000, 0xa0e40000, 0x90e40000, 0x02000001, 0xc00c0000, 0x90e40000, 0x0000ffff, 0x52444853,
1000x0000003c, 0x00010040, 0x0000000f, 0x0300005f, 0x001010f2, 0x00000000, 0x04000067, 0x001020f2,
1010x00000000, 0x00000001, 0x05000036, 0x001020f2, 0x00000000, 0x00101e46, 0x00000000, 0x0100003e,
1020x54415453, 0x00000074, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000000,
1030x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1040x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000,
1050x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x46454452,
1060x00000050, 0x00000000, 0x00000000, 0x00000000, 0x0000001c, 0xfffe0400, 0x00000100, 0x0000001c,
1070x7263694d, 0x666f736f, 0x52282074, 0x4c482029, 0x53204c53, 0x65646168, 0x6f432072, 0x6c69706d,
1080x39207265, 0x2e39322e, 0x2e323539, 0x31313133, 0xababab00, 0x4e475349, 0x00000050, 0x00000002,
1090x00000008, 0x00000038, 0x00000000, 0x00000000, 0x00000003, 0x00000000, 0x00000f0f, 0x00000041,
1100x00000000, 0x00000000, 0x00000003, 0x00000001, 0x0000000f, 0x49534f50, 0x4e4f4954, 0x5f565300,
1110x49534f50, 0x4e4f4954, 0xababab00, 0x4e47534f, 0x0000002c, 0x00000001, 0x00000008, 0x00000020,
1120x00000000, 0x00000001, 0x00000003, 0x00000000, 0x0000000f, 0x505f5653, 0x5449534f, 0x004e4f49,
115static void test_get_blob_part(
void)
124#if D3D_COMPILER_VERSION >= 46
131 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
137 ok(blob2 ==
blob,
"D3DGetBlobPart failed got %p, expected %p\n",
blob, blob2);
141 ok(blob2 ==
blob,
"D3DGetBlobPart failed got %p, expected %p\n",
blob, blob2);
151 ok(blob2 ==
blob,
"D3DGetBlobPart failed got %p, expected %p\n",
blob, blob2);
155 ok(blob2 ==
blob,
"D3DGetBlobPart failed got %p, expected %p\n",
blob, blob2);
158#if D3D_COMPILER_VERSION >= 46
162 ok(blob2 ==
blob,
"D3DGetBlobPart failed got %p, expected %p\n",
blob, blob2);
172 ok(blob2 ==
blob,
"D3DGetBlobPart failed got %p, expected %p\n",
blob, blob2);
176 ok(blob2 ==
blob,
"D3DGetBlobPart failed got %p, expected %p\n",
blob, blob2);
178 refcount = ID3D10Blob_Release(blob2);
179 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
183 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
185 size = ID3D10Blob_GetBufferSize(
blob);
186 ok(
size == 124,
"Got unexpected size %Iu.\n",
size);
188 dword = ((
DWORD*)ID3D10Blob_GetBufferPointer(
blob));
190 ok(
TAG_ISGN == *(dword + 9),
"ISGN got %#lx, expected %#lx.\n", *(dword + 9),
TAG_ISGN);
198 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
200 refcount = ID3D10Blob_Release(blob2);
201 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
209 refcount = ID3D10Blob_Release(
blob);
210 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
214 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
216 size = ID3D10Blob_GetBufferSize(
blob);
217 ok(
size == 88,
"Got unexpected size %Iu.\n",
size);
219 dword = ((
DWORD*)ID3D10Blob_GetBufferPointer(
blob));
221 ok(
TAG_OSGN == *(dword + 9),
"OSGN got %#lx, expected %#lx.\n", *(dword + 9),
TAG_OSGN);
229 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
231 refcount = ID3D10Blob_Release(blob2);
232 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
240 refcount = ID3D10Blob_Release(
blob);
241 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
245 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
247 size = ID3D10Blob_GetBufferSize(
blob);
248 ok(
size == 180,
"Got unexpected size %Iu.\n",
size);
250 dword = ((
DWORD*)ID3D10Blob_GetBufferPointer(
blob));
252 ok(
TAG_ISGN == *(dword + 10),
"ISGN got %#lx, expected %#lx.\n", *(dword + 10),
TAG_ISGN);
253 ok(
TAG_OSGN == *(dword + 32),
"OSGN got %#lx, expected %#lx.\n", *(dword + 32),
TAG_OSGN);
263 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
265 refcount = ID3D10Blob_Release(blob2);
266 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
274 refcount = ID3D10Blob_Release(
blob);
275 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
291 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
293 size = ID3D10Blob_GetBufferSize(
blob);
294 ok(
size == 92,
"Got unexpected size %Iu.\n",
size);
296 dword = ((
DWORD*)ID3D10Blob_GetBufferPointer(
blob));
297 ok(test_blob_part[0] != *dword,
"DXBC failed got %#lx.\n", *dword);
303#if D3D_COMPILER_VERSION >= 46
309 refcount = ID3D10Blob_Release(
blob);
310 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
314 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
316 size = ID3D10Blob_GetBufferSize(
blob);
317 ok(
size == 68,
"Got unexpected size %Iu.\n",
size);
319 dword = ((
DWORD*)ID3D10Blob_GetBufferPointer(
blob));
320 ok(test_blob_part[0] != *dword,
"DXBC failed got %#lx.\n", *dword);
326#if D3D_COMPILER_VERSION >= 46
332 refcount = ID3D10Blob_Release(
blob);
333 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
337 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
339 size = ID3D10Blob_GetBufferSize(
blob);
340 ok(
size == 68,
"Got unexpected size %Iu.\n",
size);
342 dword = ((
DWORD*)ID3D10Blob_GetBufferPointer(
blob));
343 ok(test_blob_part[0] != *dword,
"DXBC failed got %#lx.\n", *dword);
349#if D3D_COMPILER_VERSION >= 46
355 refcount = ID3D10Blob_Release(
blob);
356 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
360 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
362 refcount = ID3D10Blob_Release(
blob);
363 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
366 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
368 refcount = ID3D10Blob_Release(
blob);
369 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
378#if D3D_COMPILER_VERSION >= 46
394 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
396 size = ID3D10Blob_GetBufferSize(
blob);
397 ok(
size == 736,
"Got unexpected size %Iu.\n",
size);
399 dword = ((
DWORD*)ID3D10Blob_GetBufferPointer(
blob));
401 ok(
TAG_XNAS == *(dword + 16),
"XNAS got %#lx, expected %#lx.\n", *(dword + 16),
TAG_XNAS);
402 ok(
TAG_XNAP == *(dword + 35),
"XNAP got %#lx, expected %#lx.\n", *(dword + 35),
TAG_XNAP);
403 ok(
TAG_Aon9 == *(dword + 54),
"Aon9 got %#lx, expected %#lx.\n", *(dword + 54),
TAG_Aon9);
404 ok(
TAG_SHDR == *(dword + 79),
"SHDR got %#lx, expected %#lx.\n", *(dword + 79),
TAG_SHDR);
405 ok(
TAG_STAT == *(dword + 96),
"STAT got %#lx, expected %#lx.\n", *(dword + 96),
TAG_STAT);
406 ok(
TAG_RDEF == *(dword + 127),
"RDEF got %#lx, expected %#lx.\n", *(dword + 127),
TAG_RDEF);
407 ok(
TAG_ISGN == *(dword + 149),
"ISGN got %#lx, expected %#lx.\n", *(dword + 149),
TAG_ISGN);
408 ok(
TAG_OSGN == *(dword + 171),
"OSGN got %#lx, expected %#lx.\n", *(dword + 171),
TAG_OSGN);
413 refcount = ID3D10Blob_Release(
blob);
414 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
418 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
420 size = ID3D10Blob_GetBufferSize(
blob);
421 ok(
size == 516,
"Got unexpected size %Iu.\n",
size);
423 dword = ((
DWORD*)ID3D10Blob_GetBufferPointer(
blob));
425 ok(
TAG_XNAS == *(dword + 14),
"XNAS got %#lx, expected %#lx.\n", *(dword + 14),
TAG_XNAS);
426 ok(
TAG_XNAP == *(dword + 33),
"XNAP got %#lx, expected %#lx.\n", *(dword + 33),
TAG_XNAP);
427 ok(
TAG_Aon9 == *(dword + 52),
"Aon9 got %#lx, expected %#lx.\n", *(dword + 52),
TAG_Aon9);
428 ok(
TAG_SHDR == *(dword + 77),
"SHDR got %#lx, expected %#lx.\n", *(dword + 77),
TAG_SHDR);
429 ok(
TAG_ISGN == *(dword + 94),
"ISGN got %#lx, expected %#lx.\n", *(dword + 94),
TAG_ISGN);
430 ok(
TAG_OSGN == *(dword + 116),
"OSGN got %#lx, expected %#lx.\n", *(dword + 116),
TAG_OSGN);
432 refcount = ID3D10Blob_Release(
blob);
433 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
441struct HSDO {
float e[4] : SV_TessFactor;
float i[2] : SV_InsideTessFactor; };
442struct HSO { float3
p : BEZIERPOS; };
443HSDO BCHS( InputPatch<VSO, 8>
ip,
uint PatchID : SV_PrimitiveID )
447 res.i[0] =
res.i[1] = 1.0f;
451[partitioning(
"integer")]
452[outputtopology(
"triangle_cw")]
453[outputcontrolpoints(8)]
454[patchconstantfunc(
"BCHS")]
455HSO BHS( InputPatch<VSO, 8>
p,
uint i : SV_OutputControlPointID,
uint PatchID : SV_PrimitiveID )
462static DWORD test_blob_part2[] = {
4630x43425844, 0xa9d455ae, 0x4cf9c0df, 0x4cf806dc, 0xc57a8c2c, 0x00000001, 0x0000139b, 0x00000007,
4640x0000003c, 0x000000b4, 0x000000e8, 0x0000011c, 0x000001e0, 0x00000320, 0x000003bc, 0x46454452,
4650x00000070, 0x00000000, 0x00000000, 0x00000000, 0x0000003c, 0x48530500, 0x00000101, 0x0000003c,
4660x31314452, 0x0000003c, 0x00000018, 0x00000020, 0x00000028, 0x00000024, 0x0000000c, 0x00000000,
4670x7263694d, 0x666f736f, 0x52282074, 0x4c482029, 0x53204c53, 0x65646168, 0x6f432072, 0x6c69706d,
4680x39207265, 0x2e39322e, 0x2e323539, 0x31313133, 0xababab00, 0x4e475349, 0x0000002c, 0x00000001,
4690x00000008, 0x00000020, 0x00000000, 0x00000000, 0x00000003, 0x00000000, 0x00000707, 0x49534f50,
4700x4e4f4954, 0xababab00, 0x4e47534f, 0x0000002c, 0x00000001, 0x00000008, 0x00000020, 0x00000000,
4710x00000000, 0x00000003, 0x00000000, 0x00000807, 0x495a4542, 0x4f505245, 0xabab0053, 0x47534350,
4720x000000bc, 0x00000006, 0x00000008, 0x00000098, 0x00000000, 0x0000000b, 0x00000003, 0x00000000,
4730x00000e01, 0x00000098, 0x00000001, 0x0000000b, 0x00000003, 0x00000001, 0x00000e01, 0x00000098,
4740x00000002, 0x0000000b, 0x00000003, 0x00000002, 0x00000e01, 0x00000098, 0x00000003, 0x0000000b,
4750x00000003, 0x00000003, 0x00000e01, 0x000000a6, 0x00000000, 0x0000000c, 0x00000003, 0x00000004,
4760x00000e01, 0x000000a6, 0x00000001, 0x0000000c, 0x00000003, 0x00000005, 0x00000e01, 0x545f5653,
4770x46737365, 0x6f746361, 0x56530072, 0x736e495f, 0x54656469, 0x46737365, 0x6f746361, 0xabab0072,
4780x58454853, 0x00000138, 0x00030050, 0x0000004e, 0x01000071, 0x01004093, 0x01004094, 0x01001895,
4790x01000896, 0x01001897, 0x0100086a, 0x01000073, 0x02000099, 0x00000004, 0x0200005f, 0x00017000,
4800x04000067, 0x00102012, 0x00000000, 0x0000000b, 0x04000067, 0x00102012, 0x00000001, 0x0000000c,
4810x04000067, 0x00102012, 0x00000002, 0x0000000d, 0x04000067, 0x00102012, 0x00000003, 0x0000000e,
4820x02000068, 0x00000001, 0x0400005b, 0x00102012, 0x00000000, 0x00000004, 0x04000036, 0x00100012,
4830x00000000, 0x0001700a, 0x06000036, 0x00902012, 0x0010000a, 0x00000000, 0x00004001, 0x3f800000,
4840x0100003e, 0x01000073, 0x02000099, 0x00000002, 0x0200005f, 0x00017000, 0x04000067, 0x00102012,
4850x00000004, 0x0000000f, 0x04000067, 0x00102012, 0x00000005, 0x00000010, 0x02000068, 0x00000001,
4860x0400005b, 0x00102012, 0x00000004, 0x00000002, 0x04000036, 0x00100012, 0x00000000, 0x0001700a,
4870x07000036, 0x00d02012, 0x00000004, 0x0010000a, 0x00000000, 0x00004001, 0x3f800000, 0x0100003e,
4880x54415453, 0x00000094, 0x00000006, 0x00000001, 0x00000000, 0x00000005, 0x00000000, 0x00000000,
4890x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4900x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4910x00000000, 0x0000000f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4920x00000008, 0x00000003, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x47424453,
4930x00000fd7, 0x00000054, 0x000002d5, 0x00000306, 0x0000030a, 0x00000101, 0x00000001, 0x00000000,
4940x00000006, 0x00000010, 0x00000006, 0x00000958, 0x00000000, 0x000009e8, 0x00000008, 0x000009e8,
4950x00000006, 0x00000a88, 0x00000007, 0x00000b00, 0x00000c34, 0x00000c64, 0x00000000, 0x0000004a,
4960x0000004a, 0x0000026a, 0x00000000, 0x00000036, 0x00000001, 0x00000004, 0x00000000, 0xffffffff,
4970x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000003, 0x00000000,
4980x00000003, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000,
4990x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000,
5000x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff,
5010x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5020xffffffff, 0xffffffff, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5030x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5040x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5050x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5060x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000,
5070x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000007,
5080x00000000, 0x00000003, 0x00000024, 0x00000000, 0x00000000, 0x00000001, 0x00000036, 0x00000001,
5090x00000001, 0x00000000, 0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000,
5100x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x00000000, 0x00000000,
5110xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5120x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5130x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5140x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000,
5150x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000,
5160x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000,
5170x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000,
5180x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff,
5190x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5200x00000000, 0x00000000, 0x00000007, 0x00000000, 0x00000003, 0x00000024, 0x00000000, 0x00000000,
5210x00000002, 0x0000003e, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000,
5220x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5230x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5240x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000,
5250x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000,
5260x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5270x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff,
5280x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5290xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5300x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5310x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5320x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x00000000, 0x00000003,
5330x00000024, 0x00000000, 0x00000000, 0x00000003, 0x00000036, 0x00000001, 0x00000004, 0x00000000,
5340xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000001,
5350x00000000, 0x00000001, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000,
5360x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff,
5370x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5380xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5390x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000,
5400x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5410x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5420x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000,
5430x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000,
5440x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5450x00000007, 0x00000000, 0x00000003, 0x00000024, 0x00000000, 0x00000000, 0x00000004, 0x00000036,
5460x00000001, 0x00000001, 0x00000004, 0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff,
5470x00000004, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x00000000,
5480x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5490x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5500x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5510x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff,
5520x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000,
5530x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000,
5540x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff,
5550x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5560xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5570x00000000, 0x00000000, 0x00000000, 0x00000007, 0x00000000, 0x00000003, 0x00000024, 0x00000000,
5580x00000000, 0x00000005, 0x0000003e, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000,
5590x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5600x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000,
5610x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000,
5620x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000,
5630x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5640x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5650xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5660x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5670x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5680x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5690x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x00000000,
5700x00000003, 0x00000024, 0x00000000, 0x00000000, 0x00000006, 0x00000003, 0xffffffff, 0xffffffff,
5710x00000003, 0x00000000, 0x00000006, 0x00000003, 0xffffffff, 0xffffffff, 0x00000003, 0x00000001,
5720x00000006, 0x00000003, 0xffffffff, 0xffffffff, 0x00000003, 0x00000002, 0x00000006, 0x00000003,
5730xffffffff, 0xffffffff, 0x00000003, 0x00000003, 0x00000006, 0x00000003, 0xffffffff, 0xffffffff,
5740x00000003, 0x00000004, 0x00000006, 0x00000003, 0xffffffff, 0xffffffff, 0x00000003, 0x00000005,
5750x00000000, 0x00000002, 0x00000014, 0x00000007, 0x000002c1, 0x00000000, 0x00000002, 0x00000030,
5760x00000007, 0x000002c8, 0x00000000, 0x00000004, 0x0000001e, 0x00000002, 0x00000102, 0x00000000,
5770x00000004, 0x00000027, 0x00000007, 0x0000010b, 0x00000000, 0x00000006, 0x00000009, 0x00000003,
5780x00000131, 0x00000000, 0x00000001, 0x00000014, 0x00000006, 0x000002cf, 0x00000000, 0x00000004,
5790x00000005, 0x00000004, 0x000000e9, 0x00000000, 0x00000009, 0x00000004, 0x00000000, 0x00000000,
5800x00000003, 0x00000051, 0x00000003, 0x00000001, 0x00000000, 0x00000003, 0x00000076, 0x00000004,
5810x00000002, 0x00000004, 0x00000000, 0x000002b4, 0x00000007, 0x00000001, 0x0000000c, 0x00000003,
5820x00000076, 0x00000004, 0x00000002, 0x00000004, 0x00000001, 0x000002bb, 0x00000006, 0x00000001,
5830x00000010, 0x00000004, 0x000000e9, 0x00000004, 0x00000003, 0x00000014, 0x00000005, 0x00000000,
5840x00000001, 0x00000001, 0x00000003, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
5850xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0xffffffff, 0x00000001,
5860x00000014, 0x00000004, 0x00000004, 0xffffffff, 0x00000001, 0x00000000, 0x00000000, 0x00000001,
5870x00000001, 0xffffffff, 0x00000001, 0x00000008, 0x00000004, 0x00000002, 0xffffffff, 0x00000006,
5880x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
5890x00000006, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5900x00000001, 0x00000020, 0x0000000c, 0x00000018, 0xffffffff, 0x00000003, 0x00000000, 0x00000000,
5910x00000001, 0x00000001, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0xffffffff,
5920x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000000, 0x00000000,
5930x00000000, 0x00000006, 0xffffffff, 0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000006,
5940x00000004, 0x00000005, 0x00000006, 0x00000008, 0x00000004, 0x00000005, 0x00000002, 0x505c3a43,
5950x72676f72, 0x656d6d61, 0x63694d5c, 0x6f736f72, 0x44207466, 0x63657269, 0x53205874, 0x28204b44,
5960x656e754a, 0x31303220, 0x555c2930, 0x696c6974, 0x73656974, 0x6e69625c, 0x3638785c, 0x6165685c,
5970x2e726564, 0x74737866, 0x74637572, 0x4f535620, 0x66207b20, 0x74616f6c, 0x20702033, 0x4f50203a,
5980x49544953, 0x203b4e4f, 0x730a3b7d, 0x63757274, 0x53482074, 0x7b204f44, 0x6f6c6620, 0x65207461,
5990x205d345b, 0x5653203a, 0x7365545f, 0x63614673, 0x3b726f74, 0x6f6c6620, 0x69207461, 0x205d325b,
6000x5653203a, 0x736e495f, 0x54656469, 0x46737365, 0x6f746361, 0x7d203b72, 0x74730a3b, 0x74637572,
6010x4f534820, 0x66207b20, 0x74616f6c, 0x20702033, 0x4542203a, 0x5245495a, 0x3b534f50, 0x0a3b7d20,
6020x4f445348, 0x48434220, 0x49202853, 0x7475706e, 0x63746150, 0x53563c68, 0x38202c4f, 0x7069203e,
6030x6975202c, 0x5020746e, 0x68637461, 0x3a204449, 0x5f565320, 0x6d697250, 0x76697469, 0x20444965,
6040x0a7b0a29, 0x20202020, 0x4f445348, 0x73657220, 0x20200a3b, 0x65722020, 0x5b652e73, 0x3d205d30,
6050x73657220, 0x315b652e, 0x203d205d, 0x2e736572, 0x5d325b65, 0x72203d20, 0x652e7365, 0x205d335b,
6060x2e31203d, 0x0a3b6630, 0x20202020, 0x2e736572, 0x5d305b69, 0x72203d20, 0x692e7365, 0x205d315b,
6070x2e31203d, 0x0a3b6630, 0x20202020, 0x75746572, 0x72206e72, 0x0a3b7365, 0x645b0a7d, 0x69616d6f,
6080x7122286e, 0x22646175, 0x5b0a5d29, 0x74726170, 0x6f697469, 0x676e696e, 0x6e692228, 0x65676574,
6090x5d292272, 0x756f5b0a, 0x74757074, 0x6f706f74, 0x79676f6c, 0x72742228, 0x676e6169, 0x635f656c,
6100x5d292277, 0x756f5b0a, 0x74757074, 0x746e6f63, 0x706c6f72, 0x746e696f, 0x29382873, 0x705b0a5d,
6110x68637461, 0x736e6f63, 0x746e6174, 0x636e7566, 0x43422228, 0x29225348, 0x53480a5d, 0x4842204f,
6120x49202853, 0x7475706e, 0x63746150, 0x53563c68, 0x38202c4f, 0x2c70203e, 0x6e697520, 0x20692074,
6130x5653203a, 0x74754f5f, 0x43747570, 0x72746e6f, 0x6f506c6f, 0x49746e69, 0x75202c44, 0x20746e69,
6140x63746150, 0x20444968, 0x5653203a, 0x6972505f, 0x6974696d, 0x44496576, 0x7b0a2920, 0x2020200a,
6150x4f534820, 0x73657220, 0x20200a3b, 0x65722020, 0x20702e73, 0x5b70203d, 0x702e5d69, 0x20200a3b,
6160x65722020, 0x6e727574, 0x73657220, 0x0a7d0a3b, 0x626f6c47, 0x4c736c61, 0x6c61636f, 0x44534873,
6170x653a3a4f, 0x4f445348, 0x56693a3a, 0x3a3a4f53, 0x63694d70, 0x6f736f72, 0x28207466, 0x48202952,
6180x204c534c, 0x64616853, 0x43207265, 0x69706d6f, 0x2072656c, 0x39322e39, 0x3235392e, 0x3131332e,
6190x48420031, 0x73680053, 0x305f355f, 0x6e6f6320, 0x6c6f7274, 0x696f7020, 0x0000746e,
622static void test_get_blob_part2(
void)
631#if D3D_COMPILER_VERSION >= 46
639 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
641 size = ID3D10Blob_GetBufferSize(
blob);
642 ok(
size == 232,
"Got unexpected size %Iu.\n",
size);
644 dword = ((
DWORD*)ID3D10Blob_GetBufferPointer(
blob));
646 ok(
TAG_PCSG == *(dword + 9),
"PCSG got %#lx, expected %#lx.\n", *(dword + 9),
TAG_PCSG);
654 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
656 refcount = ID3D10Blob_Release(blob2);
657 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
665 refcount = ID3D10Blob_Release(
blob);
666 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
670 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
672 size = ID3D10Blob_GetBufferSize(
blob);
673 ok(
size == 344,
"Got unexpected size %Iu.\n",
size);
675 dword = ((
DWORD*)ID3D10Blob_GetBufferPointer(
blob));
677 ok(
TAG_ISGN == *(dword + 11),
"ISGN got %#lx, expected %#lx.\n", *(dword + 11),
TAG_ISGN);
678 ok(
TAG_OSGN == *(dword + 24),
"OSGN got %#lx, expected %#lx.\n", *(dword + 24),
TAG_OSGN);
679 ok(
TAG_PCSG == *(dword + 37),
"PCSG got %#lx, expected %#lx.\n", *(dword + 37),
TAG_PCSG);
691 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
693 refcount = ID3D10Blob_Release(blob2);
694 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
702 refcount = ID3D10Blob_Release(
blob);
703 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
707 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
709 size = ID3D10Blob_GetBufferSize(
blob);
710 ok(
size == 4055,
"Got unexpected size %Iu.\n",
size);
712 dword = ((
DWORD*)ID3D10Blob_GetBufferPointer(
blob));
713 ok(
TAG_DXBC != *dword,
"DXBC failed got %#lx.\n", *dword);
719#if D3D_COMPILER_VERSION >= 46
725 refcount = ID3D10Blob_Release(
blob);
726 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
742 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
744 size = ID3D10Blob_GetBufferSize(
blob);
745 ok(
size == 952,
"Got unexpected size %Iu.\n",
size);
747 dword = ((
DWORD*)ID3D10Blob_GetBufferPointer(
blob));
749 ok(
TAG_RDEF == *(dword + 14),
"RDEF got %#lx, expected %#lx.\n", *(dword + 14),
TAG_RDEF);
750 ok(
TAG_ISGN == *(dword + 44),
"ISGN got %#lx, expected %#lx.\n", *(dword + 44),
TAG_ISGN);
751 ok(
TAG_OSGN == *(dword + 57),
"OSGN got %#lx, expected %#lx.\n", *(dword + 57),
TAG_OSGN);
752 ok(
TAG_PCSG == *(dword + 70),
"PCSG got %#lx, expected %#lx.\n", *(dword + 70),
TAG_PCSG);
753 ok(
TAG_SHEX == *(dword + 119),
"SHEX got %#lx, expected %#lx.\n", *(dword + 119),
TAG_SHEX);
754 ok(
TAG_STAT == *(dword + 199),
"STAT got %#lx, expected %#lx.\n", *(dword + 199),
TAG_STAT);
759 refcount = ID3D10Blob_Release(
blob);
760 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
764 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
766 size = ID3D10Blob_GetBufferSize(
blob);
767 ok(
size == 4735,
"Got unexpected size %Iu.\n",
size);
769 dword = ((
DWORD*)ID3D10Blob_GetBufferPointer(
blob));
771 ok(
TAG_ISGN == *(dword + 13),
"ISGN got %#lx, expected %#lx.\n", *(dword + 13),
TAG_ISGN);
772 ok(
TAG_OSGN == *(dword + 26),
"OSGN got %#lx, expected %#lx.\n", *(dword + 26),
TAG_OSGN);
773 ok(
TAG_PCSG == *(dword + 39),
"PCSG got %#lx, expected %#lx.\n", *(dword + 39),
TAG_PCSG);
774 ok(
TAG_SHEX == *(dword + 88),
"SHEX got %#lx, expected %#lx.\n", *(dword + 88),
TAG_SHEX);
775 ok(
TAG_SDBG == *(dword + 168),
"SDBG got %#lx, expected %#lx.\n", *(dword + 168),
TAG_SDBG);
777 refcount = ID3D10Blob_Release(
blob);
778 ok(!refcount,
"ID3DBlob has %lu references left.\n", refcount);
781#if D3D_COMPILER_VERSION >= 46
798 if (written != data_size)
810static const DWORD test_cso_data[] =
815 float4
value : SV_POSITION;
825 0xfffe0200, 0x0014fffe, 0x42415443, 0x0000001c, 0x00000023, 0xfffe0200, 0x00000000, 0x00000000,
826 0x00000100, 0x0000001c, 0x325f7376, 0x4d00305f, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
827 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x30312072, 0xab00312e, 0x0200001f, 0x80000000,
828 0x900f0000, 0x02000001, 0xc00f0000, 0x90e40000, 0x0000ffff
831static void test_D3DReadFileToBlob(
void)
833 WCHAR filename[
MAX_PATH] = {
'n',
'o',
'n',
'e',
'x',
'i',
's',
't',
'e',
'n',
't',0};
855 win_skip(
"File creation failed.\n");
859 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
860 data_size = ID3D10Blob_GetBufferSize(
blob);
861 ok(!data_size,
"Got unexpected data size.\n");
863 ID3D10Blob_Release(
blob);
867 win_skip(
"File creation failed.\n");
871 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
872 data_size = ID3D10Blob_GetBufferSize(
blob);
873 ok(data_size ==
ARRAY_SIZE(test_cso_data),
"Got unexpected data size.\n");
874 data = ID3D10Blob_GetBufferPointer(
blob);
877 ID3D10Blob_Release(
blob);
880static void test_D3DWriteBlobToFile(
void)
890 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
896 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
901 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
908 ID3D10Blob_Release(
blob);
915#if D3D_COMPILER_VERSION >= 43
917 test_get_blob_part();
918 test_get_blob_part2();
919#if D3D_COMPILER_VERSION >= 46
920 test_D3DReadFileToBlob();
921 test_D3DWriteBlobToFile();
std::map< E_STRING, PART_TEST > parts
#define D3DERR_INVALIDCALL
@ D3D_BLOB_ALL_SIGNATURE_BLOB
@ D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB
@ D3D_BLOB_TEST_COMPILE_PERF
@ D3D_BLOB_TEST_ALTERNATE_SHADER
@ D3D_BLOB_PATCH_CONSTANT_SIGNATURE_BLOB
@ D3D_BLOB_TEST_COMPILE_DETAILS
@ D3D_BLOB_INPUT_SIGNATURE_BLOB
@ D3D_BLOB_OUTPUT_SIGNATURE_BLOB
@ D3D_BLOB_XNA_PREPASS_SHADER
@ D3DCOMPILER_STRIP_DEBUG_INFO
@ D3DCOMPILER_STRIP_REFLECTION_DATA
HRESULT WINAPI D3DGetBlobPart(const void *data, SIZE_T data_size, D3D_BLOB_PART part, UINT flags, ID3DBlob **blob)
HRESULT WINAPI D3DWriteBlobToFile(ID3DBlob *blob, const WCHAR *filename, BOOL overwrite)
HRESULT WINAPI D3DCreateBlob(SIZE_T data_size, ID3DBlob **blob)
HRESULT WINAPI D3DStripShader(const void *data, SIZE_T data_size, UINT flags, ID3D10Blob **blob)
HRESULT WINAPI D3DReadFileToBlob(const WCHAR *filename, ID3DBlob **contents)
#define INVALID_HANDLE_VALUE
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
BOOL WINAPI WriteFile(_In_ HANDLE hFile, _In_reads_bytes_opt_(nNumberOfBytesToWrite) LPCVOID lpBuffer, _In_ DWORD nNumberOfBytesToWrite, _Out_opt_ LPDWORD lpNumberOfBytesWritten, _Inout_opt_ LPOVERLAPPED lpOverlapped)
DWORD WINAPI GetTempPathW(IN DWORD count, OUT LPWSTR path)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
UINT WINAPI GetTempFileNameW(IN LPCWSTR lpPathName, IN LPCWSTR lpPrefixString, IN UINT uUnique, OUT LPWSTR lpTempFileName)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static WCHAR temp_dir[MAX_PATH]
#define ERROR_FILE_NOT_FOUND
#define create_file(name, size)
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
#define ERROR_FILE_EXISTS