28 unsigned int diff =
x >
y ?
x -
y :
y -
x;
30 return diff <= max_diff;
66 ok(0,
"Unhandled type %x.\n",
type);
93 ok(0,
"Unhandled type %x.\n",
type);
125 *(
INT *)outdata = 0x12345678;
129 ok(0,
"Unhandled type %x.\n", outtype);
148 skip(
"Couldn't create application window.\n");
154 skip(
"Couldn't create IDirect3D9 object.\n");
162 &present_parameters, &
device);
166 skip(
"Failed to create IDirect3DDevice9 object %#lx.\n",
hr);
242 ID3DXBaseEffect *
base;
245 ID3DXEffectStateManager *manager = (ID3DXEffectStateManager *)0xdeadbeef;
246 ID3DXEffectPool *
pool = (ID3DXEffectPool *)0xdeadbeef, *pool2;
258 ok(
hr ==
D3D_OK,
"Got result %lx, expected 0 (D3D_OK)\n",
hr);
261 ok(
hr ==
D3D_OK,
"Got result %lx, expected 0 (D3D_OK)\n",
hr);
263 hr = effect->lpVtbl->GetDesc(effect, &
desc);
265 ok(!
strcmp(
desc.Creator,
"D3DX Effect Compiler"),
"Unexpected creator %s.\n",
desc.Creator);
266 ok(!
desc.Functions,
"Unexpected value %u.\n",
desc.Functions);
267 ok(
desc.Techniques == 1,
"Unexpected value %u.\n",
desc.Techniques);
268 ok(!
desc.Parameters,
"Unexpected value %u.\n",
desc.Parameters);
273 hr = effect->lpVtbl->GetStateManager(effect,
NULL);
276 hr = effect->lpVtbl->GetStateManager(effect, &manager);
277 ok(
hr ==
D3D_OK,
"GetStateManager failed, got %lx, expected 0 (D3D_OK)\n",
hr);
278 ok(!manager,
"GetStateManager failed, got %p\n", manager);
281 hr = effect->lpVtbl->SetStateManager(effect, (ID3DXEffectStateManager *)
device);
282 ok(
hr ==
D3D_OK,
"SetStateManager failed, got %lx, expected 0 (D3D_OK)\n",
hr);
284 hr = effect->lpVtbl->GetStateManager(effect, &manager);
285 ok(
hr ==
D3D_OK,
"GetStateManager failed, got %lx, expected 0 (D3D_OK)\n",
hr);
286 ok(manager !=
NULL,
"GetStateManager failed\n");
290 ok(
count == 4,
"Release failed, got %lu, expected 4\n",
count);
292 count = IUnknown_Release(manager);
293 ok(
count == 3,
"Release failed, got %lu, expected 3\n",
count);
295 hr = effect->lpVtbl->SetStateManager(effect,
NULL);
296 ok(
hr ==
D3D_OK,
"SetStateManager failed, got %lx, expected 0 (D3D_OK)\n",
hr);
298 hr = effect->lpVtbl->GetPool(effect, &
pool);
299 ok(
hr ==
D3D_OK,
"GetPool failed, got %lx, expected 0 (D3D_OK)\n",
hr);
302 hr = effect->lpVtbl->GetPool(effect,
NULL);
305 hr = effect->lpVtbl->GetDevice(effect, &device2);
306 ok(
hr ==
D3D_OK,
"Got result %lx, expected 0 (D3D_OK)\n",
hr);
308 hr = effect->lpVtbl->GetDevice(effect,
NULL);
312 ok(
count == 2,
"Release failed, got %lu, expected 2\n",
count);
314 count = effect->lpVtbl->Release(effect);
321 ok(
hr ==
S_OK,
"Got result %lx, expected 0 (S_OK)\n",
hr);
327 ok(
hr ==
S_OK,
"Got result %lx, expected 0 (S_OK)\n",
hr);
330 ok(
hr ==
D3D_OK,
"Got result %lx, expected 0 (D3D_OK)\n",
hr);
332 hr =
pool->lpVtbl->QueryInterface(
pool, &IID_ID3DXEffectPool, (
void **)&pool2);
333 ok(
hr ==
D3D_OK,
"Got result %lx, expected 0 (D3D_OK)\n",
hr);
334 ok(
pool == pool2,
"Got effect pool %p, expected %p.\n", pool2,
pool);
337 ok(
count == 1,
"Release failed, got %lu, expected 1\n",
count);
340 ok(
hr ==
D3D_OK,
"Got result %lx, expected 0 (D3D_OK)\n",
hr);
343 ok(
count == 1,
"Release failed, got %lu, expected 1\n",
count);
346 ok(
hr ==
D3D_OK,
"Got result %lx, expected 0 (D3D_OK)\n",
hr);
348 hr = effect->lpVtbl->GetPool(effect, &
pool);
349 ok(
hr ==
D3D_OK,
"GetPool failed, got %lx, expected 0 (D3D_OK)\n",
hr);
350 ok(
pool == pool2,
"Got effect pool %p, expected %p.\n", pool2,
pool);
353 ok(
count == 2,
"Release failed, got %lu, expected 2\n",
count);
355 count = effect->lpVtbl->Release(effect);
365 ID3DXEffectCompiler *compiler, *compiler2;
366 ID3DXBaseEffect *
base;
380 skip(
"D3DXCreateEffectCompiler failed, skipping test.\n");
384 count = compiler->lpVtbl->Release(compiler);
405 hr = compiler->lpVtbl->
QueryInterface(compiler, &IID_ID3DXEffectCompiler, (
void **)&compiler2);
406 ok(
hr ==
D3D_OK,
"QueryInterface failed, got %lx, expected %lx (D3D_OK)\n",
hr,
D3D_OK);
409 ok(
hr ==
D3D_OK,
"QueryInterface failed, got %lx, expected %lx (D3D_OK)\n",
hr,
D3D_OK);
412 ok(
count == 2,
"Release failed, got %lu, expected %u\n",
count, 2);
414 count = compiler2->lpVtbl->Release(compiler2);
415 ok(
count == 1,
"Release failed, got %lu, expected %u\n",
count, 1);
417 count = compiler->lpVtbl->Release(compiler);
447float2
f2 = {2.1, 2.2};
448float3
f3 = {3.1, 3.2, 3.3};
449float4
f4 = {4.1, 4.2, 4.3, 4.4};
450float1x1 f11 = {11.1};
451float1x2 f12 = {12.1, 12.2};
452float1x3 f13 = {13.1, 13.2, 13.3};
453float1x4 f14 = {14.1, 14.2, 14.3, 14.4};
454float2x1 f21 = {{21.11, 21.21}};
455float2x2 f22 = {{22.11, 22.21}, {22.12, 22.22}};
456float2x3 f23 = {{23.11, 23.21}, {23.12, 23.22}, {23.13, 23.23}};
457float2x4 f24 = {{24.11, 24.21}, {24.12, 24.22}, {24.13, 24.23}, {24.14, 24.24}};
458float3x1 f31 = {{31.11, 31.21, 31.31}};
459float3x2 f32 = {{32.11, 32.21, 32.31}, {32.12, 32.22, 32.32}};
460float3x3 f33 = {{33.11, 33.21, 33.31}, {33.12, 33.22, 33.32},
461 {33.13, 33.23, 33.33}};
462float3x4 f34 = {{34.11, 34.21, 34.31}, {34.12, 34.22, 34.32},
463 {34.13, 34.23, 34.33}, {34.14, 34.24, 34.34}};
464float4x1 f41 = {{41.11, 41.21, 41.31, 41.41}};
465float4x2 f42 = {{42.11, 42.21, 42.31, 42.41}, {42.12, 42.22, 42.32, 42.42}};
466float4x3 f43 = {{43.11, 43.21, 43.31, 43.41}, {43.12, 43.22, 43.32, 43.42},
467 {43.13, 43.23, 43.33, 43.43}};
468float4x4 f44 = {{44.11, 44.21, 44.31, 44.41}, {44.12, 44.22, 44.32, 44.42},
469 {44.13, 44.23, 44.33, 44.43}, {44.14, 44.24, 44.34, 44.44}};
470float f_2[2] = {0.101, 0.102};
471float1 f1_2[2] = {{1.101}, {1.102}};
472float2 f2_2[2] = {{2.101, 2.201}, {2.102, 2.202}};
473float3 f3_2[2] = {{3.101, 3.201, 3.301}, {3.102, 3.202, 3.302}};
474float4 f4_2[2] = {{4.101, 4.201, 4.301, 4.401}, {4.102, 4.202, 4.302, 4.402}};
475float1x1 f11_2[2] = {{11.101}, {11.102}};
476float1x2 f12_2[2] = {{12.101, 12.201}, {12.102, 12.202}};
477float1x3 f13_2[2] = {{13.101, 13.201, 13.301}, {13.102, 13.202, 13.302}};
478float1x4 f14_2[2] = {{14.101, 14.201, 14.301, 14.401}, {14.102, 14.202, 14.302, 14.402}};
479float2x1 f21_2[2] = {{{21.1101, 21.2101}}, {{21.1102, 21.2102}}};
480float2x2 f22_2[2] = {{{22.1101, 22.2101}, {22.1201, 22.2201}}, {{22.1102, 22.2102}, {22.1202, 22.2202}}};
481float2x3 f23_2[2] = {{{23.1101, 23.2101}, {23.1201, 23.2201}, {23.1301, 23.2301}}, {{23.1102, 23.2102},
482 {23.1202, 23.2202}, {23.1302, 23.2302}}};
483float2x4 f24_2[2] = {{{24.1101, 24.2101}, {24.1201, 24.2201}, {24.1301, 24.2301}, {24.1401, 24.2401}},
484 {{24.1102, 24.2102}, {24.1202, 24.2202}, {24.1302, 24.2302}, {24.1402, 24.2402}}};
485float3x1 f31_2[2] = {{{31.1101, 31.2101, 31.3101}}, {{31.1102, 31.2102, 31.3102}}};
486float3x2 f32_2[2] = {{{32.1101, 32.2101, 32.3101}, {32.1201, 32.2201, 32.3201}},
487 {{32.1102, 32.2102, 32.3102}, {32.1202, 32.2202, 32.3202}}};
488float3x3 f33_2[2] = {{{33.1101, 33.2101, 33.3101}, {33.1201, 33.2201, 33.3201},
489 {33.1301, 33.2301, 33.3301}}, {{33.1102, 33.2102, 33.3102}, {33.1202, 33.2202, 33.3202},
490 {33.1302, 33.2302, 33.3302}}};
491float3x4 f34_2[2] = {{{34.1101, 34.2101, 34.3101}, {34.1201, 34.2201, 34.3201},
492 {34.1301, 34.2301, 34.3301}, {34.1401, 34.2401, 34.3401}}, {{34.1102, 34.2102, 34.3102},
493 {34.1202, 34.2202, 34.3202}, {34.1302, 34.2302, 34.3302}, {34.1402, 34.2402, 34.3402}}};
494float4x1 f41_2[2] = {{{41.1101, 41.2101, 41.3101, 41.4101}}, {{41.1102, 41.2102, 41.3102, 41.4102}}};
495float4x2 f42_2[2] = {{{42.1101, 42.2101, 42.3101, 42.4101}, {42.1201, 42.2201, 42.3201, 42.4201}},
496 {{42.1102, 42.2102, 42.3102, 42.4102}, {42.1202, 42.2202, 42.3202, 42.4202}}};
497float4x3 f43_2[2] = {{{43.1101, 43.2101, 43.3101, 43.4101}, {43.1201, 43.2201, 43.3201, 43.4201},
498 {43.1301, 43.2301, 43.3301, 43.4301}}, {{43.1102, 43.2102, 43.3102, 43.4102},
499 {43.1202, 43.2202, 43.3202, 43.4202}, {43.1302, 43.2302, 43.3302, 43.4302}}};
500float4x4 f44_2[2] = {{{44.1101, 44.2101, 44.3101, 44.4101}, {44.1201, 44.2201, 44.3201, 44.4201},
501 {44.1301, 44.2301, 44.3301, 44.4301}, {44.1401, 44.2401, 44.3401, 44.4401}},
502 {{44.1102, 44.2102, 44.3102, 44.4102}, {44.1202, 44.2202, 44.3202, 44.4202},
503 {44.1302, 44.2302, 44.3302, 44.4302}, {44.1402, 44.2402, 44.3402, 44.4402}}};
5080xfeff0901, 0x00000b80, 0x00000000, 0x00000003, 0x00000000, 0x00000024, 0x00000000, 0x00000000,
5090x00000001, 0x00000001, 0x3dcccccd, 0x00000002, 0x00000066, 0x00000003, 0x00000001, 0x0000004c,
5100x00000000, 0x00000000, 0x00000001, 0x00000001, 0x3f8ccccd, 0x00000003, 0x00003166, 0x00000003,
5110x00000001, 0x00000078, 0x00000000, 0x00000000, 0x00000002, 0x00000001, 0x40066666, 0x400ccccd,
5120x00000003, 0x00003266, 0x00000003, 0x00000001, 0x000000a8, 0x00000000, 0x00000000, 0x00000003,
5130x00000001, 0x40466666, 0x404ccccd, 0x40533333, 0x00000003, 0x00003366, 0x00000003, 0x00000001,
5140x000000dc, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x40833333, 0x40866666, 0x4089999a,
5150x408ccccd, 0x00000003, 0x00003466, 0x00000003, 0x00000002, 0x00000104, 0x00000000, 0x00000000,
5160x00000001, 0x00000001, 0x4131999a, 0x00000004, 0x00313166, 0x00000003, 0x00000002, 0x00000130,
5170x00000000, 0x00000000, 0x00000001, 0x00000002, 0x4141999a, 0x41433333, 0x00000004, 0x00323166,
5180x00000003, 0x00000002, 0x00000160, 0x00000000, 0x00000000, 0x00000001, 0x00000003, 0x4151999a,
5190x41533333, 0x4154cccd, 0x00000004, 0x00333166, 0x00000003, 0x00000002, 0x00000194, 0x00000000,
5200x00000000, 0x00000001, 0x00000004, 0x4161999a, 0x41633333, 0x4164cccd, 0x41666666, 0x00000004,
5210x00343166, 0x00000003, 0x00000002, 0x000001c0, 0x00000000, 0x00000000, 0x00000002, 0x00000001,
5220x41a8e148, 0x41a9ae14, 0x00000004, 0x00313266, 0x00000003, 0x00000002, 0x000001f4, 0x00000000,
5230x00000000, 0x00000002, 0x00000002, 0x41b0e148, 0x41b1ae14, 0x41b0f5c3, 0x41b1c28f, 0x00000004,
5240x00323266, 0x00000003, 0x00000002, 0x00000230, 0x00000000, 0x00000000, 0x00000002, 0x00000003,
5250x41b8e148, 0x41b9ae14, 0x41b8f5c3, 0x41b9c28f, 0x41b90a3d, 0x41b9d70a, 0x00000004, 0x00333266,
5260x00000003, 0x00000002, 0x00000274, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x41c0e148,
5270x41c1ae14, 0x41c0f5c3, 0x41c1c28f, 0x41c10a3d, 0x41c1d70a, 0x41c11eb8, 0x41c1eb85, 0x00000004,
5280x00343266, 0x00000003, 0x00000002, 0x000002a4, 0x00000000, 0x00000000, 0x00000003, 0x00000001,
5290x41f8e148, 0x41f9ae14, 0x41fa7ae1, 0x00000004, 0x00313366, 0x00000003, 0x00000002, 0x000002e0,
5300x00000000, 0x00000000, 0x00000003, 0x00000002, 0x420070a4, 0x4200d70a, 0x42013d71, 0x42007ae1,
5310x4200e148, 0x420147ae, 0x00000004, 0x00323366, 0x00000003, 0x00000002, 0x00000328, 0x00000000,
5320x00000000, 0x00000003, 0x00000003, 0x420470a4, 0x4204d70a, 0x42053d71, 0x42047ae1, 0x4204e148,
5330x420547ae, 0x4204851f, 0x4204eb85, 0x420551ec, 0x00000004, 0x00333366, 0x00000003, 0x00000002,
5340x0000037c, 0x00000000, 0x00000000, 0x00000003, 0x00000004, 0x420870a4, 0x4208d70a, 0x42093d71,
5350x42087ae1, 0x4208e148, 0x420947ae, 0x4208851f, 0x4208eb85, 0x420951ec, 0x42088f5c, 0x4208f5c3,
5360x42095c29, 0x00000004, 0x00343366, 0x00000003, 0x00000002, 0x000003b0, 0x00000000, 0x00000000,
5370x00000004, 0x00000001, 0x422470a4, 0x4224d70a, 0x42253d71, 0x4225a3d7, 0x00000004, 0x00313466,
5380x00000003, 0x00000002, 0x000003f4, 0x00000000, 0x00000000, 0x00000004, 0x00000002, 0x422870a4,
5390x4228d70a, 0x42293d71, 0x4229a3d7, 0x42287ae1, 0x4228e148, 0x422947ae, 0x4229ae14, 0x00000004,
5400x00323466, 0x00000003, 0x00000002, 0x00000448, 0x00000000, 0x00000000, 0x00000004, 0x00000003,
5410x422c70a4, 0x422cd70a, 0x422d3d71, 0x422da3d7, 0x422c7ae1, 0x422ce148, 0x422d47ae, 0x422dae14,
5420x422c851f, 0x422ceb85, 0x422d51ec, 0x422db852, 0x00000004, 0x00333466, 0x00000003, 0x00000002,
5430x000004ac, 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x423070a4, 0x4230d70a, 0x42313d71,
5440x4231a3d7, 0x42307ae1, 0x4230e148, 0x423147ae, 0x4231ae14, 0x4230851f, 0x4230eb85, 0x423151ec,
5450x4231b852, 0x42308f5c, 0x4230f5c3, 0x42315c29, 0x4231c28f, 0x00000004, 0x00343466, 0x00000003,
5460x00000000, 0x000004d8, 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x3dced917, 0x3dd0e560,
5470x00000004, 0x00325f66, 0x00000003, 0x00000001, 0x00000504, 0x00000000, 0x00000002, 0x00000001,
5480x00000001, 0x3f8ced91, 0x3f8d0e56, 0x00000005, 0x325f3166, 0x00000000, 0x00000003, 0x00000001,
5490x0000053c, 0x00000000, 0x00000002, 0x00000002, 0x00000001, 0x400676c9, 0x400cdd2f, 0x4006872b,
5500x400ced91, 0x00000005, 0x325f3266, 0x00000000, 0x00000003, 0x00000001, 0x0000057c, 0x00000000,
5510x00000002, 0x00000003, 0x00000001, 0x404676c9, 0x404cdd2f, 0x40534396, 0x4046872b, 0x404ced91,
5520x405353f8, 0x00000005, 0x325f3366, 0x00000000, 0x00000003, 0x00000001, 0x000005c4, 0x00000000,
5530x00000002, 0x00000004, 0x00000001, 0x40833b64, 0x40866e98, 0x4089a1cb, 0x408cd4fe, 0x40834396,
5540x408676c9, 0x4089a9fc, 0x408cdd2f, 0x00000005, 0x325f3466, 0x00000000, 0x00000003, 0x00000002,
5550x000005f4, 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x41319db2, 0x4131a1cb, 0x00000006,
5560x5f313166, 0x00000032, 0x00000003, 0x00000002, 0x0000062c, 0x00000000, 0x00000002, 0x00000001,
5570x00000002, 0x41419db2, 0x4143374c, 0x4141a1cb, 0x41433b64, 0x00000006, 0x5f323166, 0x00000032,
5580x00000003, 0x00000002, 0x0000066c, 0x00000000, 0x00000002, 0x00000001, 0x00000003, 0x41519db2,
5590x4153374c, 0x4154d0e5, 0x4151a1cb, 0x41533b64, 0x4154d4fe, 0x00000006, 0x5f333166, 0x00000032,
5600x00000003, 0x00000002, 0x000006b4, 0x00000000, 0x00000002, 0x00000001, 0x00000004, 0x41619db2,
5610x4163374c, 0x4164d0e5, 0x41666a7f, 0x4161a1cb, 0x41633b64, 0x4164d4fe, 0x41666e98, 0x00000006,
5620x5f343166, 0x00000032, 0x00000003, 0x00000002, 0x000006ec, 0x00000000, 0x00000002, 0x00000002,
5630x00000001, 0x41a8e17c, 0x41a9ae49, 0x41a8e1b1, 0x41a9ae7d, 0x00000006, 0x5f313266, 0x00000032,
5640x00000003, 0x00000002, 0x00000734, 0x00000000, 0x00000002, 0x00000002, 0x00000002, 0x41b0e17c,
5650x41b1ae49, 0x41b0f5f7, 0x41b1c2c4, 0x41b0e1b1, 0x41b1ae7d, 0x41b0f62b, 0x41b1c2f8, 0x00000006,
5660x5f323266, 0x00000032, 0x00000003, 0x00000002, 0x0000078c, 0x00000000, 0x00000002, 0x00000002,
5670x00000003, 0x41b8e17c, 0x41b9ae49, 0x41b8f5f7, 0x41b9c2c4, 0x41b90a72, 0x41b9d73f, 0x41b8e1b1,
5680x41b9ae7d, 0x41b8f62b, 0x41b9c2f8, 0x41b90aa6, 0x41b9d773, 0x00000006, 0x5f333266, 0x00000032,
5690x00000003, 0x00000002, 0x000007f4, 0x00000000, 0x00000002, 0x00000002, 0x00000004, 0x41c0e17c,
5700x41c1ae49, 0x41c0f5f7, 0x41c1c2c4, 0x41c10a72, 0x41c1d73f, 0x41c11eed, 0x41c1ebba, 0x41c0e1b1,
5710x41c1ae7d, 0x41c0f62b, 0x41c1c2f8, 0x41c10aa6, 0x41c1d773, 0x41c11f21, 0x41c1ebee, 0x00000006,
5720x5f343266, 0x00000032, 0x00000003, 0x00000002, 0x00000834, 0x00000000, 0x00000002, 0x00000003,
5730x00000001, 0x41f8e17c, 0x41f9ae49, 0x41fa7b16, 0x41f8e1b1, 0x41f9ae7d, 0x41fa7b4a, 0x00000006,
5740x5f313366, 0x00000032, 0x00000003, 0x00000002, 0x0000088c, 0x00000000, 0x00000002, 0x00000003,
5750x00000002, 0x420070be, 0x4200d724, 0x42013d8b, 0x42007afb, 0x4200e162, 0x420147c8, 0x420070d8,
5760x4200d73f, 0x42013da5, 0x42007b16, 0x4200e17c, 0x420147e3, 0x00000006, 0x5f323366, 0x00000032,
5770x00000003, 0x00000002, 0x000008fc, 0x00000000, 0x00000002, 0x00000003, 0x00000003, 0x420470be,
5780x4204d724, 0x42053d8b, 0x42047afb, 0x4204e162, 0x420547c8, 0x42048539, 0x4204eb9f, 0x42055206,
5790x420470d8, 0x4204d73f, 0x42053da5, 0x42047b16, 0x4204e17c, 0x420547e3, 0x42048553, 0x4204ebba,
5800x42055220, 0x00000006, 0x5f333366, 0x00000032, 0x00000003, 0x00000002, 0x00000984, 0x00000000,
5810x00000002, 0x00000003, 0x00000004, 0x420870be, 0x4208d724, 0x42093d8b, 0x42087afb, 0x4208e162,
5820x420947c8, 0x42088539, 0x4208eb9f, 0x42095206, 0x42088f76, 0x4208f5dd, 0x42095c43, 0x420870d8,
5830x4208d73f, 0x42093da5, 0x42087b16, 0x4208e17c, 0x420947e3, 0x42088553, 0x4208ebba, 0x42095220,
5840x42088f91, 0x4208f5f7, 0x42095c5d, 0x00000006, 0x5f343366, 0x00000032, 0x00000003, 0x00000002,
5850x000009cc, 0x00000000, 0x00000002, 0x00000004, 0x00000001, 0x422470be, 0x4224d724, 0x42253d8b,
5860x4225a3f1, 0x422470d8, 0x4224d73f, 0x42253da5, 0x4225a40b, 0x00000006, 0x5f313466, 0x00000032,
5870x00000003, 0x00000002, 0x00000a34, 0x00000000, 0x00000002, 0x00000004, 0x00000002, 0x422870be,
5880x4228d724, 0x42293d8b, 0x4229a3f1, 0x42287afb, 0x4228e162, 0x422947c8, 0x4229ae2f, 0x422870d8,
5890x4228d73f, 0x42293da5, 0x4229a40b, 0x42287b16, 0x4228e17c, 0x422947e3, 0x4229ae49, 0x00000006,
5900x5f323466, 0x00000032, 0x00000003, 0x00000002, 0x00000abc, 0x00000000, 0x00000002, 0x00000004,
5910x00000003, 0x422c70be, 0x422cd724, 0x422d3d8b, 0x422da3f1, 0x422c7afb, 0x422ce162, 0x422d47c8,
5920x422dae2f, 0x422c8539, 0x422ceb9f, 0x422d5206, 0x422db86c, 0x422c70d8, 0x422cd73f, 0x422d3da5,
5930x422da40b, 0x422c7b16, 0x422ce17c, 0x422d47e3, 0x422dae49, 0x422c8553, 0x422cebba, 0x422d5220,
5940x422db886, 0x00000006, 0x5f333466, 0x00000032, 0x00000003, 0x00000002, 0x00000b64, 0x00000000,
5950x00000002, 0x00000004, 0x00000004, 0x423070be, 0x4230d724, 0x42313d8b, 0x4231a3f1, 0x42307afb,
5960x4230e162, 0x423147c8, 0x4231ae2f, 0x42308539, 0x4230eb9f, 0x42315206, 0x4231b86c, 0x42308f76,
5970x4230f5dd, 0x42315c43, 0x4231c2aa, 0x423070d8, 0x4230d73f, 0x42313da5, 0x4231a40b, 0x42307b16,
5980x4230e17c, 0x423147e3, 0x4231ae49, 0x42308553, 0x4230ebba, 0x42315220, 0x4231b886, 0x42308f91,
5990x4230f5f7, 0x42315c5d, 0x4231c2c4, 0x00000006, 0x5f343466, 0x00000032, 0x00000002, 0x00000070,
6000x00000002, 0x00000074, 0x0000002a, 0x00000001, 0x00000001, 0x00000001, 0x00000004, 0x00000020,
6010x00000000, 0x00000000, 0x0000002c, 0x00000048, 0x00000000, 0x00000000, 0x00000054, 0x00000070,
6020x00000000, 0x00000000, 0x00000080, 0x0000009c, 0x00000000, 0x00000000, 0x000000b0, 0x000000cc,
6030x00000000, 0x00000000, 0x000000e4, 0x00000100, 0x00000000, 0x00000000, 0x0000010c, 0x00000128,
6040x00000000, 0x00000000, 0x00000138, 0x00000154, 0x00000000, 0x00000000, 0x00000168, 0x00000184,
6050x00000000, 0x00000000, 0x0000019c, 0x000001b8, 0x00000000, 0x00000000, 0x000001c8, 0x000001e4,
6060x00000000, 0x00000000, 0x000001fc, 0x00000218, 0x00000000, 0x00000000, 0x00000238, 0x00000254,
6070x00000000, 0x00000000, 0x0000027c, 0x00000298, 0x00000000, 0x00000000, 0x000002ac, 0x000002c8,
6080x00000000, 0x00000000, 0x000002e8, 0x00000304, 0x00000000, 0x00000000, 0x00000330, 0x0000034c,
6090x00000000, 0x00000000, 0x00000384, 0x000003a0, 0x00000000, 0x00000000, 0x000003b8, 0x000003d4,
6100x00000000, 0x00000000, 0x000003fc, 0x00000418, 0x00000000, 0x00000000, 0x00000450, 0x0000046c,
6110x00000000, 0x00000000, 0x000004b4, 0x000004d0, 0x00000000, 0x00000000, 0x000004e0, 0x000004fc,
6120x00000000, 0x00000000, 0x00000510, 0x0000052c, 0x00000000, 0x00000000, 0x00000548, 0x00000564,
6130x00000000, 0x00000000, 0x00000588, 0x000005a4, 0x00000000, 0x00000000, 0x000005d0, 0x000005ec,
6140x00000000, 0x00000000, 0x00000600, 0x0000061c, 0x00000000, 0x00000000, 0x00000638, 0x00000654,
6150x00000000, 0x00000000, 0x00000678, 0x00000694, 0x00000000, 0x00000000, 0x000006c0, 0x000006dc,
6160x00000000, 0x00000000, 0x000006f8, 0x00000714, 0x00000000, 0x00000000, 0x00000740, 0x0000075c,
6170x00000000, 0x00000000, 0x00000798, 0x000007b4, 0x00000000, 0x00000000, 0x00000800, 0x0000081c,
6180x00000000, 0x00000000, 0x00000840, 0x0000085c, 0x00000000, 0x00000000, 0x00000898, 0x000008b4,
6190x00000000, 0x00000000, 0x00000908, 0x00000924, 0x00000000, 0x00000000, 0x00000990, 0x000009ac,
6200x00000000, 0x00000000, 0x000009d8, 0x000009f4, 0x00000000, 0x00000000, 0x00000a40, 0x00000a5c,
6210x00000000, 0x00000000, 0x00000ac8, 0x00000ae4, 0x00000000, 0x00000000, 0x00000b78, 0x00000000,
6220x00000001, 0x00000b70, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
630 {
"f3",
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 3, 0, 12, { .f = { 3.1f, 3.2f, 3.3f }} },
631 {
"f4",
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 4, 0, 16, { .f = { 4.1f, 4.2f, 4.3f, 4.4f }} },
634 {
"f13",
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 1, 3, 0, 12, { .f = { 13.1f, 13.2f, 13.3f }} },
635 {
"f14",
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 1, 4, 0, 16, { .f = { 14.1f, 14.2f, 14.3f, 14.4f }} },
638 { .f = { 22.11f, 22.21f, 22.12f, 22.22f }} },
641 { .f = { 23.11f, 23.21f, 23.12f, 23.22f, 23.13f, 23.23f }} },
644 { .f = { 24.11f, 24.21f, 24.12f, 24.22f, 24.13f, 24.23f, 24.14f, 24.24f }} },
646 {
"f31",
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 3, 1, 0, 12, { .f = { 31.11f, 31.21f, 31.31f }} },
649 { .f = { 32.11f, 32.21f, 32.31f, 32.12f, 32.22f, 32.32f }} },
652 { .f = { 33.11f, 33.21f, 33.31f, 33.12f, 33.22f, 33.32f, 33.13f, 33.23f, 33.33f }} },
655 { .f = { 34.11f, 34.21f, 34.31f, 34.12f, 34.22f, 34.32f, 34.13f, 34.23f,
656 34.33f, 34.14f, 34.24f, 34.34f }} },
659 { .f = { 41.11f, 41.21f, 41.31f, 41.41f }} },
662 { .f = { 42.11f, 42.21f, 42.31f, 42.41f, 42.12f, 42.22f, 42.32f, 42.42f }} },
665 { .f = { 43.11f, 43.21f, 43.31f, 43.41f, 43.12f, 43.22f, 43.32f, 43.42f,
666 43.13f, 43.23f, 43.33f, 43.43f }} },
669 { .f = { 44.11f, 44.21f, 44.31f, 44.41f, 44.12f, 44.22f, 44.32f, 44.42f,
670 44.13f, 44.23f, 44.33f, 44.43f, 44.14f, 44.24f, 44.34f, 44.44f }} },
677 { .f = { 2.101f, 2.201f, 2.102f, 2.202f }} },
680 { .f = { 3.101f, 3.201f, 3.301f, 3.102f, 3.202f, 3.302f }} },
683 { .f = { 4.101f, 4.201f, 4.301f, 4.401f, 4.102f, 4.202f, 4.302f, 4.402f }} },
688 { .f = { 12.101f, 12.201f, 12.102f, 12.202f }} },
691 { .f = { 13.101f, 13.201f, 13.301f, 13.102f, 13.202f, 13.302f }} },
694 { .f = { 14.101f, 14.201f, 14.301f, 14.401f, 14.102f, 14.202f, 14.302f, 14.402f }} },
697 { .f = { 21.1101f, 21.2101f, 21.1102f, 21.2102f }} },
700 { .f = { 22.1101f, 22.2101f, 22.1201f, 22.2201f, 22.1102f, 22.2102f, 22.1202f, 22.2202f }} },
703 { .f = { 23.1101f, 23.2101, 23.1201f, 23.2201f, 23.1301f, 23.2301f, 23.1102f, 23.2102f,
704 23.1202f, 23.2202f, 23.1302f, 23.2302f }} },
707 { .f = { 24.1101f, 24.2101f, 24.1201f, 24.2201f, 24.1301f, 24.2301f, 24.1401f, 24.2401f,
708 24.1102f, 24.2102f, 24.1202f, 24.2202f, 24.1302f, 24.2302f, 24.1402f, 24.2402f }} },
711 { .f = { 31.1101f, 31.2101f, 31.3101f, 31.1102f, 31.2102f, 31.3102f }} },
714 { .f = { 32.1101f, 32.2101f, 32.3101f, 32.1201f, 32.2201f, 32.3201f, 32.1102f, 32.2102f,
715 32.3102f, 32.1202f, 32.2202f, 32.3202f }} },
718 { .f = { 33.1101f, 33.2101f, 33.3101f, 33.1201f, 33.2201f, 33.3201f, 33.1301f, 33.2301f,
719 33.3301f, 33.1102f, 33.2102f, 33.3102f, 33.1202f, 33.2202f, 33.3202f, 33.1302f,
720 33.2302f, 33.3302f }} },
723 { .f = { 34.1101f, 34.2101f, 34.3101f, 34.1201f, 34.2201f, 34.3201f, 34.1301f, 34.2301f,
724 34.3301f, 34.1401f, 34.2401f, 34.3401f, 34.1102f, 34.2102f, 34.3102f, 34.1202f,
725 34.2202f, 34.3202f, 34.1302f, 34.2302f, 34.3302f, 34.1402f, 34.2402f, 34.3402f }} },
728 { .f = { 41.1101f, 41.2101f, 41.3101f, 41.4101f, 41.1102f, 41.2102f, 41.3102f, 41.4102f }} },
731 { .f = { 42.1101f, 42.2101f, 42.3101f, 42.4101f, 42.1201f, 42.2201f, 42.3201f, 42.4201f,
732 42.1102f, 42.2102f, 42.3102f, 42.4102f, 42.1202f, 42.2202f, 42.3202f, 42.4202f }} },
735 { .f = { 43.1101f, 43.2101f, 43.3101f, 43.4101f, 43.1201f, 43.2201f, 43.3201f, 43.4201f,
736 43.1301f, 43.2301f, 43.3301f, 43.4301f, 43.1102f, 43.2102f, 43.3102f, 43.4102f,
737 43.1202f, 43.2202f, 43.3202f, 43.4202f, 43.1302f, 43.2302f, 43.3302f, 43.4302f }} },
740 { .f = { 44.1101f, 44.2101f, 44.3101f, 44.4101f, 44.1201f, 44.2201f, 44.3201f, 44.4201f,
741 44.1301f, 44.2301f, 44.3301f, 44.4301f, 44.1401f, 44.2401f, 44.3401f, 44.4401f,
742 44.1102f, 44.2102f, 44.3102f, 44.4102f, 44.1202f, 44.2202f, 44.3202f, 44.4202f,
743 44.1302f, 44.2302f, 44.3302f, 44.4302f, 44.1402f, 44.2402f, 44.3402f, 44.4402f }} },
753int3 i3 = {31, 32, 33};
754int4 i4 = {41, 42, 43, 44};
756int1x2 i12 = {121, 122};
757int1x3 i13 = {131, 132, 133};
758int1x4 i14 = {141, 142, 143, 144};
759int2x1 i21 = {{2111, 2121}};
760int2x2 i22 = {{2211, 2221}, {2212, 2222}};
761int2x3 i23 = {{2311, 2321}, {2312, 2322}, {2313, 2323}};
762int2x4 i24 = {{2411, 2421}, {2412, 2422}, {2413, 2423}, {2414, 2424}};
763int3x1 i31 = {{3111, 3121, 3131}};
764int3x2 i32 = {{3211, 3221, 3231}, {3212, 3222, 3232}};
765int3x3 i33 = {{3311, 3321, 3331}, {3312, 3322, 3332},
767int3x4 i34 = {{3411, 3421, 3431}, {3412, 3422, 3432},
768 {3413, 3423, 3433}, {3414, 3424, 3434}};
769int4x1 i41 = {{4111, 4121, 4131, 4141}};
770int4x2 i42 = {{4211, 4221, 4231, 4241}, {4212, 4222, 4232, 4242}};
771int4x3 i43 = {{4311, 4321, 4331, 4341}, {4312, 4322, 4332, 4342},
772 {4313, 4323, 4333, 4343}};
773int4x4 i44 = {{4411, 4421, 4431, 4441}, {4412, 4422, 4432, 4442},
774 {4413, 4423, 4433, 4443}, {4414, 4424, 4434, 4444}};
775int i_2[2] = {0101, 0102};
776int1 i1_2[2] = {{1101}, {1102}};
777int2 i2_2[2] = {{2101, 2201}, {2102, 2202}};
778int3 i3_2[2] = {{3101, 3201, 3301}, {3102, 3202, 3302}};
779int4 i4_2[2] = {{4101, 4201, 4301, 4401}, {4102, 4202, 4302, 4402}};
780int1x1 i11_2[2] = {{11101}, {11102}};
781int1x2 i12_2[2] = {{12101, 12201}, {12102, 12202}};
782int1x3 i13_2[2] = {{13101, 13201, 13301}, {13102, 13202, 13302}};
783int1x4 i14_2[2] = {{14101, 14201, 14301, 14401}, {14102, 14202, 14302, 14402}};
784int2x1 i21_2[2] = {{{211101, 212101}}, {{211102, 212102}}};
785int2x2 i22_2[2] = {{{221101, 222101}, {221201, 222201}}, {{221102, 222102}, {221202, 222202}}};
786int2x3 i23_2[2] = {{{231101, 232101}, {231201, 232201}, {231301, 232301}}, {{231102, 232102},
787 {231202, 232202}, {231302, 232302}}};
788int2x4 i24_2[2] = {{{241101, 242101}, {241201, 242201}, {241301, 242301}, {241401, 242401}},
789 {{241102, 242102}, {241202, 242202}, {241302, 242302}, {241402, 242402}}};
790int3x1 i31_2[2] = {{{311101, 312101, 313101}}, {{311102, 312102, 313102}}};
791int3x2 i32_2[2] = {{{321101, 322101, 323101}, {321201, 322201, 323201}},
792 {{321102, 322102, 323102}, {321202, 322202, 323202}}};
793int3x3 i33_2[2] = {{{331101, 332101, 333101}, {331201, 332201, 333201},
794 {331301, 332301, 333301}}, {{331102, 332102, 333102}, {331202, 332202, 333202},
795 {331302, 332302, 333302}}};
796int3x4 i34_2[2] = {{{341101, 342101, 343101}, {341201, 342201, 343201},
797 {341301, 342301, 343301}, {341401, 342401, 343401}}, {{341102, 342102, 343102},
798 {341202, 342202, 343202}, {341302, 342302, 343302}, {341402, 342402, 343402}}};
799int4x1 i41_2[2] = {{{411101, 412101, 413101, 414101}}, {{411102, 412102, 413102, 414102}}};
800int4x2 i42_2[2] = {{{421101, 422101, 423101, 424101}, {421201, 422201, 423201, 424201}},
801 {{421102, 422102, 423102, 424102}, {421202, 422202, 423202, 424202}}};
802int4x3 i43_2[2] = {{{431101, 432101, 433101, 434101}, {431201, 432201, 433201, 434201},
803 {431301, 432301, 433301, 434301}}, {{431102, 432102, 433102, 434102},
804 {431202, 432202, 433202, 434202}, {431302, 432302, 433302, 434302}}};
805int4x4 i44_2[2] = {{{441101, 442101, 443101, 444101}, {441201, 442201, 443201, 444201},
806 {441301, 442301, 443301, 444301}, {441401, 442401, 443401, 444401}},
807 {{441102, 442102, 443102, 444102}, {441202, 442202, 443202, 444202},
808 {441302, 442302, 443302, 444302}, {441402, 442402, 443402, 444402}}};
8130xfeff0901, 0x00000b80, 0x00000000, 0x00000002, 0x00000000, 0x00000024, 0x00000000, 0x00000000,
8140x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000069, 0x00000002, 0x00000001, 0x0000004c,
8150x00000000, 0x00000000, 0x00000001, 0x00000001, 0x0000000b, 0x00000003, 0x00003169, 0x00000002,
8160x00000001, 0x00000078, 0x00000000, 0x00000000, 0x00000002, 0x00000001, 0x00000015, 0x00000016,
8170x00000003, 0x00003269, 0x00000002, 0x00000001, 0x000000a8, 0x00000000, 0x00000000, 0x00000003,
8180x00000001, 0x0000001f, 0x00000020, 0x00000021, 0x00000003, 0x00003369, 0x00000002, 0x00000001,
8190x000000dc, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000029, 0x0000002a, 0x0000002b,
8200x0000002c, 0x00000003, 0x00003469, 0x00000002, 0x00000002, 0x00000104, 0x00000000, 0x00000000,
8210x00000001, 0x00000001, 0x0000006f, 0x00000004, 0x00313169, 0x00000002, 0x00000002, 0x00000130,
8220x00000000, 0x00000000, 0x00000001, 0x00000002, 0x00000079, 0x0000007a, 0x00000004, 0x00323169,
8230x00000002, 0x00000002, 0x00000160, 0x00000000, 0x00000000, 0x00000001, 0x00000003, 0x00000083,
8240x00000084, 0x00000085, 0x00000004, 0x00333169, 0x00000002, 0x00000002, 0x00000194, 0x00000000,
8250x00000000, 0x00000001, 0x00000004, 0x0000008d, 0x0000008e, 0x0000008f, 0x00000090, 0x00000004,
8260x00343169, 0x00000002, 0x00000002, 0x000001c0, 0x00000000, 0x00000000, 0x00000002, 0x00000001,
8270x0000083f, 0x00000849, 0x00000004, 0x00313269, 0x00000002, 0x00000002, 0x000001f4, 0x00000000,
8280x00000000, 0x00000002, 0x00000002, 0x000008a3, 0x000008ad, 0x000008a4, 0x000008ae, 0x00000004,
8290x00323269, 0x00000002, 0x00000002, 0x00000230, 0x00000000, 0x00000000, 0x00000002, 0x00000003,
8300x00000907, 0x00000911, 0x00000908, 0x00000912, 0x00000909, 0x00000913, 0x00000004, 0x00333269,
8310x00000002, 0x00000002, 0x00000274, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x0000096b,
8320x00000975, 0x0000096c, 0x00000976, 0x0000096d, 0x00000977, 0x0000096e, 0x00000978, 0x00000004,
8330x00343269, 0x00000002, 0x00000002, 0x000002a4, 0x00000000, 0x00000000, 0x00000003, 0x00000001,
8340x00000c27, 0x00000c31, 0x00000c3b, 0x00000004, 0x00313369, 0x00000002, 0x00000002, 0x000002e0,
8350x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000c8b, 0x00000c95, 0x00000c9f, 0x00000c8c,
8360x00000c96, 0x00000ca0, 0x00000004, 0x00323369, 0x00000002, 0x00000002, 0x00000328, 0x00000000,
8370x00000000, 0x00000003, 0x00000003, 0x00000cef, 0x00000cf9, 0x00000d03, 0x00000cf0, 0x00000cfa,
8380x00000d04, 0x00000cf1, 0x00000cfb, 0x00000d05, 0x00000004, 0x00333369, 0x00000002, 0x00000002,
8390x0000037c, 0x00000000, 0x00000000, 0x00000003, 0x00000004, 0x00000d53, 0x00000d5d, 0x00000d67,
8400x00000d54, 0x00000d5e, 0x00000d68, 0x00000d55, 0x00000d5f, 0x00000d69, 0x00000d56, 0x00000d60,
8410x00000d6a, 0x00000004, 0x00343369, 0x00000002, 0x00000002, 0x000003b0, 0x00000000, 0x00000000,
8420x00000004, 0x00000001, 0x0000100f, 0x00001019, 0x00001023, 0x0000102d, 0x00000004, 0x00313469,
8430x00000002, 0x00000002, 0x000003f4, 0x00000000, 0x00000000, 0x00000004, 0x00000002, 0x00001073,
8440x0000107d, 0x00001087, 0x00001091, 0x00001074, 0x0000107e, 0x00001088, 0x00001092, 0x00000004,
8450x00323469, 0x00000002, 0x00000002, 0x00000448, 0x00000000, 0x00000000, 0x00000004, 0x00000003,
8460x000010d7, 0x000010e1, 0x000010eb, 0x000010f5, 0x000010d8, 0x000010e2, 0x000010ec, 0x000010f6,
8470x000010d9, 0x000010e3, 0x000010ed, 0x000010f7, 0x00000004, 0x00333469, 0x00000002, 0x00000002,
8480x000004ac, 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x0000113b, 0x00001145, 0x0000114f,
8490x00001159, 0x0000113c, 0x00001146, 0x00001150, 0x0000115a, 0x0000113d, 0x00001147, 0x00001151,
8500x0000115b, 0x0000113e, 0x00001148, 0x00001152, 0x0000115c, 0x00000004, 0x00343469, 0x00000002,
8510x00000000, 0x000004d8, 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x00000041, 0x00000042,
8520x00000004, 0x00325f69, 0x00000002, 0x00000001, 0x00000504, 0x00000000, 0x00000002, 0x00000001,
8530x00000001, 0x0000044d, 0x0000044e, 0x00000005, 0x325f3169, 0x00000000, 0x00000002, 0x00000001,
8540x0000053c, 0x00000000, 0x00000002, 0x00000002, 0x00000001, 0x00000835, 0x00000899, 0x00000836,
8550x0000089a, 0x00000005, 0x325f3269, 0x00000000, 0x00000002, 0x00000001, 0x0000057c, 0x00000000,
8560x00000002, 0x00000003, 0x00000001, 0x00000c1d, 0x00000c81, 0x00000ce5, 0x00000c1e, 0x00000c82,
8570x00000ce6, 0x00000005, 0x325f3369, 0x00000000, 0x00000002, 0x00000001, 0x000005c4, 0x00000000,
8580x00000002, 0x00000004, 0x00000001, 0x00001005, 0x00001069, 0x000010cd, 0x00001131, 0x00001006,
8590x0000106a, 0x000010ce, 0x00001132, 0x00000005, 0x325f3469, 0x00000000, 0x00000002, 0x00000002,
8600x000005f4, 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x00002b5d, 0x00002b5e, 0x00000006,
8610x5f313169, 0x00000032, 0x00000002, 0x00000002, 0x0000062c, 0x00000000, 0x00000002, 0x00000001,
8620x00000002, 0x00002f45, 0x00002fa9, 0x00002f46, 0x00002faa, 0x00000006, 0x5f323169, 0x00000032,
8630x00000002, 0x00000002, 0x0000066c, 0x00000000, 0x00000002, 0x00000001, 0x00000003, 0x0000332d,
8640x00003391, 0x000033f5, 0x0000332e, 0x00003392, 0x000033f6, 0x00000006, 0x5f333169, 0x00000032,
8650x00000002, 0x00000002, 0x000006b4, 0x00000000, 0x00000002, 0x00000001, 0x00000004, 0x00003715,
8660x00003779, 0x000037dd, 0x00003841, 0x00003716, 0x0000377a, 0x000037de, 0x00003842, 0x00000006,
8670x5f343169, 0x00000032, 0x00000002, 0x00000002, 0x000006ec, 0x00000000, 0x00000002, 0x00000002,
8680x00000001, 0x0003389d, 0x00033c85, 0x0003389e, 0x00033c86, 0x00000006, 0x5f313269, 0x00000032,
8690x00000002, 0x00000002, 0x00000734, 0x00000000, 0x00000002, 0x00000002, 0x00000002, 0x00035fad,
8700x00036395, 0x00036011, 0x000363f9, 0x00035fae, 0x00036396, 0x00036012, 0x000363fa, 0x00000006,
8710x5f323269, 0x00000032, 0x00000002, 0x00000002, 0x0000078c, 0x00000000, 0x00000002, 0x00000002,
8720x00000003, 0x000386bd, 0x00038aa5, 0x00038721, 0x00038b09, 0x00038785, 0x00038b6d, 0x000386be,
8730x00038aa6, 0x00038722, 0x00038b0a, 0x00038786, 0x00038b6e, 0x00000006, 0x5f333269, 0x00000032,
8740x00000002, 0x00000002, 0x000007f4, 0x00000000, 0x00000002, 0x00000002, 0x00000004, 0x0003adcd,
8750x0003b1b5, 0x0003ae31, 0x0003b219, 0x0003ae95, 0x0003b27d, 0x0003aef9, 0x0003b2e1, 0x0003adce,
8760x0003b1b6, 0x0003ae32, 0x0003b21a, 0x0003ae96, 0x0003b27e, 0x0003aefa, 0x0003b2e2, 0x00000006,
8770x5f343269, 0x00000032, 0x00000002, 0x00000002, 0x00000834, 0x00000000, 0x00000002, 0x00000003,
8780x00000001, 0x0004bf3d, 0x0004c325, 0x0004c70d, 0x0004bf3e, 0x0004c326, 0x0004c70e, 0x00000006,
8790x5f313369, 0x00000032, 0x00000002, 0x00000002, 0x0000088c, 0x00000000, 0x00000002, 0x00000003,
8800x00000002, 0x0004e64d, 0x0004ea35, 0x0004ee1d, 0x0004e6b1, 0x0004ea99, 0x0004ee81, 0x0004e64e,
8810x0004ea36, 0x0004ee1e, 0x0004e6b2, 0x0004ea9a, 0x0004ee82, 0x00000006, 0x5f323369, 0x00000032,
8820x00000002, 0x00000002, 0x000008fc, 0x00000000, 0x00000002, 0x00000003, 0x00000003, 0x00050d5d,
8830x00051145, 0x0005152d, 0x00050dc1, 0x000511a9, 0x00051591, 0x00050e25, 0x0005120d, 0x000515f5,
8840x00050d5e, 0x00051146, 0x0005152e, 0x00050dc2, 0x000511aa, 0x00051592, 0x00050e26, 0x0005120e,
8850x000515f6, 0x00000006, 0x5f333369, 0x00000032, 0x00000002, 0x00000002, 0x00000984, 0x00000000,
8860x00000002, 0x00000003, 0x00000004, 0x0005346d, 0x00053855, 0x00053c3d, 0x000534d1, 0x000538b9,
8870x00053ca1, 0x00053535, 0x0005391d, 0x00053d05, 0x00053599, 0x00053981, 0x00053d69, 0x0005346e,
8880x00053856, 0x00053c3e, 0x000534d2, 0x000538ba, 0x00053ca2, 0x00053536, 0x0005391e, 0x00053d06,
8890x0005359a, 0x00053982, 0x00053d6a, 0x00000006, 0x5f343369, 0x00000032, 0x00000002, 0x00000002,
8900x000009cc, 0x00000000, 0x00000002, 0x00000004, 0x00000001, 0x000645dd, 0x000649c5, 0x00064dad,
8910x00065195, 0x000645de, 0x000649c6, 0x00064dae, 0x00065196, 0x00000006, 0x5f313469, 0x00000032,
8920x00000002, 0x00000002, 0x00000a34, 0x00000000, 0x00000002, 0x00000004, 0x00000002, 0x00066ced,
8930x000670d5, 0x000674bd, 0x000678a5, 0x00066d51, 0x00067139, 0x00067521, 0x00067909, 0x00066cee,
8940x000670d6, 0x000674be, 0x000678a6, 0x00066d52, 0x0006713a, 0x00067522, 0x0006790a, 0x00000006,
8950x5f323469, 0x00000032, 0x00000002, 0x00000002, 0x00000abc, 0x00000000, 0x00000002, 0x00000004,
8960x00000003, 0x000693fd, 0x000697e5, 0x00069bcd, 0x00069fb5, 0x00069461, 0x00069849, 0x00069c31,
8970x0006a019, 0x000694c5, 0x000698ad, 0x00069c95, 0x0006a07d, 0x000693fe, 0x000697e6, 0x00069bce,
8980x00069fb6, 0x00069462, 0x0006984a, 0x00069c32, 0x0006a01a, 0x000694c6, 0x000698ae, 0x00069c96,
8990x0006a07e, 0x00000006, 0x5f333469, 0x00000032, 0x00000002, 0x00000002, 0x00000b64, 0x00000000,
9000x00000002, 0x00000004, 0x00000004, 0x0006bb0d, 0x0006bef5, 0x0006c2dd, 0x0006c6c5, 0x0006bb71,
9010x0006bf59, 0x0006c341, 0x0006c729, 0x0006bbd5, 0x0006bfbd, 0x0006c3a5, 0x0006c78d, 0x0006bc39,
9020x0006c021, 0x0006c409, 0x0006c7f1, 0x0006bb0e, 0x0006bef6, 0x0006c2de, 0x0006c6c6, 0x0006bb72,
9030x0006bf5a, 0x0006c342, 0x0006c72a, 0x0006bbd6, 0x0006bfbe, 0x0006c3a6, 0x0006c78e, 0x0006bc3a,
9040x0006c022, 0x0006c40a, 0x0006c7f2, 0x00000006, 0x5f343469, 0x00000032, 0x00000002, 0x00000070,
9050x00000002, 0x00000074, 0x0000002a, 0x00000001, 0x00000001, 0x00000001, 0x00000004, 0x00000020,
9060x00000000, 0x00000000, 0x0000002c, 0x00000048, 0x00000000, 0x00000000, 0x00000054, 0x00000070,
9070x00000000, 0x00000000, 0x00000080, 0x0000009c, 0x00000000, 0x00000000, 0x000000b0, 0x000000cc,
9080x00000000, 0x00000000, 0x000000e4, 0x00000100, 0x00000000, 0x00000000, 0x0000010c, 0x00000128,
9090x00000000, 0x00000000, 0x00000138, 0x00000154, 0x00000000, 0x00000000, 0x00000168, 0x00000184,
9100x00000000, 0x00000000, 0x0000019c, 0x000001b8, 0x00000000, 0x00000000, 0x000001c8, 0x000001e4,
9110x00000000, 0x00000000, 0x000001fc, 0x00000218, 0x00000000, 0x00000000, 0x00000238, 0x00000254,
9120x00000000, 0x00000000, 0x0000027c, 0x00000298, 0x00000000, 0x00000000, 0x000002ac, 0x000002c8,
9130x00000000, 0x00000000, 0x000002e8, 0x00000304, 0x00000000, 0x00000000, 0x00000330, 0x0000034c,
9140x00000000, 0x00000000, 0x00000384, 0x000003a0, 0x00000000, 0x00000000, 0x000003b8, 0x000003d4,
9150x00000000, 0x00000000, 0x000003fc, 0x00000418, 0x00000000, 0x00000000, 0x00000450, 0x0000046c,
9160x00000000, 0x00000000, 0x000004b4, 0x000004d0, 0x00000000, 0x00000000, 0x000004e0, 0x000004fc,
9170x00000000, 0x00000000, 0x00000510, 0x0000052c, 0x00000000, 0x00000000, 0x00000548, 0x00000564,
9180x00000000, 0x00000000, 0x00000588, 0x000005a4, 0x00000000, 0x00000000, 0x000005d0, 0x000005ec,
9190x00000000, 0x00000000, 0x00000600, 0x0000061c, 0x00000000, 0x00000000, 0x00000638, 0x00000654,
9200x00000000, 0x00000000, 0x00000678, 0x00000694, 0x00000000, 0x00000000, 0x000006c0, 0x000006dc,
9210x00000000, 0x00000000, 0x000006f8, 0x00000714, 0x00000000, 0x00000000, 0x00000740, 0x0000075c,
9220x00000000, 0x00000000, 0x00000798, 0x000007b4, 0x00000000, 0x00000000, 0x00000800, 0x0000081c,
9230x00000000, 0x00000000, 0x00000840, 0x0000085c, 0x00000000, 0x00000000, 0x00000898, 0x000008b4,
9240x00000000, 0x00000000, 0x00000908, 0x00000924, 0x00000000, 0x00000000, 0x00000990, 0x000009ac,
9250x00000000, 0x00000000, 0x000009d8, 0x000009f4, 0x00000000, 0x00000000, 0x00000a40, 0x00000a5c,
9260x00000000, 0x00000000, 0x00000ac8, 0x00000ae4, 0x00000000, 0x00000000, 0x00000b78, 0x00000000,
9270x00000001, 0x00000b70, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
938 {
"i3",
D3DXPC_VECTOR,
D3DXPT_INT, 1, 3, 0, 12, { .i = { 31, 32, 33 }} },
940 {
"i4",
D3DXPC_VECTOR,
D3DXPT_INT, 1, 4, 0, 16, { .i = { 41, 42, 43, 44 }} },
946 {
"i13",
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 1, 3, 0, 12, { .i = { 131, 132, 133 }} },
948 {
"i14",
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 1, 4, 0, 16, { .i = { 141, 142, 143, 144 }} },
952 {
"i22",
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 2, 2, 0, 16, { .i = { 2211, 2221, 2212, 2222 }} },
955 { .i = { 2311, 2321, 2312, 2322, 2313, 2323 }} },
958 { .i = { 2411, 2421, 2412, 2422, 2413, 2423, 2414, 2424 }} },
960 {
"i31",
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 3, 1, 0, 12, { .i = { 3111, 3121, 3131 }} },
963 { .i = { 3211, 3221, 3231, 3212, 3222, 3232 }} },
966 { .i = { 3311, 3321, 3331, 3312, 3322, 3332, 3313, 3323, 3333 }} },
969 { .i = { 3411, 3421, 3431, 3412, 3422, 3432, 3413, 3423, 3433, 3414, 3424, 3434 }} },
971 {
"i41",
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 4, 1, 0, 16, { .i = { 4111, 4121, 4131, 4141 }} },
974 { .i = { 4211, 4221, 4231, 4241, 4212, 4222, 4232, 4242 }} },
977 { .i = { 4311, 4321, 4331, 4341, 4312, 4322, 4332, 4342,
978 4313, 4323, 4333, 4343 }} },
981 { .i = { 4411, 4421, 4431, 4441, 4412, 4422, 4432, 4442,
982 4413, 4423, 4433, 4443, 4414, 4424, 4434, 4444 }} },
988 {
"i2_2",
D3DXPC_VECTOR,
D3DXPT_INT, 1, 2, 2, 16, { .i = { 2101, 2201, 2102, 2202 }} },
991 { .i = { 3101, 3201, 3301, 3102, 3202, 3302 }} },
994 { .i = { 4101, 4201, 4301, 4401, 4102, 4202, 4302, 4402 }} },
999 { .i = { 12101, 12201, 12102, 12202 }} },
1002 { .i = { 13101, 13201, 13301, 13102, 13202, 13302 }} },
1005 { .i = { 14101, 14201, 14301, 14401, 14102, 14202, 14302, 14402 }} },
1008 { .i = { 211101, 212101, 211102, 212102 }} },
1011 { .i = { 221101, 222101, 221201, 222201, 221102, 222102, 221202, 222202 }} },
1014 { .i = { 231101, 232101, 231201, 232201, 231301, 232301, 231102, 232102,
1015 231202, 232202, 231302, 232302 }} },
1018 { .i = { 241101, 242101, 241201, 242201, 241301, 242301, 241401, 242401,
1019 241102, 242102, 241202, 242202, 241302, 242302, 241402, 242402 }} },
1022 { .i = { 311101, 312101, 313101, 311102, 312102, 313102 }} },
1025 { .i = { 321101, 322101, 323101, 321201, 322201, 323201, 321102, 322102,
1026 323102, 321202, 322202, 323202 }} },
1029 { .i = { 331101, 332101, 333101, 331201, 332201, 333201, 331301, 332301, 333301,
1030 331102, 332102, 333102, 331202, 332202, 333202, 331302, 332302, 333302 }} },
1033 { .i = { 341101, 342101, 343101, 341201, 342201, 343201, 341301, 342301, 343301,
1034 341401, 342401, 343401, 341102, 342102, 343102, 341202, 342202, 343202,
1035 341302, 342302, 343302, 341402, 342402, 343402 }} },
1038 { .i = { 411101, 412101, 413101, 414101, 411102, 412102, 413102, 414102 }} },
1041 { .i = { 421101, 422101, 423101, 424101, 421201, 422201, 423201, 424201,
1042 421102, 422102, 423102, 424102, 421202, 422202, 423202, 424202 }} },
1045 { .i = { 431101, 432101, 433101, 434101, 431201, 432201, 433201, 434201,
1046 431301, 432301, 433301, 434301, 431102, 432102, 433102, 434102,
1047 431202, 432202, 433202, 434202, 431302, 432302, 433302, 434302 }} },
1050 { .i = { 441101, 442101, 443101, 444101, 441201, 442201, 443201, 444201,
1051 441301, 442301, 443301, 444301, 441401, 442401, 443401, 444401,
1052 441102, 442102, 443102, 444102, 441202, 442202, 443202, 444202,
1053 441302, 442302, 443302, 444302, 441402, 442402, 443402, 444402 }} },
1061string s_2[2] = {
"test1",
"test2"};
1067technique
t {
pass p { } }
10710xfeff0901, 0x00000100, 0x00000000, 0x00000004, 0x00000004, 0x0000001c, 0x00000000, 0x00000000,
10720x00000001, 0x00000002, 0x00000073, 0x00000004, 0x00000004, 0x00000040, 0x00000000, 0x00000002,
10730x00000002, 0x00000003, 0x00000004, 0x00325f73, 0x00000007, 0x00000004, 0x00000060, 0x00000000,
10740x00000000, 0x00000004, 0x00000004, 0x00786574, 0x00000010, 0x00000004, 0x00000080, 0x00000000,
10750x00000000, 0x00000005, 0x00000002, 0x00000076, 0x00000010, 0x00000004, 0x000000a4, 0x00000000,
10760x00000002, 0x00000006, 0x00000007, 0x00000004, 0x00325f76, 0x0000000f, 0x00000004, 0x000000c4,
10770x00000000, 0x00000000, 0x00000008, 0x00000002, 0x00000070, 0x0000000f, 0x00000004, 0x000000e8,
10780x00000000, 0x00000002, 0x00000009, 0x0000000a, 0x00000004, 0x00325f70, 0x00000002, 0x00000070,
10790x00000002, 0x00000074, 0x00000007, 0x00000001, 0x00000007, 0x0000000b, 0x00000004, 0x00000018,
10800x00000000, 0x00000000, 0x00000024, 0x00000038, 0x00000000, 0x00000000, 0x00000048, 0x0000005c,
10810x00000000, 0x00000000, 0x00000068, 0x0000007c, 0x00000000, 0x00000000, 0x00000088, 0x0000009c,
10820x00000000, 0x00000000, 0x000000ac, 0x000000c0, 0x00000000, 0x00000000, 0x000000cc, 0x000000e0,
10830x00000000, 0x00000000, 0x000000f8, 0x00000000, 0x00000001, 0x000000f0, 0x00000000, 0x00000000,
10840x0000000a, 0x00000000, 0x00000009, 0x00000000, 0x0000000a, 0x00000000, 0x00000008, 0x00000000,
10850x00000006, 0x00000000, 0x00000007, 0x00000000, 0x00000005, 0x00000000, 0x00000004, 0x00000000,
10860x00000002, 0x00000006, 0x74736574, 0x00000031, 0x00000003, 0x00000006, 0x74736574, 0x00000032,
10870x00000001, 0x00000005, 0x74736574, 0x00000000,
1105float3
f3 = {-3.1, 153.2, 283.3};
1106float3 f3min = {-31.1, -31.2, -31.3};
1107float3 f3max = {320.1, 320.2, 320.3};
1108float4
f4 = {-4.1, 154.2, 284.3, 34.4};
1109float4 f4min = {-41.1, -41.2, -41.3, -41.4};
1110float4 f4max = {420.1, 42.20, 420.3, 420.4};
1111technique
t {
pass p { } }
11150xfeff0901, 0x00000150, 0x00000000, 0x00000003, 0x00000001, 0x0000002c, 0x00000000, 0x00000000,
11160x00000003, 0x00000001, 0xc0466666, 0x43193333, 0x438da666, 0x00000003, 0x00003366, 0x00000003,
11170x00000001, 0x0000005c, 0x00000000, 0x00000000, 0x00000003, 0x00000001, 0xc1f8cccd, 0xc1f9999a,
11180xc1fa6666, 0x00000006, 0x696d3366, 0x0000006e, 0x00000003, 0x00000001, 0x00000090, 0x00000000,
11190x00000000, 0x00000003, 0x00000001, 0x43a00ccd, 0x43a0199a, 0x43a02666, 0x00000006, 0x616d3366,
11200x00000078, 0x00000003, 0x00000001, 0x000000c8, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
11210xc0833333, 0x431a3333, 0x438e2666, 0x4209999a, 0x00000003, 0x00003466, 0x00000003, 0x00000001,
11220x000000fc, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0xc2246666, 0xc224cccd, 0xc2253333,
11230xc225999a, 0x00000006, 0x696d3466, 0x0000006e, 0x00000003, 0x00000001, 0x00000134, 0x00000000,
11240x00000000, 0x00000004, 0x00000001, 0x43d20ccd, 0x4228cccd, 0x43d22666, 0x43d23333, 0x00000006,
11250x616d3466, 0x00000078, 0x00000002, 0x00000070, 0x00000002, 0x00000074, 0x00000006, 0x00000001,
11260x00000001, 0x00000001, 0x00000004, 0x00000020, 0x00000000, 0x00000000, 0x00000034, 0x00000050,
11270x00000000, 0x00000000, 0x00000068, 0x00000084, 0x00000000, 0x00000000, 0x0000009c, 0x000000b8,
11280x00000000, 0x00000000, 0x000000d0, 0x000000ec, 0x00000000, 0x00000000, 0x00000108, 0x00000124,
11290x00000000, 0x00000000, 0x00000148, 0x00000000, 0x00000001, 0x00000140, 0x00000000, 0x00000000,
11300x00000000, 0x00000000,
1135 {
"f3",
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 3, 0, 12, { .f = { -3.1f, 153.2f, 283.3f }} },
1136 {
"f3min",
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 3, 0, 12, { .f = { -31.1f, -31.2f, -31.3f }} },
1137 {
"f3max",
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 3, 0, 12, { .f = { 320.1f, 320.2f, 320.3f }} },
1138 {
"f4",
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 4, 0, 16, { .f = { -4.1f, 154.2f, 284.3f, 34.4f }} },
1139 {
"f4min",
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 4, 0, 16, { .f = { -41.1f, -41.2f, -41.3f, -41.4f }} },
1140 {
"f4max",
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 4, 0, 16, { .f = { 420.1f, 42.20f, 420.3f, 420.4f }} },
1143#define ADD_PARAMETER_VALUE(x) {\
1144 test_effect_parameter_value_blob_ ## x,\
1145 sizeof(test_effect_parameter_value_blob_ ## x),\
1146 test_effect_parameter_value_result_ ## x,\
1147 ARRAY_SIZE(test_effect_parameter_value_result_ ## x),\
1165#undef ADD_PARAMETER_VALUE
1168#define EFFECT_PARAMETER_VALUE_ARRAY_SIZE 48
1170#define INT_FLOAT_MULTI 255.0f
1171#define INT_FLOAT_MULTI_INVERSE (1/INT_FLOAT_MULTI)
1181 hr = effect->lpVtbl->GetValue(effect, parameter,
value,
res->bytes);
1188 for (
l = 0;
l <
res->bytes /
sizeof(*value); ++
l)
1190 ok(
value[
l] == res_value[
l],
"Unexpected value[%u] %#lx, expected %#lx.\n",
1196 ok(
value[
l] == 0xabababab,
"Unexpected value[%u] %#lx.\n",
l,
value[
l]);
1208 for (
l = 0;
l < (
res->elements ?
res->elements : 1); ++
l)
1211 if (unk) IUnknown_Release(unk);
1220 ok(0,
"Type is %u, this should not happen!\n",
res->type);
1230 ok(
value[
l] == 0xabababab,
"Unexpected value[%u] %#lx.\n",
l,
value[
l]);
1238 BOOL bvalue = 0xabababab;
1241 hr = effect->lpVtbl->GetBool(effect, parameter, &bvalue);
1242 if (!
res->elements &&
res->rows == 1 &&
res->columns == 1)
1245 ok(bvalue ==
get_bool(res_value),
"Unexpected value %#x, expected %#x.\n",
1251 ok(bvalue == 0xabababab,
"Unexpected value %#x.\n", bvalue);
1259 unsigned int l,
err = 0;
1262 memset(bavalue, 0xab,
sizeof(bavalue));
1263 hr = effect->lpVtbl->GetBoolArray(effect, parameter, bavalue,
res->bytes /
sizeof(*bavalue));
1270 for (
l = 0;
l <
res->bytes /
sizeof(*bavalue); ++
l)
1278 if (bavalue[
l] != 0xabababab)
1287 if (bavalue[
l] != 0xabababab)
1290 ok(!
err,
"Unexpected value in %u elements.\n",
err);
1296 int ivalue = 0xabababab;
1299 hr = effect->lpVtbl->GetInt(effect, parameter, &ivalue);
1300 if (!
res->elements &&
res->columns == 1 &&
res->rows == 1)
1303 ok(ivalue ==
get_int(
res->type, res_value),
"Unexpected value %d, expected %d.\n",
1317 if (
res->columns *
res->rows > 3)
1322 ok(ivalue == tmp,
"Unexpected value %x, expected %x.\n", ivalue, tmp);
1327 ok(ivalue == 0xabababab,
"Unexpected value %d.\n", ivalue);
1335 unsigned int l,
err = 0;
1338 memset(iavalue, 0xab,
sizeof(iavalue));
1339 hr = effect->lpVtbl->GetIntArray(effect, parameter, iavalue,
res->bytes /
sizeof(*iavalue));
1346 for (
l = 0;
l <
res->bytes /
sizeof(*iavalue); ++
l)
1353 if (iavalue[
l] != 0xabababab) ++
err;
1362 ok(!
err,
"Unexpected value in %u elements.\n",
err);
1372 fvalue = *(
float *)&
cmp;
1373 hr = effect->lpVtbl->GetFloat(effect, parameter, &fvalue);
1374 if (!
res->elements &&
res->columns == 1 &&
res->rows == 1)
1383 ok(fvalue == *(
float *)&
cmp,
"Unexpected value %.8e, expected %.8e.\n", fvalue, *(
float *)&
cmp);
1391 unsigned int l,
err = 0;
1395 memset(favalue, 0xab,
sizeof(favalue));
1396 hr = effect->lpVtbl->GetFloatArray(effect, parameter, favalue,
res->bytes /
sizeof(*favalue));
1403 for (
l = 0;
l <
res->bytes /
sizeof(*favalue); ++
l)
1411 if (favalue[
l] != *(
float *)&
cmp)
1421 ok(!
err,
"Unexpected value in %u elements.\n",
err);
1427 unsigned int l,
err = 0;
1432 memset(fvalue, 0xab,
sizeof(fvalue));
1433 hr = effect->lpVtbl->GetVector(effect, parameter, (
D3DXVECTOR4 *)&fvalue);
1434 if (!
res->elements &&
1447 if (*res_value != tmp)
1454 for (
l = 0;
l <
res->columns; ++
l)
1458 for (
l =
res->columns;
l < 4; ++
l)
1459 if (fvalue[
l] != 0.0f)
1466 for (
l = 0;
l < 4; ++
l)
1467 if (fvalue[
l] != *(
float *)&
cmp)
1470 ok(!
err,
"Unexpected value in %u elements.\n",
err);
1484 memset(fvalue, 0xab,
sizeof(fvalue));
1491 if (fvalue[
l] != *(
float *)&
cmp)
1500 for (
l = 0;
l <
res->columns; ++
l)
1503 &res_value[
l +
k *
res->columns]), 512))
1507 for (
l =
res->columns;
l < 4; ++
l)
1508 if (fvalue[
l +
k * 4] != 0.0f)
1513 if (fvalue[
l] != *(
float *)&
cmp)
1521 if (fvalue[
l] != *(
float *)&
cmp)
1524 ok(!
err,
"Unexpected value in %u elements.\n",
err);
1532 unsigned int l,
k,
err = 0;
1542 memset(fvalue, 0xab,
sizeof(fvalue));
1543 hr = effect->lpVtbl->GetMatrix(effect, parameter, (
D3DXMATRIX *)&fvalue);
1548 for (
k = 0;
k < 4; ++
k)
1550 for (
l = 0;
l < 4; ++
l)
1555 &res_value[
l *
res->columns +
k]), 512))
1558 else if (fvalue[
l * 4 +
k] != 0.0f) ++
err;
1567 if (fvalue[
l] !=
cmp.f)
1570 ok(!
err,
"Unexpected value in %u elements.\n",
err);
1584 memset(fvalue, 0xab,
sizeof(fvalue));
1585 hr = effect->lpVtbl->GetMatrixArray(effect, parameter, (
D3DXMATRIX *)&fvalue,
count);
1591 if (fvalue[
l] != *(
float *)&
cmp)
1600 for (
k = 0;
k < 4; ++
k)
1602 for (
l = 0;
l < 4; ++
l)
1607 &res_value[
m *
res->columns *
res->rows
1608 +
l *
res->columns +
k]), 512))
1611 else if (fvalue[
m * 16 +
l * 4 +
k] != 0.0f)
1618 if (fvalue[
l] != *(
float *)&
cmp)
1626 if (fvalue[
l] != *(
float *)&
cmp)
1629 ok(!
err,
"Unexpected value in %u elements.\n",
err);
1648 }
cmp = {0xabababab};
1654 memset(fvalue, 0xab,
sizeof(fvalue));
1657 matrix_pointer_array[
l] = &fvalue[
l].
m;
1659 hr = effect->lpVtbl->GetMatrixPointerArray(effect, parameter, matrix_pointer_array,
count);
1666 if (fvalue[
m].
f[
l] !=
cmp.f)
1675 for (
k = 0;
k < 4; ++
k)
1677 for (
l = 0;
l < 4; ++
l)
1682 &res_value[
m *
res->columns *
res->rows +
l *
res->columns +
k]), 512))
1685 else if (fvalue[
m].
m.m[
l][
k] != 0.0f)
1693 if (fvalue[
m].
f[
l] !=
cmp.f)
1700 if (fvalue[
m].
f[
l] !=
cmp.f)
1705 ok(!
err,
"Unexpected value in %u elements.\n",
err);
1713 unsigned int l,
k,
err = 0;
1723 memset(fvalue, 0xab,
sizeof(fvalue));
1724 hr = effect->lpVtbl->GetMatrixTranspose(effect, parameter, (
D3DXMATRIX *)&fvalue);
1729 for (
k = 0;
k < 4; ++
k)
1731 for (
l = 0;
l < 4; ++
l)
1736 &res_value[
l *
res->columns +
k]), 512))
1739 else if (fvalue[
l +
k * 4] != 0.0f) ++
err;
1747 for (
k = 0;
k < 4; ++
k)
1749 for (
l = 0;
l < 4; ++
l)
1754 &res_value[
l *
res->columns +
k]), 512))
1757 else if (fvalue[
l * 4 +
k] != 0.0f) ++
err;
1766 if (fvalue[
l] !=
cmp.f)
1769 ok(!
err,
"Unexpected value in %u elements.\n",
err);
1783 memset(fvalue, 0xab,
sizeof(fvalue));
1784 hr = effect->lpVtbl->GetMatrixTransposeArray(effect, parameter, (
D3DXMATRIX *)&fvalue,
count);
1797 for (
k = 0;
k < 4; ++
k)
1799 for (
l = 0;
l < 4; ++
l)
1804 &res_value[
m *
res->columns *
res->rows +
l *
res->columns +
k]), 512))
1807 else if (fvalue[
m * 16 +
l +
k * 4] != 0.0f) ++
err;
1820 ok(!
err,
"Unexpected value in %u elements.\n",
err);
1834 D3DXMATRIX *matrix_pointer_array[
sizeof(fvalue)];
1840 }
cmp = {0xabababab};
1846 memset(fvalue, 0xab,
sizeof(fvalue));
1849 matrix_pointer_array[
l] = &fvalue[
l].m;
1851 hr = effect->lpVtbl->GetMatrixTransposePointerArray(effect, parameter, matrix_pointer_array,
count);
1858 if (fvalue[
m].
f[
l] !=
cmp.f)
1867 for (
k = 0;
k < 4; ++
k)
1869 for (
l = 0;
l < 4; ++
l)
1874 &res_value[
m *
res->columns *
res->rows +
l *
res->columns +
k]), 512))
1877 else if (fvalue[
m].
m.m[
k][
l] != 0.0f)
1885 if (fvalue[
m].
f[
l] !=
cmp.f)
1894 if (fvalue[
m].
f[
l] !=
cmp.f)
1897 ok(!
err,
"Unexpected value in %u elements.\n",
err);
1931 hr = effect->lpVtbl->SetValue(effect, parameter, res_value,
res->bytes);
1946 ok(0,
"Type is %u, this should not happen!\n",
res->type);
1956 for (
i = 0;
i < effect_count; ++
i)
1963 ID3DXEffect *effect;
1972 hr = effect->lpVtbl->GetDesc(effect, &edesc);
1984 FLOAT fvalue = 2.71828f;
1991 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
name);
1992 ok(!!parameter,
"Unexpected parameter %p.\n", parameter);
1994 hr = effect->lpVtbl->GetParameterDesc(effect, parameter, &pdesc);
2000 ok(
res[
k].
class == pdesc.
Class,
"Unexpected Class %#x, expected %#x.\n",
2003 ok(
res[
k].
rows == pdesc.
Rows,
"Unexpected Rows %u, expected %u.\n",
2011 ok(!pdesc.
Flags,
"Unexpected Flags %lu.\n", pdesc.
Flags);
2037 hr = effect->lpVtbl->SetBool(effect,
NULL, bvalue);
2040 hr = effect->lpVtbl->GetBool(effect,
NULL, &bvalue);
2043 hr = effect->lpVtbl->GetBool(effect, parameter,
NULL);
2055 hr = effect->lpVtbl->SetInt(effect,
NULL, ivalue);
2058 hr = effect->lpVtbl->GetInt(effect,
NULL, &ivalue);
2061 hr = effect->lpVtbl->GetInt(effect, parameter,
NULL);
2070 hr = effect->lpVtbl->GetIntArray(effect, parameter,
NULL,
res[
k].
bytes /
sizeof(
INT));
2073 hr = effect->lpVtbl->SetFloat(effect,
NULL, fvalue);
2076 hr = effect->lpVtbl->GetFloat(effect,
NULL, &fvalue);
2079 hr = effect->lpVtbl->GetFloat(effect, parameter,
NULL);
2097 hr = effect->lpVtbl->GetVector(effect, parameter,
NULL);
2127 hr = effect->lpVtbl->SetMatrixPointerArray(effect,
NULL, matrix_pointer_array, 0);
2130 hr = effect->lpVtbl->GetMatrixPointerArray(effect,
NULL,
NULL, 0);
2139 hr = effect->lpVtbl->SetMatrixTranspose(effect,
NULL, (
D3DXMATRIX *)input_value);
2142 hr = effect->lpVtbl->GetMatrixTranspose(effect,
NULL, (
D3DXMATRIX *)input_value);
2145 hr = effect->lpVtbl->GetMatrixTranspose(effect, parameter,
NULL);
2160 hr = effect->lpVtbl->SetMatrixTransposePointerArray(effect,
NULL, matrix_pointer_array, 0);
2163 hr = effect->lpVtbl->GetMatrixTransposePointerArray(effect,
NULL,
NULL, 0);
2172 hr = effect->lpVtbl->SetValue(effect,
NULL, input_value,
res[
k].
bytes);
2175 hr = effect->lpVtbl->SetValue(effect, parameter, input_value,
res[
k].
bytes - 1);
2178 hr = effect->lpVtbl->GetValue(effect,
NULL, input_value,
res[
k].
bytes);
2181 hr = effect->lpVtbl->GetValue(effect, parameter, input_value,
res[
k].
bytes - 1);
2189 hr = effect->lpVtbl->SetBool(effect, parameter, bvalue);
2205 for (
l = 1;
l <
res[
k].bytes /
sizeof(*input_value); ++
l)
2207 *(input_value +
l) = *(input_value +
l - 1) + 1;
2210 hr = effect->lpVtbl->SetBoolArray(effect, parameter, (
BOOL *)input_value,
res[
k].
bytes /
sizeof(*input_value));
2215 for (
l = 0;
l <
res[
k].bytes /
sizeof(*input_value); ++
l)
2229 ivalue = 0x1fbf02ff;
2231 hr = effect->lpVtbl->SetInt(effect, parameter, ivalue);
2260 *input_value = 123456;
2261 for (
l = 1;
l <
res[
k].bytes /
sizeof(*input_value); ++
l)
2263 *(input_value +
l) = *(input_value +
l - 1) + 23;
2266 hr = effect->lpVtbl->SetIntArray(effect, parameter, (
INT *)input_value,
res[
k].
bytes /
sizeof(*input_value));
2271 for (
l = 0;
l <
res[
k].bytes /
sizeof(*input_value); ++
l)
2287 hr = effect->lpVtbl->SetFloat(effect, parameter, fvalue);
2302 for (
l = 0;
l <
res[
k].bytes /
sizeof(fvalue); ++
l)
2304 *(input_value +
l) = *(
DWORD *)&fvalue;
2308 hr = effect->lpVtbl->SetFloatArray(effect, parameter, (
FLOAT *)input_value,
res[
k].
bytes /
sizeof(*input_value));
2313 for (
l = 0;
l <
res[
k].bytes /
sizeof(*input_value); ++
l)
2328 for (
l = 0;
l < 4; ++
l)
2330 *(input_value +
l) = *(
DWORD *)&fvalue;
2334 hr = effect->lpVtbl->SetVector(effect, parameter, (
D3DXVECTOR4 *)input_value);
2349 for (
l = 0;
l < 4; ++
l)
2369 *(input_value +
l) = *(
DWORD *)&fvalue;
2373 hr = effect->lpVtbl->SetVectorArray(effect, parameter, (
D3DXVECTOR4 *)input_value,
count);
2378 for (
l = 0;
l <
res[
k].columns; ++
l)
2395 for (
l = 0;
l < 16; ++
l)
2397 *(input_value +
l) = *(
DWORD *)&fvalue;
2401 hr = effect->lpVtbl->SetMatrix(effect, parameter, (
D3DXMATRIX *)input_value);
2404 for (
l = 0;
l < 4; ++
l)
2406 for (
m = 0;
m < 4; ++
m)
2429 *(input_value +
l) = *(
DWORD *)&fvalue;
2433 hr = effect->lpVtbl->SetMatrixArray(effect, parameter, (
D3DXMATRIX *)input_value,
count);
2438 for (
l = 0;
l < 4; ++
l)
2440 for (
m = 0;
m < 4; ++
m)
2465 *(input_value +
l) = *(
DWORD *)&fvalue;
2471 matrix_pointer_array[
l] = (
D3DXMATRIX *)&input_value[
l *
sizeof(**matrix_pointer_array) /
sizeof(
FLOAT)];
2473 hr = effect->lpVtbl->SetMatrixPointerArray(effect, parameter, matrix_pointer_array,
count);
2478 for (
l = 0;
l < 4; ++
l)
2480 for (
m = 0;
m < 4; ++
m)
2501 for (
l = 0;
l < 16; ++
l)
2503 *(input_value +
l) = *(
DWORD *)&fvalue;
2507 hr = effect->lpVtbl->SetMatrixTranspose(effect, parameter, (
D3DXMATRIX *)input_value);
2510 for (
l = 0;
l < 4; ++
l)
2512 for (
m = 0;
m < 4; ++
m)
2535 *(input_value +
l) = *(
DWORD *)&fvalue;
2539 hr = effect->lpVtbl->SetMatrixTransposeArray(effect, parameter, (
D3DXMATRIX *)input_value,
count);
2544 for (
l = 0;
l < 4; ++
l)
2546 for (
m = 0;
m < 4; ++
m)
2571 *(input_value +
l) = *(
DWORD *)&fvalue;
2577 matrix_pointer_array[
l] = (
D3DXMATRIX *)&input_value[
l *
sizeof(**matrix_pointer_array) /
sizeof(
FLOAT)];
2579 hr = effect->lpVtbl->SetMatrixTransposePointerArray(effect, parameter, matrix_pointer_array,
count);
2584 for (
l = 0;
l < 4; ++
l)
2586 for (
m = 0;
m < 4; ++
m)
2607 refcount = effect->lpVtbl->Release(effect);
2608 ok(!refcount,
"Unexpected refcount %lu.\n", refcount);
2615 static const char expected_string[] =
"test_string_1";
2616 static const char expected_string2[] =
"test_longer_string_2";
2617 static const char *expected_string_array[] = {expected_string, expected_string2};
2618 const char *string_array[
ARRAY_SIZE(expected_string_array)];
2620 IDirect3DTexture9 *texture_set;
2624 ID3DXEffect *effect;
2631 ok(
hr ==
D3D_OK,
"Got result %#lx, expected 0 (D3D_OK).\n",
hr);
2633 hr = effect->lpVtbl->GetDesc(effect, &
desc);
2635 ok(!
strcmp(
desc.Creator,
"D3DX Effect Compiler"),
"Unexpected creator %s.\n",
desc.Creator);
2636 ok(!
desc.Functions,
"Unexpected value %u.\n",
desc.Functions);
2637 ok(
desc.Techniques == 1,
"Unexpected value %u.\n",
desc.Techniques);
2638 ok(
desc.Parameters == 7,
"Unexpected value %u.\n",
desc.Parameters);
2640 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"tex");
2641 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2645 ok(
hr ==
D3D_OK,
"Got result %#lx, expected 0 (D3D_OK).\n",
hr);
2646 hr = effect->lpVtbl->SetValue(effect, parameter, &
texture,
sizeof(
texture));
2647 ok(
hr ==
D3D_OK,
"Got result %#lx, expected 0 (D3D_OK).\n",
hr);
2649 hr = effect->lpVtbl->GetValue(effect, parameter, &texture_set,
sizeof(texture_set));
2650 ok(
hr ==
D3D_OK,
"Got result %#lx, expected 0 (D3D_OK).\n",
hr);
2651 ok(
texture == texture_set,
"Texture does not match.\n");
2654 ok(
count == 2,
"Got reference count %lu, expected 2.\n",
count);
2656 hr = effect->lpVtbl->SetValue(effect, parameter, &texture_set,
sizeof(texture_set));
2657 ok(
hr ==
D3D_OK,
"Got result %#lx, expected 0 (D3D_OK).\n",
hr);
2659 ok(!
count,
"Got reference count %lu, expected 0.\n",
count);
2661 hr = effect->lpVtbl->SetString(effect,
"s", expected_string);
2664 hr = effect->lpVtbl->GetString(effect,
"s", &
string);
2666 hr = effect->lpVtbl->GetString(effect,
"s", &
string2);
2669 ok(
string != expected_string,
"String pointers are the same.\n");
2670 ok(
string ==
string2,
"String pointers differ.\n");
2671 ok(!
strcmp(
string, expected_string),
"Unexpected string '%s'.\n",
string);
2673 string = expected_string2;
2674 hr = effect->lpVtbl->SetValue(effect,
"s", &
string,
sizeof(
string) - 1);
2676 hr = effect->lpVtbl->SetValue(effect,
"s", &
string,
sizeof(
string));
2678 hr = effect->lpVtbl->SetValue(effect,
"s", &
string,
sizeof(
string) * 2);
2681 hr = effect->lpVtbl->GetValue(effect,
"s", &
string,
sizeof(
string));
2684 ok(
string != expected_string2,
"String pointers are the same.\n");
2685 ok(!
strcmp(
string, expected_string2),
"Unexpected string '%s'.\n",
string);
2687 hr = effect->lpVtbl->SetValue(effect,
"s_2", expected_string_array,
2688 sizeof(expected_string_array));
2690 hr = effect->lpVtbl->GetValue(effect,
"s_2", string_array,
2691 sizeof(string_array));
2695 ok(!
strcmp(string_array[
i], expected_string_array[
i]),
"Unexpected string '%s', i %u.\n",
2696 string_array[
i],
i);
2698 effect->lpVtbl->Release(effect);
2707float c <float d = 3;>;
2709float g <
float h[1] = {3};>;
2711float i <
s k[1] = {4};>;
2712technique
t <
s l[1] = {5};> {
pass p <
s m[1] = {6};> { } }
27160xfeff0901, 0x0000024c, 0x00000000, 0x00000003, 0x00000000, 0x00000024, 0x00000000, 0x00000000,
27170x00000001, 0x00000001, 0x40066666, 0x00000002, 0x00000061, 0x00000003, 0x00000000, 0x0000004c,
27180x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0x00000002, 0x00000062, 0x00000003,
27190x00000000, 0x0000009c, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x40400000,
27200x00000003, 0x00000000, 0x00000094, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000002,
27210x00000064, 0x00000002, 0x00000063, 0x00000000, 0x00000005, 0x000000dc, 0x00000000, 0x00000000,
27220x00000001, 0x00000003, 0x00000000, 0x000000e4, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
27230x00000000, 0x00000002, 0x00000066, 0x00000002, 0x00000065, 0x00000003, 0x00000000, 0x00000134,
27240x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x40400000, 0x00000003, 0x00000000,
27250x0000012c, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000068, 0x00000002,
27260x00000067, 0x00000003, 0x00000000, 0x000001a4, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
27270x00000000, 0x40800000, 0x00000000, 0x00000005, 0x00000194, 0x00000000, 0x00000001, 0x00000001,
27280x00000003, 0x00000000, 0x0000019c, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000002,
27290x0000006b, 0x00000002, 0x0000006a, 0x00000002, 0x00000069, 0x40a00000, 0x00000000, 0x00000005,
27300x000001e4, 0x00000000, 0x00000001, 0x00000001, 0x00000003, 0x00000000, 0x000001ec, 0x00000000,
27310x00000000, 0x00000001, 0x00000001, 0x00000002, 0x0000006c, 0x00000002, 0x0000006a, 0x40c00000,
27320x00000000, 0x00000005, 0x0000022c, 0x00000000, 0x00000001, 0x00000001, 0x00000003, 0x00000000,
27330x00000234, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000002, 0x0000006d, 0x00000002,
27340x0000006a, 0x00000002, 0x00000070, 0x00000002, 0x00000074, 0x00000006, 0x00000001, 0x00000001,
27350x00000001, 0x00000004, 0x00000020, 0x00000000, 0x00000000, 0x0000002c, 0x00000048, 0x00000000,
27360x00000000, 0x00000054, 0x00000070, 0x00000000, 0x00000001, 0x00000078, 0x00000074, 0x000000a4,
27370x000000d8, 0x00000000, 0x00000000, 0x000000ec, 0x00000108, 0x00000000, 0x00000001, 0x00000110,
27380x0000010c, 0x0000013c, 0x00000158, 0x00000000, 0x00000001, 0x00000160, 0x0000015c, 0x00000244,
27390x00000001, 0x00000001, 0x000001b0, 0x000001ac, 0x0000023c, 0x00000001, 0x00000000, 0x000001f8,
27400x000001f4, 0x00000000, 0x00000000,
2746 ID3DXEffect *effect;
2755 hr = effect->lpVtbl->GetDesc(effect, &
desc);
2757 ok(!
strcmp(
desc.Creator,
"D3DX Effect Compiler"),
"Unexpected creator %s.\n",
desc.Creator);
2758 ok(!
desc.Functions,
"Unexpected value %u.\n",
desc.Functions);
2759 ok(
desc.Techniques == 1,
"Unexpected value %u.\n",
desc.Techniques);
2760 ok(
desc.Parameters == 6,
"Unexpected value %u.\n",
desc.Parameters);
2767 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
NULL);
2768 ok(
p ==
NULL,
"GetParameterByName failed, got %p, expected %p\n",
p,
NULL);
2770 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"invalid1");
2771 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2773 p = effect->lpVtbl->GetParameterByName(effect,
"invalid1",
NULL);
2774 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2776 p = effect->lpVtbl->GetParameterByName(effect,
"invalid1",
"invalid2");
2777 ok(
p ==
NULL,
"GetParameterByName failed, got %p, expected %p\n",
p,
NULL);
2780 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"a");
2781 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2783 p = effect->lpVtbl->GetParameterByName(effect,
"a",
NULL);
2784 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2787 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"a.");
2788 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2790 p = effect->lpVtbl->GetParameterByName(effect,
"a.",
NULL);
2791 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2793 p = effect->lpVtbl->GetParameterByName(effect,
"a",
".");
2794 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2796 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"a.invalid");
2797 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2799 p = effect->lpVtbl->GetParameterByName(effect,
"a.invalid",
NULL);
2800 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2802 p = effect->lpVtbl->GetParameterByName(effect,
"a",
".invalid");
2803 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2805 p = effect->lpVtbl->GetParameterByName(effect,
"a.",
"invalid");
2806 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2808 p = effect->lpVtbl->GetParameterByName(effect,
"a",
"invalid");
2809 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2812 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"a[]");
2813 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2815 p = effect->lpVtbl->GetParameterByName(effect,
"a[]",
NULL);
2816 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2818 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"a[0]");
2819 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2821 p = effect->lpVtbl->GetParameterByName(effect,
"a[0]",
NULL);
2822 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2824 p = effect->lpVtbl->GetParameterByName(effect,
"a",
"[0]");
2825 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2827 p = effect->lpVtbl->GetParameterElement(effect,
"a", 0);
2828 ok(
p ==
NULL,
"GetParameterElement failed, got %p\n",
p);
2831 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"a@");
2832 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2834 p = effect->lpVtbl->GetParameterByName(effect,
"a@",
NULL);
2835 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2837 p = effect->lpVtbl->GetParameterByName(effect,
"a",
"@invalid");
2838 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2840 p = effect->lpVtbl->GetParameterByName(effect,
"a@",
"invalid");
2841 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2843 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"a@invalid");
2844 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2846 p = effect->lpVtbl->GetParameterByName(effect,
"a@invalid",
NULL);
2847 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2849 p = effect->lpVtbl->GetAnnotationByName(effect,
"a",
NULL);
2850 ok(
p ==
NULL,
"GetAnnotationByName failed, got %p\n",
p);
2852 p = effect->lpVtbl->GetAnnotationByName(effect,
"a",
"invalid");
2853 ok(
p ==
NULL,
"GetAnnotationByName failed, got %p\n",
p);
2855 p = effect->lpVtbl->GetAnnotation(effect,
"a", 0);
2856 ok(
p ==
NULL,
"GetAnnotation failed, got %p\n",
p);
2859 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"b");
2860 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2862 p = effect->lpVtbl->GetParameterByName(effect,
"b",
NULL);
2863 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2866 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"b[]");
2867 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2869 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"b[0]");
2870 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2872 p = effect->lpVtbl->GetParameterByName(effect,
"b[0]",
NULL);
2873 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2875 p = effect->lpVtbl->GetParameterElement(effect,
"b", 0);
2876 ok(parameter ==
p,
"GetParameterElement failed, got %p, expected %p\n",
p, parameter);
2878 p = effect->lpVtbl->GetParameterByName(effect,
"b",
"[0]");
2879 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2881 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"b[1]");
2882 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2884 p = effect->lpVtbl->GetParameterElement(effect,
"b", 1);
2885 ok(
p ==
NULL,
"GetParameterElement failed, got %p\n",
p);
2888 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"c");
2889 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2891 p = effect->lpVtbl->GetParameterByName(effect,
"c",
NULL);
2892 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2895 p = effect->lpVtbl->GetParameterByName(effect,
"c",
"@d");
2896 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2898 p = effect->lpVtbl->GetParameterByName(effect,
"c@",
"d");
2899 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2901 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"c@invalid");
2902 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2904 p = effect->lpVtbl->GetParameterByName(effect,
"c@invalid",
NULL);
2905 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2907 p = effect->lpVtbl->GetAnnotationByName(effect,
"c",
NULL);
2908 ok(
p ==
NULL,
"GetAnnotationByName failed, got %p\n",
p);
2910 p = effect->lpVtbl->GetAnnotationByName(effect,
"c",
"invalid");
2911 ok(
p ==
NULL,
"GetAnnotationByName failed, got %p\n",
p);
2913 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"c@d");
2914 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2916 p = effect->lpVtbl->GetParameterByName(effect,
"c@d",
NULL);
2917 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2919 p = effect->lpVtbl->GetAnnotationByName(effect,
"c",
"d");
2920 ok(parameter ==
p,
"GetAnnotationByName failed, got %p, expected %p\n",
p, parameter);
2922 p = effect->lpVtbl->GetAnnotation(effect,
"c", 0);
2923 ok(parameter ==
p,
"GetAnnotation failed, got %p, expected %p\n",
p, parameter);
2925 p = effect->lpVtbl->GetAnnotation(effect,
"c", 1);
2926 ok(
p ==
NULL,
"GetAnnotation failed, got %p\n",
p);
2929 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"f");
2930 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2932 p = effect->lpVtbl->GetParameterByName(effect,
"f",
NULL);
2933 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2936 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"f.e");
2937 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2939 p = effect->lpVtbl->GetParameterByName(effect,
"f.e",
NULL);
2940 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2942 p = effect->lpVtbl->GetParameterByName(effect,
"f",
"e");
2943 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2945 p = effect->lpVtbl->GetParameterByName(effect,
"f",
".e");
2946 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2948 p = effect->lpVtbl->GetParameterByName(effect,
"f.",
"e");
2949 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2951 p = effect->lpVtbl->GetParameterByName(effect,
"f.invalid",
NULL);
2952 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2954 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"f.invalid");
2955 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2958 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g@h[0]");
2959 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2961 p = effect->lpVtbl->GetAnnotationByName(effect,
"g",
"h[0]");
2962 ok(parameter ==
p,
"GetAnnotationByName failed, got %p, expected %p\n",
p, parameter);
2964 p = effect->lpVtbl->GetParameterElement(effect,
"g@h", 0);
2965 ok(parameter ==
p,
"GetParameterElement failed, got %p, expected %p\n",
p, parameter);
2967 p = effect->lpVtbl->GetParameterElement(effect, effect->lpVtbl->GetAnnotation(effect,
"g", 0), 0);
2968 ok(parameter ==
p,
"GetParameterElement failed, got %p, expected %p\n",
p, parameter);
2971 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"i@k[0].j");
2972 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2974 p = effect->lpVtbl->GetAnnotationByName(effect,
"i",
"k[0].j");
2975 ok(parameter ==
p,
"GetAnnotationByName failed, got %p, expected %p\n",
p, parameter);
2977 p = effect->lpVtbl->GetParameterByName(effect, effect->lpVtbl->GetParameterElement(effect,
"i@k", 0),
"j");
2978 ok(parameter ==
p,
"GetParameterElement failed, got %p, expected %p\n",
p, parameter);
2981 parameter = effect->lpVtbl->GetAnnotationByName(effect,
"t",
"l[0].j");
2982 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2985 parameter = effect->lpVtbl->GetAnnotationByName(effect, effect->lpVtbl->GetPassByName(effect,
"t",
"p"),
"m[0].j");
2986 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2988 count = effect->lpVtbl->Release(effect);
2994 ID3DXEffect *effect;
3002 ok(!compilation_errors,
"Returned %p\n", compilation_errors);
3008 ok(!compilation_errors,
"Returned %p\n", compilation_errors);
3009 effect->lpVtbl->Release(effect);
3016vertexshader vs_arr1[2] =
3038float4x4 camera : VIEW = {4.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0, 0.0,0.0,0.0,6.0};
3043 vertexshader = vs_arr1[1];
3044 VertexShaderConstant1[1] = 3.0f;
3045 VertexShaderConstant4[2] = 1;
3046 VertexShaderConstant1[3] = {2, 2, 2, 2};
3047 VertexShaderConstant4[4] = {4, 4, 4, 4, 5, 5, 5, 5, 6};
3051 WorldTransform[1]={2.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0, 0.0,0.0,0.0,4.0};
3052 ViewTransform=(camera);
3053 LightEnable[2] =
TRUE;
3054 LightType[2] =
POINT;
3055 LightPosition[2] = {4.0f, 5.0f, 6.0f};
3056 Sampler[1] = sampler1;
3062 0xfeff0901, 0x00000368, 0x00000000, 0x00000010, 0x00000004, 0x00000020, 0x00000000, 0x00000002,
3063 0x00000001, 0x00000002, 0x00000008, 0x615f7376, 0x00317272, 0x0000000a, 0x00000004, 0x00000074,
3064 0x00000000, 0x00000000, 0x00000002, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000,
3065 0x00000001, 0x00000001, 0x00000001, 0x000000ab, 0x00000100, 0x00000044, 0x00000040, 0x00000009,
3066 0x706d6173, 0x3172656c, 0x00000000, 0x00000003, 0x00000002, 0x000000e0, 0x000000ec, 0x00000000,
3067 0x00000004, 0x00000004, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3068 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3069 0x00000000, 0x40c00000, 0x00000007, 0x656d6163, 0x00006172, 0x00000005, 0x57454956, 0x00000000,
3070 0x00000003, 0x00000010, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x40400000, 0x00000003,
3071 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x3f800000, 0x00000003,
3072 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x40000000, 0x40000000,
3073 0x40000000, 0x40000000, 0x00000003, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000004,
3074 0x00000001, 0x40800000, 0x40800000, 0x40800000, 0x40800000, 0x40a00000, 0x40a00000, 0x40a00000,
3075 0x40a00000, 0x40c00000, 0x00000003, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000009,
3076 0x00000001, 0x00000002, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
3077 0x00000001, 0x00000004, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
3078 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
3079 0x00000001, 0x40000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3080 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3081 0x40800000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00000001,
3082 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3083 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3084 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x00000001,
3085 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001,
3086 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x40800000,
3087 0x40a00000, 0x40c00000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
3088 0x00000001, 0x00000000, 0x0000000a, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
3089 0x00003070, 0x00000006, 0x68636574, 0x00000030, 0x00000003, 0x00000001, 0x00000005, 0x00000004,
3090 0x00000004, 0x00000018, 0x00000000, 0x00000000, 0x0000002c, 0x00000060, 0x00000000, 0x00000000,
3091 0x00000084, 0x000000a0, 0x00000000, 0x00000000, 0x0000035c, 0x00000000, 0x00000001, 0x00000354,
3092 0x00000000, 0x0000000e, 0x00000092, 0x00000000, 0x000000fc, 0x000000f8, 0x00000098, 0x00000001,
3093 0x00000114, 0x00000110, 0x0000009b, 0x00000002, 0x00000134, 0x00000130, 0x00000098, 0x00000003,
3094 0x00000160, 0x00000150, 0x0000009b, 0x00000004, 0x000001a0, 0x0000017c, 0x0000004b, 0x00000000,
3095 0x000001c0, 0x000001bc, 0x0000006b, 0x00000003, 0x000001e0, 0x000001dc, 0x00000000, 0x00000000,
3096 0x00000200, 0x000001fc, 0x0000007d, 0x00000001, 0x0000025c, 0x0000021c, 0x0000007c, 0x00000000,
3097 0x000002b8, 0x00000278, 0x00000091, 0x00000002, 0x000002d8, 0x000002d4, 0x00000084, 0x00000002,
3098 0x000002f8, 0x000002f4, 0x00000088, 0x00000002, 0x00000320, 0x00000314, 0x000000b2, 0x00000001,
3099 0x00000340, 0x0000033c, 0x00000002, 0x00000003, 0x00000001, 0x0000002c, 0xfffe0101, 0x00000051,
3100 0xa00f0000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x00000001, 0xc00f0000, 0xa0e40000,
3101 0x0000ffff, 0x00000002, 0x0000002c, 0xfffe0200, 0x05000051, 0xa00f0000, 0x40000000, 0x40000000,
3102 0x40000000, 0x40000000, 0x02000001, 0xc00f0000, 0xa0e40000, 0x0000ffff, 0x00000000, 0x00000000,
3103 0xffffffff, 0x0000000d, 0x00000001, 0x00000009, 0x706d6173, 0x3172656c, 0x00000000, 0x00000000,
3104 0x00000000, 0xffffffff, 0x00000009, 0x00000000, 0x0000016c, 0x46580200, 0x0030fffe, 0x42415443,
3105 0x0000001c, 0x0000008b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000088, 0x00000030,
3106 0x00000002, 0x00000004, 0x00000038, 0x00000048, 0x656d6163, 0xab006172, 0x00030003, 0x00040004,
3107 0x00000001, 0x00000000, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3108 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3109 0x00000000, 0x40c00000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c,
3110 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe,
3111 0x54494c43, 0x00000000, 0x0024fffe, 0x434c5846, 0x00000004, 0x10000004, 0x00000001, 0x00000000,
3112 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x10000004, 0x00000001, 0x00000000,
3113 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000004, 0x10000004, 0x00000001, 0x00000000,
3114 0x00000002, 0x00000008, 0x00000000, 0x00000004, 0x00000008, 0x10000004, 0x00000001, 0x00000000,
3115 0x00000002, 0x0000000c, 0x00000000, 0x00000004, 0x0000000c, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
3116 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000001, 0x0000000b, 0x615f7376, 0x5b317272,
3119#define TEST_EFFECT_STATES_VSHADER_POS 315
3128 for (
i = 0;
i < 256; ++
i)
3139 -1.0f, 0.0f, 0.0f, 0.0f,
3140 0.0f, 0.0f, 0.0f, 0.0f,
3141 0.0f, 0.0f, 0.0f, 0.0f,
3142 0.0f, 0.0f, 0.0f, 0.0f
3144 static const D3DMATRIX test_mat_camera =
3146 4.0f, 0.0f, 0.0f, 0.0f,
3147 0.0f, 0.0f, 0.0f, 0.0f,
3148 0.0f, 0.0f, 0.0f, 0.0f,
3149 0.0f, 0.0f, 0.0f, 6.0f
3151 static const D3DMATRIX test_mat_world1 =
3153 2.0f, 0.0f, 0.0f, 0.0f,
3154 0.0f, 0.0f, 0.0f, 0.0f,
3155 0.0f, 0.0f, 0.0f, 0.0f,
3156 0.0f, 0.0f, 0.0f, 4.0f
3159 IDirect3DVertexShader9 *vshader;
3161 ID3DXEffect *effect;
3162 UINT byte_code_size;
3176 hr = effect->lpVtbl->GetDesc(effect, &
desc);
3178 ok(!
strcmp(
desc.Creator,
"D3DX Effect Compiler"),
"Unexpected creator %s.\n",
desc.Creator);
3179 ok(!
desc.Functions,
"Unexpected value %u.\n",
desc.Functions);
3180 ok(
desc.Techniques == 1,
"Unexpected value %u.\n",
desc.Techniques);
3181 ok(
desc.Parameters == 3,
"Unexpected value %u.\n",
desc.Parameters);
3183 hr = effect->lpVtbl->End(effect);
3186 hr = effect->lpVtbl->BeginPass(effect, 0);
3197 hr = effect->lpVtbl->Begin(effect, &npasses, 0);
3199 ok(npasses == 1,
"Unexpected npasses %u.\n", npasses);
3206 hr = effect->lpVtbl->End(effect);
3228 hr = effect->lpVtbl->Begin(effect,
NULL, 0);
3233 ok(!
memcmp(
mat.m, test_mat.
m,
sizeof(
mat)),
"World matrix does not match.\n");
3237 hr = effect->lpVtbl->BeginPass(effect, 0);
3242 ok(!
memcmp(
mat.m, test_mat_world1.
m,
sizeof(
mat)),
"World matrix does not match.\n");
3246 ok(!
memcmp(
mat.m, test_mat_camera.
m,
sizeof(
mat)),
"View matrix does not match.\n");
3254 ok(vshader !=
NULL,
"Unexpected vshader %p.\n", vshader);
3257 byte_code =
calloc(1, byte_code_size);
3260 ok(byte_code_size > 1,
"Got unexpected byte code size %u.\n", byte_code_size);
3262 "Incorrect shader selected.\n");
3271 ok(
light.Position.x == 4.0f &&
light.Position.y == 5.0f &&
light.Position.z == 6.0f,
3272 "Unexpected light position (%.8e, %.8e, %.8e).\n",
light.Position.x,
light.Position.y,
light.Position.z);
3278 ok(fvect.
x == 3.0f,
"Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3279 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3282 ok(fvect.
x == 1.0f,
"Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3283 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3287 ok(fvect.
x == 2.0f && fvect.
y == 2.0f && fvect.
z == 2.0f && fvect.
w == 2.0f,
3288 "Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3289 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3293 ok(fvect.
x == 4.0f && fvect.
y == 4.0f && fvect.
z == 4.0f && fvect.
w == 4.0f,
3294 "Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3295 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3298 ok(fvect.
x == 0.0f && fvect.
y == 0.0f && fvect.
z == 0.0f && fvect.
w == 0.0f,
3299 "Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3300 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3303 ok(fvect.
x == 0.0f && fvect.
y == 0.0f && fvect.
z == 0.0f && fvect.
w == 0.0f,
3304 "Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3305 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3309 "Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3310 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3312 hr = effect->lpVtbl->EndPass(effect);
3328 ok(
value == 4,
"Unexpected texture stage 3 AlphaOp %lu.\n",
value);
3330 hr = effect->lpVtbl->End(effect);
3335 ok(!
memcmp(
mat.m, test_mat.
m,
sizeof(
mat)),
"World matrix not restored.\n");
3345 hr = effect->lpVtbl->Begin(effect, &npasses, 0);
3351 effect->lpVtbl->Release(effect);
3364float4 g_Selector[3] = {{0, 0, 0, 0}, {10, 10, 10, 10}, {5001, 5002, 5003, 5004}};
3366float4 opvect1 = {0.0, -0.0, -2.2, 3.402823466e+38F};
3367float4 opvect2 = {1.0, 2.0, -3.0, 4.0};
3368float4 opvect3 = {0.0, -0.0, -2.2, 3.402823466e+38F};
3370float4 vect_sampler = {1, 2, 3, 4};
3372float3
vec3 = {1001, 1002, 1003};
3374int4 g_iVect = {4, 3, 2, 1};
3376vertexshader vs_arr[3] =
3398float4x4 m4x4 = {{11, 12, 13, 14}, {21, 22, 23, 24}, {31, 32, 33, 34}, {41, 42, 43, 44}};
3400row_major float4x3 m4x3row = {{11, 12, 13}, {21, 22, 23}, {31, 32, 33}, {41, 42, 43}};
3401row_major float3x4 m3x4row = {{11, 12, 13, 14}, {21, 22, 23, 24}, {31, 32, 33, 34}};
3402column_major float4x3 m4x3column = {{11, 12, 13},{21, 22, 23},{31, 32, 33},{41, 42, 43}};
3403column_major float3x4 m3x4column = {{11, 12, 13, 14}, {21, 22, 23, 24}, {31, 32, 33, 34}};
3404row_major float2x2 m2x2row = {{11, 12}, {21, 22}};
3405column_major float2x2 m2x2column = {{11, 12}, {21, 22}};
3406row_major float2x3 m2x3row = {{11, 12, 13}, {21, 22, 23}};
3407column_major float2x3 m2x3column = {{11, 12, 13}, {21, 22, 23}};
3408row_major float3x2 m3x2row = {{11, 12}, {21, 22}, {31, 32}};
3409column_major float3x2 m3x2column = {{11, 12}, {21, 22}, {31, 32}};
3411row_major bool2x3 mb2x3row = {{
true,
false,
true}, {
false,
true,
true}};
3412column_major bool2x3 mb2x3column = {{
true,
false,
true}, {
false,
true,
true}};
3426test_struct ts1[1] = {{{9, 10, 11}, 12, {13, 14, 15, 16}}};
3427shared test_struct ts2[2] = {{{0, 0, 0}, 0, {0, 0, 0, 0}}, {{1, 2, 3}, 4, {5, 6, 7, 8}}};
3428struct_array ts3 = {{{1, 2, 3}, 4, {5, 6, 7, 8}}, {{9, 10, 11}, 12, {13, 14, 15, 16}}};
3430float arr1[1] = {91};
3431shared
float arr2[2] = {92, 93};
3439 MinFilter = g_iVect.y;
3440 MagFilter = vect_sampler.x + vect_sampler.y;
3448 MagFilter = vect_sampler.x;
3453 MagFilter = vect_sampler.y;
3460 float2 TextureUV : TEXCOORD0;
3461 float4 Diffuse : COLOR0;
3463VS_OUTPUT RenderSceneVS(float4 vPos :
POSITION,
3465 float2 vTexCoord0 : TEXCOORD0,
3466 uniform
int nNumLights,
3467 uniform
bool bTexture)
3471 if (g_Selector[1].
y > float4(0.5, 0.5, 0.5, 0.5).
y)
3472 Output.Position = -g_Pos1 * 2 - float4(-4, -5, -6, -7);
3474 Output.Position = -g_Pos2 * 3 - float4(-4, -5, -6, -7);
3475 Output.TextureUV = float2(0, 0);
3477 Output.Diffuse.xyz =
mul(vPos, m4x3column);
3478 Output.Diffuse +=
mul(vPos, m3x4column);
3480 Output.Diffuse.xyz +=
mul(vPos, m4x3row);
3487 Output.Diffuse +=
mul(vPos, ts3.ts[1].fv);
3488 Output.Diffuse +=
mul(vPos, ts3.ts[1].v2);
3489 Output.Diffuse += tex2Dlod(sampler1, g_Pos1);
3490 Output.Diffuse += tex2Dlod(samplers_array[1], g_Pos1);
3494VS_OUTPUT RenderSceneVS2(float4 vPos :
POSITION)
3498 Output.Position = g_Pos1;
3499 Output.TextureUV = float2(0, 0);
3506 float4 RGBColor : COLOR0;
3508PS_OUTPUT RenderScenePS( VS_OUTPUT
In, uniform bool2x3 mb)
3515 Output.RGBColor.xy +=
mul(
In.Diffuse, m2x2column);
3517 Output.RGBColor.xy +=
mul(
In.Diffuse, m3x2column);
3519 Output.RGBColor.xyz +=
mul(
In.Diffuse, m2x3column);
3520 for (
i = 0;
i < g_iVect.x; ++
i)
3521 Output.RGBColor.xyz +=
mul(
In.Diffuse, m2x3column);
3531 if (mb2x3column[0][0])
3540 Output.RGBColor += tex2D(sampler1,
In.TextureUV);
3541 Output.RGBColor += tex2D(samplers_array[0],
In.TextureUV);
3545shared vertexshader vs_arr2[2] = {compile vs_3_0 RenderSceneVS(1,
true), compile vs_3_0 RenderSceneVS2()};
3546pixelshader ps_arr[1] = {compile ps_3_0 RenderScenePS(mb2x3row)};
3552 VertexShader = vs_arr2[g_iVect.w - 1];
3553 PixelShader = ps_arr[g_iVect.w - 1];
3555 LightEnable[0] =
TRUE;
3556 LightEnable[1] =
TRUE;
3557 LightEnable[2] =
TRUE;
3558 LightEnable[3] =
TRUE;
3559 LightEnable[4] =
TRUE;
3560 LightEnable[5] =
TRUE;
3561 LightEnable[6] =
TRUE;
3562 LightEnable[7] =
TRUE;
3563 LightType[0] =
POINT;
3564 LightType[1] =
POINT;
3565 LightType[2] =
POINT;
3566 LightType[3] =
POINT;
3567 LightType[4] =
POINT;
3568 LightType[5] =
POINT;
3569 LightType[6] =
POINT;
3570 LightType[7] =
POINT;
3571 LightDiffuse[0] = 1 / opvect1;
3572 LightDiffuse[1] = rsqrt(opvect1);
3573 LightDiffuse[2] = opvect1 * opvect2;
3574 LightDiffuse[3] = opvect1 + opvect2;
3575 LightDiffuse[4] = float4(opvect1 < opvect2);
3576 LightDiffuse[5] = float4(opvect1 >= opvect2);
3577 LightDiffuse[6] = -opvect1;
3578 LightDiffuse[7] = rcp(opvect1);
3580 LightAmbient[0] =
frac(opvect1);
3581 LightAmbient[1] =
min(opvect1, opvect2);
3582 LightAmbient[2] =
max(opvect1, opvect2);
3583 LightAmbient[3] =
sin(opvect1);
3584 LightAmbient[4] =
cos(opvect1);
3585 LightAmbient[5] = 1
e-2 / opvect1;
3586 LightAmbient[6] = float4(0,
dot(opvect1, opvect2),
dot(opvect2, opvect2), 0);
3587 LightAmbient[7] = opvect1 + 1
e-12 * opvect2 - opvect3;
3589 LightSpecular[0] = float4(
dot(opvect1.zx, opvect2.xy),
dot(opvect1.zzx, opvect2.xyz),
3590 dot(opvect1.zzzx, opvect2.xxyy), 0);
3591 LightSpecular[1] = float4(opvect1[g_iVect.z], g_iVect[opvect2.y + 1],
3592 g_Selector[4 + g_iVect.w].x + g_Selector[7 + g_iVect.w].y,
3593 g_Selector[g_iVect.w].x + g_Selector[g_iVect.x].y);
3594 LightSpecular[2] = float4(
dot(m4x4[3 + g_iVect.z], m4x4[g_iVect.w * 2]), ts3.ts[g_iVect.x].fv,
3595 vec3[g_iVect.z], float3(1, 2, 3)[g_iVect.w]);
3598 FogDensity = ts2[0].fv;
3599 FogStart = ts2[1].fv;
3600 PointScale_A = ts3.ts[0].fv;
3601 PointScale_B = ts3.ts[1].fv;
3605 VertexShader = vs_arr[g_iVect.z];
3611 0xfeff0901, 0x00001160, 0x00000000, 0x00000003, 0x00000001, 0x00000030, 0x00000000, 0x00000000,
3612 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x6f505f67,
3613 0x00003173, 0x00000003, 0x00000001, 0x00000068, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
3614 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x6f505f67, 0x00003273, 0x00000003,
3615 0x00000001, 0x000000c0, 0x00000000, 0x00000003, 0x00000004, 0x00000001, 0x00000000, 0x00000000,
3616 0x00000000, 0x00000000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x459c4800, 0x459c5000,
3617 0x459c5800, 0x459c6000, 0x0000000b, 0x65535f67, 0x7463656c, 0x0000726f, 0x00000003, 0x00000001,
3618 0x000000fc, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x80000000, 0xc00ccccd,
3619 0x7f7fffff, 0x00000008, 0x6576706f, 0x00317463, 0x00000003, 0x00000001, 0x00000134, 0x00000000,
3620 0x00000000, 0x00000004, 0x00000001, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x00000008,
3621 0x6576706f, 0x00327463, 0x00000003, 0x00000001, 0x0000016c, 0x00000000, 0x00000000, 0x00000004,
3622 0x00000001, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x00000008, 0x6576706f, 0x00337463,
3623 0x00000003, 0x00000001, 0x000001a4, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x3f800000,
3624 0x40000000, 0x40400000, 0x40800000, 0x0000000d, 0x74636576, 0x6d61735f, 0x72656c70, 0x00000000,
3625 0x00000003, 0x00000001, 0x000001e0, 0x00000000, 0x00000000, 0x00000003, 0x00000001, 0x447a4000,
3626 0x447a8000, 0x447ac000, 0x00000005, 0x33636576, 0x00000000, 0x00000002, 0x00000001, 0x00000218,
3627 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000004, 0x00000003, 0x00000002, 0x00000001,
3628 0x00000008, 0x56695f67, 0x00746365, 0x00000010, 0x00000004, 0x00000244, 0x00000000, 0x00000003,
3629 0x00000001, 0x00000002, 0x00000003, 0x00000007, 0x615f7376, 0x00007272, 0x00000003, 0x00000002,
3630 0x000002ac, 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x41300000, 0x41400000, 0x41500000,
3631 0x41600000, 0x41a80000, 0x41b00000, 0x41b80000, 0x41c00000, 0x41f80000, 0x42000000, 0x42040000,
3632 0x42080000, 0x42240000, 0x42280000, 0x422c0000, 0x42300000, 0x00000005, 0x3478346d, 0x00000000,
3633 0x00000003, 0x00000002, 0x00000304, 0x00000000, 0x00000000, 0x00000004, 0x00000003, 0x41300000,
3634 0x41400000, 0x41500000, 0x41a80000, 0x41b00000, 0x41b80000, 0x41f80000, 0x42000000, 0x42040000,
3635 0x42240000, 0x42280000, 0x422c0000, 0x00000008, 0x3378346d, 0x00776f72, 0x00000003, 0x00000002,
3636 0x0000035c, 0x00000000, 0x00000000, 0x00000003, 0x00000004, 0x41300000, 0x41400000, 0x41500000,
3637 0x41600000, 0x41a80000, 0x41b00000, 0x41b80000, 0x41c00000, 0x41f80000, 0x42000000, 0x42040000,
3638 0x42080000, 0x00000008, 0x3478336d, 0x00776f72, 0x00000003, 0x00000002, 0x000003b4, 0x00000000,
3639 0x00000000, 0x00000004, 0x00000003, 0x41300000, 0x41400000, 0x41500000, 0x41a80000, 0x41b00000,
3640 0x41b80000, 0x41f80000, 0x42000000, 0x42040000, 0x42240000, 0x42280000, 0x422c0000, 0x0000000b,
3641 0x3378346d, 0x756c6f63, 0x00006e6d, 0x00000003, 0x00000002, 0x00000410, 0x00000000, 0x00000000,
3642 0x00000003, 0x00000004, 0x41300000, 0x41400000, 0x41500000, 0x41600000, 0x41a80000, 0x41b00000,
3643 0x41b80000, 0x41c00000, 0x41f80000, 0x42000000, 0x42040000, 0x42080000, 0x0000000b, 0x3478336d,
3644 0x756c6f63, 0x00006e6d, 0x00000003, 0x00000002, 0x0000044c, 0x00000000, 0x00000000, 0x00000002,
3645 0x00000002, 0x41300000, 0x41400000, 0x41a80000, 0x41b00000, 0x00000008, 0x3278326d, 0x00776f72,
3646 0x00000003, 0x00000002, 0x00000484, 0x00000000, 0x00000000, 0x00000002, 0x00000002, 0x41300000,
3647 0x41400000, 0x41a80000, 0x41b00000, 0x0000000b, 0x3278326d, 0x756c6f63, 0x00006e6d, 0x00000003,
3648 0x00000002, 0x000004c8, 0x00000000, 0x00000000, 0x00000002, 0x00000003, 0x41300000, 0x41400000,
3649 0x41500000, 0x41a80000, 0x41b00000, 0x41b80000, 0x00000008, 0x3378326d, 0x00776f72, 0x00000003,
3650 0x00000002, 0x00000508, 0x00000000, 0x00000000, 0x00000002, 0x00000003, 0x41300000, 0x41400000,
3651 0x41500000, 0x41a80000, 0x41b00000, 0x41b80000, 0x0000000b, 0x3378326d, 0x756c6f63, 0x00006e6d,
3652 0x00000003, 0x00000002, 0x0000054c, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x41300000,
3653 0x41400000, 0x41a80000, 0x41b00000, 0x41f80000, 0x42000000, 0x00000008, 0x3278336d, 0x00776f72,
3654 0x00000003, 0x00000002, 0x0000058c, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x41300000,
3655 0x41400000, 0x41a80000, 0x41b00000, 0x41f80000, 0x42000000, 0x0000000b, 0x3278336d, 0x756c6f63,
3656 0x00006e6d, 0x00000001, 0x00000002, 0x000005d0, 0x00000000, 0x00000000, 0x00000002, 0x00000003,
3657 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000001, 0x00000009, 0x7832626d,
3658 0x776f7233, 0x00000000, 0x00000001, 0x00000002, 0x00000614, 0x00000000, 0x00000000, 0x00000002,
3659 0x00000003, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000001, 0x0000000c,
3660 0x7832626d, 0x6c6f6333, 0x006e6d75, 0x00000000, 0x00000005, 0x000006b0, 0x00000000, 0x00000001,
3661 0x00000003, 0x00000003, 0x00000001, 0x000006b8, 0x00000000, 0x00000000, 0x00000003, 0x00000001,
3662 0x00000003, 0x00000000, 0x000006c0, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000003,
3663 0x00000001, 0x000006c8, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x41100000, 0x41200000,
3664 0x41300000, 0x41400000, 0x41500000, 0x41600000, 0x41700000, 0x41800000, 0x00000004, 0x00317374,
3665 0x00000003, 0x00003176, 0x00000003, 0x00007666, 0x00000003, 0x00003276, 0x00000000, 0x00000005,
3666 0x0000077c, 0x00000000, 0x00000002, 0x00000003, 0x00000003, 0x00000001, 0x00000784, 0x00000000,
3667 0x00000000, 0x00000003, 0x00000001, 0x00000003, 0x00000000, 0x0000078c, 0x00000000, 0x00000000,
3668 0x00000001, 0x00000001, 0x00000003, 0x00000001, 0x00000794, 0x00000000, 0x00000000, 0x00000004,
3669 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3670 0x00000000, 0x3f800000, 0x40000000, 0x40400000, 0x40800000, 0x40a00000, 0x40c00000, 0x40e00000,
3671 0x41000000, 0x00000004, 0x00327374, 0x00000003, 0x00003176, 0x00000003, 0x00007666, 0x00000003,
3672 0x00003276, 0x00000000, 0x00000005, 0x00000860, 0x00000000, 0x00000000, 0x00000001, 0x00000000,
3673 0x00000005, 0x00000868, 0x00000000, 0x00000002, 0x00000003, 0x00000003, 0x00000001, 0x00000870,
3674 0x00000000, 0x00000000, 0x00000003, 0x00000001, 0x00000003, 0x00000000, 0x00000878, 0x00000000,
3675 0x00000000, 0x00000001, 0x00000001, 0x00000003, 0x00000001, 0x00000880, 0x00000000, 0x00000000,
3676 0x00000004, 0x00000001, 0x3f800000, 0x40000000, 0x40400000, 0x40800000, 0x40a00000, 0x40c00000,
3677 0x40e00000, 0x41000000, 0x41100000, 0x41200000, 0x41300000, 0x41400000, 0x41500000, 0x41600000,
3678 0x41700000, 0x41800000, 0x00000004, 0x00337374, 0x00000003, 0x00007374, 0x00000003, 0x00003176,
3679 0x00000003, 0x00007666, 0x00000003, 0x00003276, 0x00000003, 0x00000000, 0x000008a8, 0x00000000,
3680 0x00000001, 0x00000001, 0x00000001, 0x42b60000, 0x00000005, 0x31727261, 0x00000000, 0x00000003,
3681 0x00000000, 0x000008d8, 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x42b80000, 0x42ba0000,
3682 0x00000005, 0x32727261, 0x00000000, 0x00000007, 0x00000004, 0x000008fc, 0x00000000, 0x00000000,
3683 0x00000004, 0x00000005, 0x31786574, 0x00000000, 0x00000007, 0x00000004, 0x00000920, 0x00000000,
3684 0x00000000, 0x00000005, 0x00000005, 0x32786574, 0x00000000, 0x0000000a, 0x00000004, 0x000009cc,
3685 0x00000000, 0x00000000, 0x00000006, 0x00000007, 0x00000004, 0x00000000, 0x00000000, 0x00000000,
3686 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
3687 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
3688 0x00000003, 0x000000a4, 0x00000100, 0x00000944, 0x00000940, 0x000000aa, 0x00000100, 0x0000095c,
3689 0x00000958, 0x000000a9, 0x00000100, 0x0000097c, 0x00000978, 0x00000009, 0x706d6173, 0x3172656c,
3690 0x00000000, 0x0000000a, 0x00000004, 0x00000ab8, 0x00000000, 0x00000002, 0x00000001, 0x00000002,
3691 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003,
3692 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
3693 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003,
3694 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000002, 0x000000aa,
3695 0x00000100, 0x000009f4, 0x000009f0, 0x000000a9, 0x00000100, 0x00000a14, 0x00000a10, 0x00000002,
3696 0x000000aa, 0x00000100, 0x00000a34, 0x00000a30, 0x000000a9, 0x00000100, 0x00000a54, 0x00000a50,
3697 0x0000000f, 0x706d6173, 0x7372656c, 0x7272615f, 0x00007961, 0x00000010, 0x00000004, 0x00000ae8,
3698 0x00000000, 0x00000002, 0x00000007, 0x00000008, 0x00000008, 0x615f7376, 0x00327272, 0x0000000f,
3699 0x00000004, 0x00000b0c, 0x00000000, 0x00000001, 0x00000009, 0x00000007, 0x615f7370, 0x00007272,
3700 0x0000000a, 0x00000010, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x0000000b, 0x0000000f,
3701 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3702 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3703 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3704 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3705 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3706 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3707 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3708 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3709 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3710 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3711 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3712 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3713 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3714 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3715 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3716 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3717 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3718 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000,
3719 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000,
3720 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002,
3721 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
3722 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
3723 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000,
3724 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
3725 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000,
3726 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004,
3727 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000,
3728 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3729 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000,
3730 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000,
3731 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002,
3732 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
3733 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
3734 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000,
3735 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
3736 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000,
3737 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004,
3738 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000,
3739 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3740 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000,
3741 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000,
3742 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002,
3743 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
3744 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003, 0x00000002,
3745 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003, 0x00000002,
3746 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003, 0x00000002,
3747 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003, 0x00000002,
3748 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000003, 0x00003070, 0x0000000c,
3749 0x00000010, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00003170, 0x00000006,
3750 0x68636574, 0x00000030, 0x00000022, 0x00000001, 0x0000000e, 0x0000000d, 0x00000004, 0x00000020,
3751 0x00000000, 0x00000000, 0x0000003c, 0x00000058, 0x00000000, 0x00000000, 0x00000074, 0x00000090,
3752 0x00000000, 0x00000000, 0x000000d0, 0x000000ec, 0x00000000, 0x00000000, 0x00000108, 0x00000124,
3753 0x00000000, 0x00000000, 0x00000140, 0x0000015c, 0x00000000, 0x00000000, 0x00000178, 0x00000194,
3754 0x00000000, 0x00000000, 0x000001b8, 0x000001d4, 0x00000000, 0x00000000, 0x000001ec, 0x00000208,
3755 0x00000000, 0x00000000, 0x00000224, 0x00000238, 0x00000000, 0x00000000, 0x00000250, 0x0000026c,
3756 0x00000000, 0x00000000, 0x000002b8, 0x000002d4, 0x00000000, 0x00000000, 0x00000310, 0x0000032c,
3757 0x00000000, 0x00000000, 0x00000368, 0x00000384, 0x00000000, 0x00000000, 0x000003c4, 0x000003e0,
3758 0x00000000, 0x00000000, 0x00000420, 0x0000043c, 0x00000000, 0x00000000, 0x00000458, 0x00000474,
3759 0x00000000, 0x00000000, 0x00000494, 0x000004b0, 0x00000000, 0x00000000, 0x000004d4, 0x000004f0,
3760 0x00000000, 0x00000000, 0x00000518, 0x00000534, 0x00000000, 0x00000000, 0x00000558, 0x00000574,
3761 0x00000000, 0x00000000, 0x0000059c, 0x000005b8, 0x00000000, 0x00000000, 0x000005e0, 0x000005fc,
3762 0x00000000, 0x00000000, 0x00000624, 0x00000690, 0x00000000, 0x00000000, 0x000006d0, 0x0000073c,
3763 0x00000001, 0x00000000, 0x0000079c, 0x00000820, 0x00000000, 0x00000000, 0x00000888, 0x000008a4,
3764 0x00000000, 0x00000000, 0x000008b4, 0x000008d0, 0x00000001, 0x00000000, 0x000008e4, 0x000008f8,
3765 0x00000000, 0x00000000, 0x00000908, 0x0000091c, 0x00000000, 0x00000000, 0x0000092c, 0x00000998,
3766 0x00000000, 0x00000000, 0x000009dc, 0x00000a70, 0x00000000, 0x00000000, 0x00000acc, 0x00000ae0,
3767 0x00000001, 0x00000000, 0x00000af4, 0x00000b08, 0x00000000, 0x00000000, 0x00001154, 0x00000000,
3768 0x00000002, 0x0000112c, 0x00000000, 0x0000002a, 0x00000092, 0x00000000, 0x00000b1c, 0x00000b18,
3769 0x00000093, 0x00000000, 0x00000b34, 0x00000b30, 0x00000091, 0x00000000, 0x00000b4c, 0x00000b48,
3770 0x00000091, 0x00000001, 0x00000b6c, 0x00000b68, 0x00000091, 0x00000002, 0x00000b8c, 0x00000b88,
3771 0x00000091, 0x00000003, 0x00000bac, 0x00000ba8, 0x00000091, 0x00000004, 0x00000bcc, 0x00000bc8,
3772 0x00000091, 0x00000005, 0x00000bec, 0x00000be8, 0x00000091, 0x00000006, 0x00000c0c, 0x00000c08,
3773 0x00000091, 0x00000007, 0x00000c2c, 0x00000c28, 0x00000084, 0x00000000, 0x00000c4c, 0x00000c48,
3774 0x00000084, 0x00000001, 0x00000c6c, 0x00000c68, 0x00000084, 0x00000002, 0x00000c8c, 0x00000c88,
3775 0x00000084, 0x00000003, 0x00000cac, 0x00000ca8, 0x00000084, 0x00000004, 0x00000ccc, 0x00000cc8,
3776 0x00000084, 0x00000005, 0x00000cec, 0x00000ce8, 0x00000084, 0x00000006, 0x00000d0c, 0x00000d08,
3777 0x00000084, 0x00000007, 0x00000d2c, 0x00000d28, 0x00000085, 0x00000000, 0x00000d58, 0x00000d48,
3778 0x00000085, 0x00000001, 0x00000d84, 0x00000d74, 0x00000085, 0x00000002, 0x00000db0, 0x00000da0,
3779 0x00000085, 0x00000003, 0x00000ddc, 0x00000dcc, 0x00000085, 0x00000004, 0x00000e08, 0x00000df8,
3780 0x00000085, 0x00000005, 0x00000e34, 0x00000e24, 0x00000085, 0x00000006, 0x00000e60, 0x00000e50,
3781 0x00000085, 0x00000007, 0x00000e8c, 0x00000e7c, 0x00000087, 0x00000000, 0x00000eb8, 0x00000ea8,
3782 0x00000087, 0x00000001, 0x00000ee4, 0x00000ed4, 0x00000087, 0x00000002, 0x00000f10, 0x00000f00,
3783 0x00000087, 0x00000003, 0x00000f3c, 0x00000f2c, 0x00000087, 0x00000004, 0x00000f68, 0x00000f58,
3784 0x00000087, 0x00000005, 0x00000f94, 0x00000f84, 0x00000087, 0x00000006, 0x00000fc0, 0x00000fb0,
3785 0x00000087, 0x00000007, 0x00000fec, 0x00000fdc, 0x00000086, 0x00000000, 0x00001018, 0x00001008,
3786 0x00000086, 0x00000001, 0x00001044, 0x00001034, 0x00000086, 0x00000002, 0x00001070, 0x00001060,
3787 0x0000000e, 0x00000000, 0x00001090, 0x0000108c, 0x00000014, 0x00000000, 0x000010b0, 0x000010ac,
3788 0x00000012, 0x00000000, 0x000010d0, 0x000010cc, 0x00000041, 0x00000000, 0x000010f0, 0x000010ec,
3789 0x00000042, 0x00000000, 0x00001110, 0x0000110c, 0x0000114c, 0x00000000, 0x00000001, 0x00000092,
3790 0x00000000, 0x00001138, 0x00001134, 0x00000008, 0x0000001f, 0x00000009, 0x00000ad0, 0xffff0300,
3791 0x00d9fffe, 0x42415443, 0x0000001c, 0x0000032f, 0xffff0300, 0x0000000b, 0x0000001c, 0x00000000,
3792 0x00000328, 0x000000f8, 0x00000001, 0x00000001, 0x00000100, 0x00000110, 0x00000120, 0x00080002,
3793 0x00000002, 0x0000012c, 0x0000013c, 0x0000015c, 0x00060002, 0x00000002, 0x00000164, 0x00000174,
3794 0x00000194, 0x00000002, 0x00000003, 0x000001a0, 0x000001b0, 0x000001e0, 0x000a0002, 0x00000002,
3795 0x000001e8, 0x000001f8, 0x00000218, 0x000c0002, 0x00000002, 0x00000224, 0x00000234, 0x00000254,
3796 0x00030002, 0x00000003, 0x0000025c, 0x0000026c, 0x0000029c, 0x00050000, 0x00000001, 0x000002a8,
3797 0x000002b8, 0x000002d0, 0x00000000, 0x00000005, 0x000002dc, 0x000002b8, 0x000002ec, 0x00000003,
3798 0x00000001, 0x000002f8, 0x00000000, 0x00000308, 0x00010003, 0x00000001, 0x00000318, 0x00000000,
3799 0x56695f67, 0x00746365, 0x00020001, 0x00040001, 0x00000001, 0x00000000, 0x00000004, 0x00000003,
3800 0x00000002, 0x00000001, 0x3278326d, 0x756c6f63, 0xab006e6d, 0x00030003, 0x00020002, 0x00000001,
3801 0x00000000, 0x41300000, 0x41a80000, 0x00000000, 0x00000000, 0x41400000, 0x41b00000, 0x00000000,
3802 0x00000000, 0x3278326d, 0x00776f72, 0x00030002, 0x00020002, 0x00000001, 0x00000000, 0x41300000,
3803 0x41400000, 0x00000000, 0x00000000, 0x41a80000, 0x41b00000, 0x00000000, 0x00000000, 0x3378326d,
3804 0x756c6f63, 0xab006e6d, 0x00030003, 0x00030002, 0x00000001, 0x00000000, 0x41300000, 0x41a80000,
3805 0x00000000, 0x00000000, 0x41400000, 0x41b00000, 0x00000000, 0x00000000, 0x41500000, 0x41b80000,
3806 0x00000000, 0x00000000, 0x3378326d, 0x00776f72, 0x00030002, 0x00030002, 0x00000001, 0x00000000,
3807 0x41300000, 0x41400000, 0x41500000, 0x00000000, 0x41a80000, 0x41b00000, 0x41b80000, 0x00000000,
3808 0x3278336d, 0x756c6f63, 0xab006e6d, 0x00030003, 0x00020003, 0x00000001, 0x00000000, 0x41300000,
3809 0x41a80000, 0x41f80000, 0x00000000, 0x41400000, 0x41b00000, 0x42000000, 0x00000000, 0x3278336d,
3810 0x00776f72, 0x00030002, 0x00020003, 0x00000001, 0x00000000, 0x41300000, 0x41400000, 0x00000000,
3811 0x00000000, 0x41a80000, 0x41b00000, 0x00000000, 0x00000000, 0x41f80000, 0x42000000, 0x00000000,
3812 0x00000000, 0x7832626d, 0x6c6f6333, 0x006e6d75, 0x00010003, 0x00030002, 0x00000001, 0x00000000,
3813 0xffffffff, 0x00000000, 0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0x7832626d, 0x776f7233,
3814 0xababab00, 0x00010002, 0x00030002, 0x00000001, 0x00000000, 0x706d6173, 0x3172656c, 0xababab00,
3815 0x000c0004, 0x00010001, 0x00000001, 0x00000000, 0x706d6173, 0x7372656c, 0x7272615f, 0xab007961,
3816 0x000c0004, 0x00010001, 0x00000002, 0x00000000, 0x335f7370, 0x4d00305f, 0x6f726369, 0x74666f73,
3817 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932,
3818 0x332e3235, 0x00313131, 0x05000051, 0xa00f000e, 0x3d2aaaa4, 0xbf000000, 0x3f800000, 0xbe22f983,
3819 0x05000051, 0xa00f000f, 0x40c90fdb, 0xc0490fdb, 0xb4878163, 0x37cfb5a1, 0x05000051, 0xa00f0010,
3820 0x00000000, 0x3e22f983, 0x3e800000, 0xbab609ba, 0x0200001f, 0x80000005, 0x90030000, 0x0200001f,
3821 0x8000000a, 0x900f0001, 0x0200001f, 0x90000000, 0xa00f0800, 0x0200001f, 0x90000000, 0xa00f0801,
3822 0x03000005, 0x80030000, 0xa0e40007, 0x90550001, 0x04000004, 0x80030000, 0x90000001, 0xa0e40006,
3823 0x80e40000, 0x03000002, 0x80030000, 0x80e40000, 0x90e40001, 0x02000001, 0x80010001, 0xa0000010,
3824 0x0400005a, 0x80010002, 0x90e40001, 0xa0e40008, 0x80000001, 0x0400005a, 0x80020002, 0x90e40001,
3825 0xa0e40009, 0x80000001, 0x03000002, 0x80030000, 0x80e40000, 0x80e40002, 0x03000005, 0x800c0000,
3826 0xa0440004, 0x90550001, 0x04000004, 0x800c0000, 0x90000001, 0xa0440003, 0x80e40000, 0x04000004,
3827 0x800c0000, 0x90aa0001, 0xa0440005, 0x80e40000, 0x03000002, 0x80030000, 0x80ee0000, 0x80e40000,
3828 0x03000008, 0x80010002, 0x90e40001, 0xa0e4000c, 0x03000008, 0x80020002, 0x90e40001, 0xa0e4000d,
3829 0x03000002, 0x80030000, 0x80e40000, 0x80e40002, 0x03000005, 0x800e0001, 0xa090000b, 0x90550001,
3830 0x04000004, 0x800e0001, 0x90000001, 0xa090000a, 0x80e40001, 0x02000001, 0x80040000, 0x90aa0001,
3831 0x03000002, 0x80070000, 0x80e40000, 0x80f90001, 0x0400005a, 0x80010002, 0x90e40001, 0xa0e40000,
3832 0x80000001, 0x0400005a, 0x80020002, 0x90e40001, 0xa0e40001, 0x80000001, 0x0400005a, 0x80040002,
3833 0x90e40001, 0xa0e40002, 0x80000001, 0x03000002, 0x80070000, 0x80e40000, 0x80e40002, 0x02000001,
3834 0x80070003, 0x80e40000, 0x01000026, 0xf0e40000, 0x03000002, 0x80070003, 0x80e40002, 0x80e40003,
3835 0x00000027, 0x01000028, 0xe0e40804, 0x02000001, 0x80080003, 0x90ff0001, 0x04000004, 0x800f0000,
3836 0x80e40003, 0xa0550010, 0xa0aa0010, 0x02000013, 0x800f0000, 0x80e40000, 0x04000004, 0x800f0000,
3837 0x80e40000, 0xa000000f, 0xa055000f, 0x03000005, 0x800f0000, 0x80e40000, 0x80e40000, 0x04000004,
3838 0x800f0002, 0x80e40000, 0xa0aa000f, 0xa0ff000f, 0x04000004, 0x800f0002, 0x80e40000, 0x80e40002,
3839 0xa0ff0010, 0x04000004, 0x800f0002, 0x80e40000, 0x80e40002, 0xa000000e, 0x04000004, 0x800f0002,
3840 0x80e40000, 0x80e40002, 0xa055000e, 0x04000004, 0x800f0000, 0x80e40000, 0x80e40002, 0x80e40003,
3841 0x03000002, 0x800f0000, 0x80e40000, 0xa0aa000e, 0x04000004, 0x800f0002, 0x80e40000, 0xa1ff000e,
3842 0xa155000e, 0x02000013, 0x800f0002, 0x80e40002, 0x04000004, 0x800f0002, 0x80e40002, 0xa000000f,
3843 0xa055000f, 0x03000005, 0x800f0002, 0x80e40002, 0x80e40002, 0x04000004, 0x800f0004, 0x80e40002,
3844 0xa0aa000f, 0xa0ff000f, 0x04000004, 0x800f0004, 0x80e40002, 0x80e40004, 0xa0ff0010, 0x04000004,
3845 0x800f0004, 0x80e40002, 0x80e40004, 0xa000000e, 0x04000004, 0x800f0004, 0x80e40002, 0x80e40004,
3846 0xa055000e, 0x04000004, 0x800f0000, 0x80e40002, 0x80e40004, 0x80e40000, 0x03000002, 0x800f0003,
3847 0x80e40000, 0xa0aa000e, 0x0400005a, 0x80010000, 0x80e40003, 0xa0e40000, 0x80000001, 0x0400005a,
3848 0x80020000, 0x80e40003, 0xa0e40001, 0x80000001, 0x0400005a, 0x80040000, 0x80e40003, 0xa0e40002,
3849 0x80000001, 0x03000002, 0x80070000, 0x80e40000, 0x80e40003, 0x03000005, 0x800e0001, 0x80550000,
3850 0xa090000b, 0x04000004, 0x800e0001, 0x80000000, 0xa090000a, 0x80e40001, 0x03000002, 0x80070003,
3851 0x80e40000, 0x80f90001, 0x03000008, 0x80010000, 0x80e40003, 0xa0e4000c, 0x03000008, 0x80020000,
3852 0x80e40003, 0xa0e4000d, 0x03000002, 0x80030000, 0x80e40000, 0x80e40003, 0x03000005, 0x800c0000,
3853 0x80550000, 0xa0440004, 0x04000004, 0x800c0000, 0x80000000, 0xa0440003, 0x80e40000, 0x04000004,
3854 0x800c0000, 0x80aa0003, 0xa0440005, 0x80e40000, 0x03000002, 0x80030003, 0x80ee0000, 0x80e40000,
3855 0x0000002a, 0x02000001, 0x80080003, 0x90ff0001, 0x0000002b, 0x01000028, 0xe0e40805, 0x04000004,
3856 0x800f0000, 0x80e40003, 0xa0550010, 0xa0aa0010, 0x02000013, 0x800f0000, 0x80e40000, 0x04000004,
3857 0x800f0000, 0x80e40000, 0xa000000f, 0xa055000f, 0x03000005, 0x800f0000, 0x80e40000, 0x80e40000,
3858 0x04000004, 0x800f0002, 0x80e40000, 0xa0aa000f, 0xa0ff000f, 0x04000004, 0x800f0002, 0x80e40000,
3859 0x80e40002, 0xa0ff0010, 0x04000004, 0x800f0002, 0x80e40000, 0x80e40002, 0xa000000e, 0x04000004,
3860 0x800f0002, 0x80e40000, 0x80e40002, 0xa055000e, 0x04000004, 0x800f0000, 0x80e40000, 0x80e40002,
3861 0x80e40003, 0x03000002, 0x800f0000, 0x80e40000, 0xa0aa000e, 0x04000004, 0x800f0002, 0x80e40000,
3862 0xa1ff000e, 0xa155000e, 0x02000013, 0x800f0002, 0x80e40002, 0x04000004, 0x800f0002, 0x80e40002,
3863 0xa000000f, 0xa055000f, 0x03000005, 0x800f0002, 0x80e40002, 0x80e40002, 0x04000004, 0x800f0004,
3864 0x80e40002, 0xa0aa000f, 0xa0ff000f, 0x04000004, 0x800f0004, 0x80e40002, 0x80e40004, 0xa0ff0010,
3865 0x04000004, 0x800f0004, 0x80e40002, 0x80e40004, 0xa000000e, 0x04000004, 0x800f0004, 0x80e40002,
3866 0x80e40004, 0xa055000e, 0x04000004, 0x800f0000, 0x80e40002, 0x80e40004, 0x80e40000, 0x03000002,
3867 0x800f0003, 0x80e40000, 0xa0aa000e, 0x0400005a, 0x80010000, 0x80e40003, 0xa0e40000, 0x80000001,
3868 0x0400005a, 0x80020000, 0x80e40003, 0xa0e40001, 0x80000001, 0x0400005a, 0x80040000, 0x80e40003,
3869 0xa0e40002, 0x80000001, 0x03000002, 0x80070000, 0x80e40000, 0x80e40003, 0x03000005, 0x80070001,
3870 0x80550000, 0xa0e4000b, 0x04000004, 0x80070001, 0x80000000, 0xa0e4000a, 0x80e40001, 0x03000002,
3871 0x80070003, 0x80e40000, 0x80e40001, 0x03000008, 0x80010000, 0x80e40003, 0xa0e4000c, 0x03000008,
3872 0x80020000, 0x80e40003, 0xa0e4000d, 0x03000002, 0x80030000, 0x80e40000, 0x80e40003, 0x03000005,
3873 0x800c0000, 0x80550000, 0xa0440004, 0x04000004, 0x800c0000, 0x80000000, 0xa0440003, 0x80e40000,
3874 0x04000004, 0x800c0000, 0x80aa0003, 0xa0440005, 0x80e40000, 0x03000002, 0x80030003, 0x80ee0000,
3875 0x80e40000, 0x0000002b, 0x03000042, 0x800f0000, 0x90e40000, 0xa0e40800, 0x03000002, 0x800f0000,
3876 0x80e40000, 0x80e40003, 0x03000042, 0x800f0001, 0x90e40000, 0xa0e40801, 0x03000002, 0x800f0800,
3877 0x80e40000, 0x80e40001, 0x0000ffff, 0x00000007, 0x00000b6c, 0xfffe0300, 0x013cfffe, 0x42415443,
3878 0x0000001c, 0x000004bb, 0xfffe0300, 0x0000000c, 0x0000001c, 0x00000000, 0x000004b4, 0x0000010c,
3879 0x00200002, 0x00000001, 0x00000114, 0x00000124, 0x00000134, 0x001d0002, 0x00000002, 0x0000013c,
3880 0x0000014c, 0x0000016c, 0x001f0002, 0x00000001, 0x00000174, 0x00000184, 0x00000194, 0x00100002,
3881 0x00000004, 0x000001a0, 0x000001b0, 0x000001f0, 0x00140002, 0x00000003, 0x000001f8, 0x00000208,
3882 0x00000238, 0x00170002, 0x00000003, 0x00000244, 0x00000254, 0x00000284, 0x000c0002, 0x00000004,
3883 0x0000028c, 0x0000029c, 0x000002dc, 0x00020003, 0x00000001, 0x000002e8, 0x00000000, 0x000002f8,
3884 0x00000003, 0x00000002, 0x00000308, 0x00000000, 0x00000318, 0x001a0002, 0x00000003, 0x00000370,
3885 0x00000380, 0x000003b0, 0x00000002, 0x00000006, 0x000003b4, 0x000003c4, 0x00000424, 0x00060002,
3886 0x00000006, 0x00000444, 0x00000454, 0x31727261, 0xababab00, 0x00030000, 0x00010001, 0x00000001,
3887 0x00000000, 0x42b60000, 0x00000000, 0x00000000, 0x00000000, 0x32727261, 0xababab00, 0x00030000,
3888 0x00010001, 0x00000002, 0x00000000, 0x42b80000, 0x00000000, 0x00000000, 0x00000000, 0x42ba0000,
3889 0x00000000, 0x00000000, 0x00000000, 0x6f505f67, 0xab003173, 0x00030001, 0x00040001, 0x00000001,
3890 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3478336d, 0x756c6f63, 0xab006e6d,
3891 0x00030003, 0x00040003, 0x00000001, 0x00000000, 0x41300000, 0x41a80000, 0x41f80000, 0x00000000,
3892 0x41400000, 0x41b00000, 0x42000000, 0x00000000, 0x41500000, 0x41b80000, 0x42040000, 0x00000000,
3893 0x41600000, 0x41c00000, 0x42080000, 0x00000000, 0x3478336d, 0x00776f72, 0x00030002, 0x00040003,
3894 0x00000001, 0x00000000, 0x41300000, 0x41400000, 0x41500000, 0x41600000, 0x41a80000, 0x41b00000,
3895 0x41b80000, 0x41c00000, 0x41f80000, 0x42000000, 0x42040000, 0x42080000, 0x3378346d, 0x756c6f63,
3896 0xab006e6d, 0x00030003, 0x00030004, 0x00000001, 0x00000000, 0x41300000, 0x41a80000, 0x41f80000,
3897 0x42240000, 0x41400000, 0x41b00000, 0x42000000, 0x42280000, 0x41500000, 0x41b80000, 0x42040000,
3898 0x422c0000, 0x3378346d, 0x00776f72, 0x00030002, 0x00030004, 0x00000001, 0x00000000, 0x41300000,
3899 0x41400000, 0x41500000, 0x00000000, 0x41a80000, 0x41b00000, 0x41b80000, 0x00000000, 0x41f80000,
3900 0x42000000, 0x42040000, 0x00000000, 0x42240000, 0x42280000, 0x422c0000, 0x00000000, 0x706d6173,
3901 0x3172656c, 0xababab00, 0x000c0004, 0x00010001, 0x00000001, 0x00000000, 0x706d6173, 0x7372656c,
3902 0x7272615f, 0xab007961, 0x000c0004, 0x00010001, 0x00000002, 0x00000000, 0x00317374, 0xab003176,
3903 0x00030001, 0x00030001, 0x00000001, 0x00000000, 0xab007666, 0x00030000, 0x00010001, 0x00000001,
3904 0x00000000, 0xab003276, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x0000031c, 0x00000320,
3905 0x00000330, 0x00000334, 0x00000344, 0x00000348, 0x00000005, 0x00080001, 0x00030001, 0x00000358,
3906 0x41100000, 0x41200000, 0x41300000, 0x00000000, 0x41400000, 0x00000000, 0x00000000, 0x00000000,
3907 0x41500000, 0x41600000, 0x41700000, 0x41800000, 0x00327374, 0x00000005, 0x00080001, 0x00030002,
3908 0x00000358, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3909 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x40000000, 0x40400000,
3910 0x00000000, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x40a00000, 0x40c00000, 0x40e00000,
3911 0x41000000, 0x00337374, 0xab007374, 0x00000005, 0x00080001, 0x00030002, 0x00000358, 0x00000428,
3912 0x0000042c, 0x00000005, 0x00100001, 0x00010001, 0x0000043c, 0x3f800000, 0x40000000, 0x40400000,
3913 0x00000000, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x40a00000, 0x40c00000, 0x40e00000,
3914 0x41000000, 0x41100000, 0x41200000, 0x41300000, 0x00000000, 0x41400000, 0x00000000, 0x00000000,
3915 0x00000000, 0x41500000, 0x41600000, 0x41700000, 0x41800000, 0x335f7376, 0x4d00305f, 0x6f726369,
3916 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
3917 0x392e3932, 0x332e3235, 0x00313131, 0x00f0fffe, 0x53455250, 0x46580201, 0x0047fffe, 0x42415443,
3918 0x0000001c, 0x000000e7, 0x46580201, 0x00000003, 0x0000001c, 0x00000100, 0x000000e4, 0x00000058,
3919 0x00020002, 0x00000001, 0x00000060, 0x00000070, 0x00000080, 0x00030002, 0x00000001, 0x00000088,
3920 0x00000070, 0x00000098, 0x00000002, 0x00000002, 0x000000a4, 0x000000b4, 0x6f505f67, 0xab003173,
3921 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3922 0x6f505f67, 0xab003273, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x65535f67, 0x7463656c,
3923 0xab00726f, 0x00030001, 0x00040001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3924 0x00000000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x459c4800, 0x459c5000, 0x459c5800,
3925 0x459c6000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
3926 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x000cfffe, 0x49535250,
3927 0x00000021, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000001, 0x00000021,
3928 0x00000001, 0x00000000, 0x00000000, 0x0032fffe, 0x54494c43, 0x00000018, 0x00000000, 0x00000000,
3929 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3930 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3931 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3932 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3fe00000,
3933 0x00000000, 0xc0000000, 0x00000000, 0xc0080000, 0x00000000, 0x00000000, 0x00000000, 0x40100000,
3934 0x00000000, 0x40140000, 0x00000000, 0x40180000, 0x00000000, 0x401c0000, 0x0064fffe, 0x434c5846,
3935 0x00000009, 0xa0500004, 0x00000002, 0x00000000, 0x00000001, 0x00000011, 0x00000000, 0x00000002,
3936 0x00000008, 0x00000000, 0x00000007, 0x00000000, 0x20400004, 0x00000002, 0x00000000, 0x00000007,
3937 0x00000000, 0x00000000, 0x00000001, 0x00000014, 0x00000000, 0x00000007, 0x00000004, 0xa0500004,
3938 0x00000002, 0x00000000, 0x00000001, 0x00000012, 0x00000000, 0x00000002, 0x0000000c, 0x00000000,
3939 0x00000007, 0x00000000, 0x20400004, 0x00000002, 0x00000000, 0x00000007, 0x00000000, 0x00000000,
3940 0x00000001, 0x00000014, 0x00000000, 0x00000007, 0x00000008, 0x10100004, 0x00000001, 0x00000000,
3941 0x00000007, 0x00000008, 0x00000000, 0x00000007, 0x00000000, 0x20400004, 0x00000002, 0x00000000,
3942 0x00000007, 0x00000000, 0x00000000, 0x00000007, 0x00000004, 0x00000000, 0x00000007, 0x0000000c,
3943 0xa0200001, 0x00000002, 0x00000000, 0x00000001, 0x00000010, 0x00000000, 0x00000002, 0x00000005,
3944 0x00000000, 0x00000007, 0x00000000, 0xa0500004, 0x00000002, 0x00000000, 0x00000007, 0x00000000,
3945 0x00000000, 0x00000007, 0x0000000c, 0x00000000, 0x00000007, 0x00000004, 0x20400004, 0x00000002,
3946 0x00000000, 0x00000007, 0x00000004, 0x00000000, 0x00000007, 0x00000008, 0x00000000, 0x00000004,
3947 0x00000084, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x05000051, 0xa00f0022, 0x00000000, 0x00000000,
3948 0x00000000, 0x00000000, 0x0200001f, 0x80000000, 0x900f0000, 0x0200001f, 0x90000000, 0xa00f0801,
3949 0x0200001f, 0x90000000, 0xa00f0802, 0x0200001f, 0x80000000, 0xe00f0000, 0x0200001f, 0x80000005,
3950 0xe0030001, 0x0200001f, 0x8000000a, 0xe00f0002, 0x03000009, 0x80010000, 0x90e40000, 0xa0e40017,
3951 0x03000009, 0x80020000, 0x90e40000, 0xa0e40018, 0x03000009, 0x80040000, 0x90e40000, 0xa0e40019,
3952 0x03000008, 0x80010001, 0x90e40000, 0xa0e40010, 0x03000008, 0x80020001, 0x90e40000, 0xa0e40011,
3953 0x03000008, 0x80040001, 0x90e40000, 0xa0e40012, 0x03000008, 0x80080001, 0x90e40000, 0xa0e40013,
3954 0x02000001, 0x80080000, 0xa0000022, 0x03000002, 0x800f0000, 0x80e40000, 0x80e40001, 0x03000005,
3955 0x800f0001, 0xa0e40015, 0x90550000, 0x04000004, 0x800f0001, 0x90000000, 0xa0e40014, 0x80e40001,
3956 0x04000004, 0x800f0001, 0x90aa0000, 0xa0e40016, 0x80e40001, 0x03000002, 0x800f0000, 0x80e40000,
3957 0x80e40001, 0x03000005, 0x80070001, 0xa0e4000d, 0x90550000, 0x04000004, 0x80070001, 0x90000000,
3958 0xa0e4000c, 0x80e40001, 0x04000004, 0x80070001, 0x90aa0000, 0xa0e4000e, 0x80e40001, 0x04000004,
3959 0x80070001, 0x90ff0000, 0xa0e4000f, 0x80e40001, 0x03000002, 0x80070000, 0x80e40000, 0x80e40001,
3960 0x04000004, 0x800f0000, 0x90e40000, 0xa000001b, 0x80e40000, 0x03000009, 0x80010001, 0x90e40000,
3961 0xa0e4001c, 0x03000002, 0x800f0000, 0x80e40000, 0x80000001, 0x04000004, 0x800f0000, 0x90e40000,
3962 0xa0000004, 0x80e40000, 0x03000009, 0x80010001, 0x90e40000, 0xa0e40005, 0x03000002, 0x800f0000,
3963 0x80e40000, 0x80000001, 0x04000004, 0x800f0000, 0x90e40000, 0xa0000020, 0x80e40000, 0x04000004,
3964 0x800f0000, 0x90e40000, 0xa000001e, 0x80e40000, 0x04000004, 0x800f0000, 0x90e40000, 0xa000000a,
3965 0x80e40000, 0x03000009, 0x80010001, 0x90e40000, 0xa0e4000b, 0x03000002, 0x800f0000, 0x80e40000,
3966 0x80000001, 0x0300005f, 0x800f0001, 0xa0e4001f, 0xa0e40802, 0x03000002, 0x800f0000, 0x80e40000,
3967 0x80e40001, 0x0300005f, 0x800f0001, 0xa0e4001f, 0xa0e40801, 0x03000002, 0xe00f0002, 0x80e40000,
3968 0x80e40001, 0x02000001, 0xe00f0000, 0xa0e40021, 0x02000001, 0xe0030001, 0xa0000022, 0x0000ffff,
3969 0x00000008, 0x000001dc, 0xfffe0300, 0x0016fffe, 0x42415443, 0x0000001c, 0x00000023, 0xfffe0300,
3970 0x00000000, 0x00000000, 0x00000000, 0x0000001c, 0x335f7376, 0x4d00305f, 0x6f726369, 0x74666f73,
3971 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932,
3972 0x332e3235, 0x00313131, 0x0045fffe, 0x53455250, 0x46580201, 0x0024fffe, 0x42415443, 0x0000001c,
3973 0x0000005b, 0x46580201, 0x00000001, 0x0000001c, 0x00000100, 0x00000058, 0x00000030, 0x00000002,
3974 0x00000001, 0x00000038, 0x00000048, 0x6f505f67, 0xab003173, 0x00030001, 0x00040001, 0x00000001,
3975 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73,
3976 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932,
3977 0x332e3235, 0x00313131, 0x000cfffe, 0x49535250, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
3978 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0002fffe,
3979 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10000004, 0x00000001, 0x00000000,
3980 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
3981 0x05000051, 0xa00f0001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0200001f, 0x80000000,
3982 0xe00f0000, 0x0200001f, 0x80000005, 0xe0030001, 0x0200001f, 0x8000000a, 0xe00f0002, 0x02000001,
3983 0xe00f0000, 0xa0e40000, 0x02000001, 0xe0030001, 0xa0000001, 0x02000001, 0xe00f0002, 0xa0000001,
3984 0x0000ffff, 0x00000005, 0x00000000, 0x00000004, 0x00000000, 0x00000001, 0x0000002c, 0xfffe0101,
3985 0x00000051, 0xa00f0000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x00000001, 0xc00f0000,
3986 0xa0e40000, 0x0000ffff, 0x00000002, 0x0000002c, 0xfffe0101, 0x00000051, 0xa00f0000, 0x40000000,
3987 0x40000000, 0x40000000, 0x40000000, 0x00000001, 0xc00f0000, 0xa0e40000, 0x0000ffff, 0x00000003,
3988 0x0000002c, 0xfffe0200, 0x05000051, 0xa00f0000, 0x40400000, 0x40400000, 0x40400000, 0x40400000,
3989 0x02000001, 0xc00f0000, 0xa0e40000, 0x0000ffff, 0x00000000, 0x00000001, 0xffffffff, 0x00000000,
3990 0x00000002, 0x000000e8, 0x00000008, 0x615f7376, 0x00007272, 0x46580200, 0x0024fffe, 0x42415443,
3991 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x00000100, 0x00000058, 0x00000030,
3992 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x56695f67, 0x00746365, 0x00020001, 0x00040001,
3993 0x00000001, 0x00000000, 0x40800000, 0x40400000, 0x40000000, 0x3f800000, 0x4d007874, 0x6f726369,
3994 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
3995 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846,
3996 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000004,
3997 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000029,
3998 0x00000000, 0x00000198, 0x46580200, 0x0053fffe, 0x42415443, 0x0000001c, 0x00000117, 0x46580200,
3999 0x00000001, 0x0000001c, 0x20000100, 0x00000114, 0x00000030, 0x00000002, 0x00000005, 0x000000a4,
4000 0x000000b4, 0x00337374, 0x76007374, 0xabab0031, 0x00030001, 0x00030001, 0x00000001, 0x00000000,
4001 0xab007666, 0x00030000, 0x00010001, 0x00000001, 0x00000000, 0xab003276, 0x00030001, 0x00040001,
4002 0x00000001, 0x00000000, 0x00000037, 0x0000003c, 0x0000004c, 0x00000050, 0x00000060, 0x00000064,
4003 0x00000005, 0x00080001, 0x00030002, 0x00000074, 0x00000034, 0x0000008c, 0x00000005, 0x00100001,
4004 0x00010001, 0x0000009c, 0x3f800000, 0x40000000, 0x40400000, 0x00000000, 0x40800000, 0x00000000,
4005 0x00000000, 0x00000000, 0x40a00000, 0x40c00000, 0x40e00000, 0x41000000, 0x41100000, 0x41200000,
4006 0x41300000, 0x00000000, 0x41400000, 0x00000000, 0x00000000, 0x00000000, 0x41500000, 0x41600000,
4007 0x41700000, 0x41800000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c,
4008 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe,
4009 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000,
4010 0x00000002, 0x00000010, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
4011 0x00000000, 0x00000000, 0xffffffff, 0x00000028, 0x00000000, 0x00000198, 0x46580200, 0x0053fffe,
4012 0x42415443, 0x0000001c, 0x00000117, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000114,
4013 0x00000030, 0x00000002, 0x00000002, 0x000000a4, 0x000000b4, 0x00337374, 0x76007374, 0xabab0031,
4014 0x00030001, 0x00030001, 0x00000001, 0x00000000, 0xab007666, 0x00030000, 0x00010001, 0x00000001,
4015 0x00000000, 0xab003276, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000037, 0x0000003c,
4016 0x0000004c, 0x00000050, 0x00000060, 0x00000064, 0x00000005, 0x00080001, 0x00030002, 0x00000074,
4017 0x00000034, 0x0000008c, 0x00000005, 0x00100001, 0x00010001, 0x0000009c, 0x3f800000, 0x40000000,
4018 0x40400000, 0x00000000, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x40a00000, 0x40c00000,
4019 0x40e00000, 0x41000000, 0x41100000, 0x41200000, 0x41300000, 0x00000000, 0x41400000, 0x00000000,
4020 0x00000000, 0x00000000, 0x41500000, 0x41600000, 0x41700000, 0x41800000, 0x4d007874, 0x6f726369,
4021 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
4022 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846,
4023 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004,
4024 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000027,
4025 0x00000000, 0x0000017c, 0x46580200, 0x004cfffe, 0x42415443, 0x0000001c, 0x000000fb, 0x46580200,
4026 0x00000001, 0x0000001c, 0x20000100, 0x000000f8, 0x00000030, 0x00000002, 0x00000005, 0x00000088,
4027 0x00000098, 0x00327374, 0xab003176, 0x00030001, 0x00030001, 0x00000001, 0x00000000, 0xab007666,
4028 0x00030000, 0x00010001, 0x00000001, 0x00000000, 0xab003276, 0x00030001, 0x00040001, 0x00000001,
4029 0x00000000, 0x00000034, 0x00000038, 0x00000048, 0x0000004c, 0x0000005c, 0x00000060, 0x00000005,
4030 0x00080001, 0x00030002, 0x00000070, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4031 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000,
4032 0x40000000, 0x40400000, 0x00000000, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x40a00000,
4033 0x40c00000, 0x40e00000, 0x41000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
4034 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
4035 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10000001, 0x00000001,
4036 0x00000000, 0x00000002, 0x00000010, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f,
4037 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000026, 0x00000000, 0x0000017c, 0x46580200,
4038 0x004cfffe, 0x42415443, 0x0000001c, 0x000000fb, 0x46580200, 0x00000001, 0x0000001c, 0x20000100,
4039 0x000000f8, 0x00000030, 0x00000002, 0x00000002, 0x00000088, 0x00000098, 0x00327374, 0xab003176,
4040 0x00030001, 0x00030001, 0x00000001, 0x00000000, 0xab007666, 0x00030000, 0x00010001, 0x00000001,
4041 0x00000000, 0xab003276, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000034, 0x00000038,
4042 0x00000048, 0x0000004c, 0x0000005c, 0x00000060, 0x00000005, 0x00080001, 0x00030002, 0x00000070,
4043 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4044 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x40000000, 0x40400000, 0x00000000,
4045 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x40a00000, 0x40c00000, 0x40e00000, 0x41000000,
4046 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320,
4047 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
4048 0x000cfffe, 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000004,
4049 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000,
4050 0xffffffff, 0x00000024, 0x00000000, 0x00000770, 0x46580200, 0x008cfffe, 0x42415443, 0x0000001c,
4051 0x000001fb, 0x46580200, 0x00000004, 0x0000001c, 0x20000100, 0x000001f8, 0x0000006c, 0x000b0002,
4052 0x00000001, 0x00000074, 0x00000084, 0x00000094, 0x00060002, 0x00000004, 0x0000009c, 0x000000ac,
4053 0x000000ec, 0x00000002, 0x00000006, 0x00000160, 0x00000170, 0x000001d0, 0x000a0002, 0x00000001,
4054 0x000001d8, 0x000001e8, 0x56695f67, 0x00746365, 0x00020001, 0x00040001, 0x00000001, 0x00000000,
4055 0x40800000, 0x40400000, 0x40000000, 0x3f800000, 0x3478346d, 0xababab00, 0x00030003, 0x00040004,
4056 0x00000001, 0x00000000, 0x41300000, 0x41a80000, 0x41f80000, 0x42240000, 0x41400000, 0x41b00000,
4057 0x42000000, 0x42280000, 0x41500000, 0x41b80000, 0x42040000, 0x422c0000, 0x41600000, 0x41c00000,
4058 0x42080000, 0x42300000, 0x00337374, 0x76007374, 0xabab0031, 0x00030001, 0x00030001, 0x00000001,
4059 0x00000000, 0xab007666, 0x00030000, 0x00010001, 0x00000001, 0x00000000, 0xab003276, 0x00030001,
4060 0x00040001, 0x00000001, 0x00000000, 0x000000f3, 0x000000f8, 0x00000108, 0x0000010c, 0x0000011c,
4061 0x00000120, 0x00000005, 0x00080001, 0x00030002, 0x00000130, 0x000000f0, 0x00000148, 0x00000005,
4062 0x00100001, 0x00010001, 0x00000158, 0x3f800000, 0x40000000, 0x40400000, 0x00000000, 0x40800000,
4063 0x00000000, 0x00000000, 0x00000000, 0x40a00000, 0x40c00000, 0x40e00000, 0x41000000, 0x41100000,
4064 0x41200000, 0x41300000, 0x00000000, 0x41400000, 0x00000000, 0x00000000, 0x00000000, 0x41500000,
4065 0x41600000, 0x41700000, 0x41800000, 0x33636576, 0xababab00, 0x00030001, 0x00030001, 0x00000001,
4066 0x00000000, 0x447a4000, 0x447a8000, 0x447ac000, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73,
4067 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932,
4068 0x332e3235, 0x00313131, 0x008afffe, 0x54494c43, 0x00000044, 0x00000000, 0x00000000, 0x00000000,
4069 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4070 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4071 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4072 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4073 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4074 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4075 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4076 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4077 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4078 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4079 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4080 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3ff00000, 0x00000000,
4081 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4082 0x3ff00000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4083 0x00000000, 0x00000000, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4084 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3ff00000, 0x00000000, 0x40080000, 0x00000000,
4085 0x3ff00000, 0x00000000, 0x40000000, 0x00000000, 0x00000000, 0x00c1fffe, 0x434c5846, 0x0000000e,
4086 0x50000004, 0x00000002, 0x00000000, 0x00000002, 0x00000018, 0x00000001, 0x00000002, 0x0000002e,
4087 0x00000001, 0x0000003c, 0x00000000, 0x00000007, 0x00000000, 0x50000004, 0x00000002, 0x00000000,
4088 0x00000002, 0x0000001c, 0x00000001, 0x00000002, 0x0000002e, 0x00000001, 0x0000003c, 0x00000000,
4089 0x00000007, 0x00000001, 0x50000004, 0x00000002, 0x00000000, 0x00000002, 0x00000020, 0x00000001,
4090 0x00000002, 0x0000002e, 0x00000001, 0x0000003c, 0x00000000, 0x00000007, 0x00000002, 0x50000004,
4091 0x00000002, 0x00000000, 0x00000002, 0x00000024, 0x00000001, 0x00000002, 0x0000002e, 0x00000001,
4092 0x0000003c, 0x00000000, 0x00000007, 0x00000003, 0xa0400001, 0x00000002, 0x00000000, 0x00000002,
4093 0x0000002f, 0x00000000, 0x00000002, 0x0000002f, 0x00000000, 0x00000007, 0x00000004, 0x50000004,
4094 0x00000002, 0x00000000, 0x00000002, 0x00000018, 0x00000001, 0x00000007, 0x00000004, 0x00000001,
4095 0x00000030, 0x00000000, 0x00000007, 0x00000008, 0x50000004, 0x00000002, 0x00000000, 0x00000002,
4096 0x0000001c, 0x00000001, 0x00000007, 0x00000004, 0x00000001, 0x00000030, 0x00000000, 0x00000007,
4097 0x00000009, 0x50000004, 0x00000002, 0x00000000, 0x00000002, 0x00000020, 0x00000001, 0x00000007,
4098 0x00000004, 0x00000001, 0x00000030, 0x00000000, 0x00000007, 0x0000000a, 0x50000004, 0x00000002,
4099 0x00000000, 0x00000002, 0x00000024, 0x00000001, 0x00000007, 0x00000004, 0x00000001, 0x00000030,
4100 0x00000000, 0x00000007, 0x0000000b, 0x50000004, 0x00000002, 0x00000000, 0x00000007, 0x00000000,
4101 0x00000000, 0x00000007, 0x00000008, 0x00000000, 0x00000004, 0x00000000, 0x50000003, 0x00000002,
4102 0x00000000, 0x00000002, 0x00000028, 0x00000001, 0x00000002, 0x0000002e, 0x00000001, 0x00000030,
4103 0x00000000, 0x00000004, 0x00000002, 0x70e00001, 0x00000006, 0x00000000, 0x00000001, 0x00000041,
4104 0x00000000, 0x00000001, 0x00000042, 0x00000000, 0x00000001, 0x00000040, 0x00000001, 0x00000002,
4105 0x0000002f, 0x00000001, 0x00000030, 0x00000001, 0x00000002, 0x0000002f, 0x00000001, 0x00000031,
4106 0x00000001, 0x00000002, 0x0000002f, 0x00000001, 0x00000032, 0x00000000, 0x00000004, 0x00000003,
4107 0xa0500001, 0x00000002, 0x00000000, 0x00000002, 0x0000002c, 0x00000000, 0x00000001, 0x00000040,
4108 0x00000000, 0x00000007, 0x00000000, 0x10000001, 0x00000001, 0x00000001, 0x00000007, 0x00000000,
4109 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000001, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
4110 0x00000000, 0x00000000, 0xffffffff, 0x00000023, 0x00000000, 0x000004ec, 0x46580200, 0x005afffe,
4111 0x42415443, 0x0000001c, 0x00000133, 0x46580200, 0x00000004, 0x0000001c, 0x20000100, 0x00000130,
4112 0x0000006c, 0x00000002, 0x00000003, 0x00000078, 0x00000088, 0x000000b8, 0x000a0002, 0x00000001,
4113 0x000000c0, 0x000000d0, 0x000000e0, 0x00080002, 0x00000001, 0x000000e8, 0x000000f8, 0x00000108,
4114 0x00090002, 0x00000001, 0x00000110, 0x00000120, 0x65535f67, 0x7463656c, 0xab00726f, 0x00030001,
4115 0x00040001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x41200000,
4116 0x41200000, 0x41200000, 0x41200000, 0x459c4800, 0x459c5000, 0x459c5800, 0x459c6000, 0x56695f67,
4117 0x00746365, 0x00020001, 0x00040001, 0x00000001, 0x00000000, 0x40800000, 0x40400000, 0x40000000,
4118 0x3f800000, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000,
4119 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001,
4120 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x4d007874, 0x6f726369, 0x74666f73,
4121 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932,
4122 0x332e3235, 0x00313131, 0x007afffe, 0x54494c43, 0x0000003c, 0x00000000, 0x00000000, 0x00000000,
4123 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4124 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4125 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4126 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4127 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4128 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4129 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4130 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4131 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4132 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4133 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3ff00000, 0x00000000,
4134 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4135 0x3ff00000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4136 0x00000000, 0x00000000, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4137 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3ff00000, 0x0062fffe, 0x434c5846, 0x00000008,
4138 0x50000004, 0x00000002, 0x00000000, 0x00000002, 0x00000020, 0x00000001, 0x00000002, 0x0000002a,
4139 0x00000001, 0x0000002c, 0x00000000, 0x00000004, 0x00000000, 0x10400001, 0x00000001, 0x00000000,
4140 0x00000002, 0x00000025, 0x00000000, 0x00000007, 0x00000000, 0x10100001, 0x00000001, 0x00000000,
4141 0x00000007, 0x00000000, 0x00000000, 0x00000007, 0x00000004, 0xa0400001, 0x00000002, 0x00000000,
4142 0x00000002, 0x00000025, 0x00000000, 0x00000001, 0x0000002c, 0x00000000, 0x00000007, 0x00000000,
4143 0xa0400001, 0x00000002, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000007, 0x00000004,
4144 0x00000000, 0x00000007, 0x00000008, 0x50000004, 0x00000002, 0x00000000, 0x00000002, 0x00000028,
4145 0x00000001, 0x00000007, 0x00000008, 0x00000001, 0x0000002c, 0x00000000, 0x00000004, 0x00000001,
4146 0xa0400001, 0x00000002, 0x00000001, 0x00000002, 0x0000002b, 0x00000002, 0x00000010, 0x00000001,
4147 0x00000002, 0x0000002b, 0x00000002, 0x0000001d, 0x00000000, 0x00000004, 0x00000002, 0xa0400001,
4148 0x00000002, 0x00000001, 0x00000002, 0x00000028, 0x00000002, 0x00000001, 0x00000001, 0x00000002,
4149 0x0000002b, 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f,
4150 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000022, 0x00000000, 0x000002cc, 0x46580200,
4151 0x0033fffe, 0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002, 0x0000001c, 0x20000100,
4152 0x00000094, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002,
4153 0x00000001, 0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001,
4154 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001,
4155 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x4d007874,
4156 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
4157 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x001afffe, 0x54494c43, 0x0000000c, 0x00000000,
4158 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4159 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4160 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0061fffe,
4161 0x434c5846, 0x00000006, 0xa0500001, 0x00000002, 0x00000000, 0x00000002, 0x00000002, 0x00000000,
4162 0x00000002, 0x00000004, 0x00000000, 0x00000007, 0x00000000, 0xa0500001, 0x00000002, 0x00000000,
4163 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000005, 0x00000000, 0x00000007, 0x00000001,
4164 0xa0400001, 0x00000002, 0x00000000, 0x00000007, 0x00000001, 0x00000000, 0x00000007, 0x00000000,
4165 0x00000000, 0x00000004, 0x00000000, 0x70e00001, 0x00000006, 0x00000000, 0x00000002, 0x00000002,
4166 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002,
4167 0x00000004, 0x00000000, 0x00000002, 0x00000005, 0x00000000, 0x00000002, 0x00000006, 0x00000000,
4168 0x00000004, 0x00000001, 0x70e00001, 0x00000008, 0x00000000, 0x00000002, 0x00000002, 0x00000000,
4169 0x00000002, 0x00000002, 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000002, 0x00000000,
4170 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000002,
4171 0x00000005, 0x00000000, 0x00000002, 0x00000005, 0x00000000, 0x00000004, 0x00000002, 0x10000001,
4172 0x00000001, 0x00000000, 0x00000001, 0x00000008, 0x00000000, 0x00000004, 0x00000003, 0xf0f0f0f0,
4173 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000021, 0x00000000, 0x00000248,
4174 0x46580200, 0x003efffe, 0x42415443, 0x0000001c, 0x000000c3, 0x46580200, 0x00000003, 0x0000001c,
4175 0x20000100, 0x000000c0, 0x00000058, 0x00000002, 0x00000001, 0x00000060, 0x00000070, 0x00000080,
4176 0x00010002, 0x00000001, 0x00000088, 0x00000098, 0x000000a8, 0x00020002, 0x00000001, 0x000000b0,
4177 0x00000070, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000,
4178 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001,
4179 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x6576706f, 0x00337463, 0x00030001,
4180 0x00040001, 0x00000001, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
4181 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
4182 0x0022fffe, 0x54494c43, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4183 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4184 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4185 0x00000000, 0x00000000, 0x00000000, 0x812dea11, 0x3d719799, 0x00000000, 0x00000000, 0x00000000,
4186 0x00000000, 0x00000000, 0x00000000, 0x002dfffe, 0x434c5846, 0x00000004, 0xa0500004, 0x00000002,
4187 0x00000000, 0x00000001, 0x0000000c, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000007,
4188 0x00000000, 0x20400004, 0x00000002, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000002,
4189 0x00000000, 0x00000000, 0x00000007, 0x00000004, 0x10100004, 0x00000001, 0x00000000, 0x00000002,
4190 0x00000008, 0x00000000, 0x00000007, 0x00000000, 0x20400004, 0x00000002, 0x00000000, 0x00000007,
4191 0x00000000, 0x00000000, 0x00000007, 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0,
4192 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000020, 0x00000000, 0x000001f0,
4193 0x46580200, 0x0033fffe, 0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002, 0x0000001c,
4194 0x20000100, 0x00000094, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c,
4195 0x00010002, 0x00000001, 0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001, 0x00040001,
4196 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463,
4197 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000,
4198 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320,
4199 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x001afffe, 0x54494c43, 0x0000000c,
4200 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4201 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4202 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4203 0x002afffe, 0x434c5846, 0x00000004, 0x50000004, 0x00000002, 0x00000000, 0x00000002, 0x00000000,
4204 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000001, 0x50000004, 0x00000002,
4205 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004,
4206 0x00000002, 0x10000001, 0x00000001, 0x00000000, 0x00000001, 0x00000008, 0x00000000, 0x00000004,
4207 0x00000000, 0x10000001, 0x00000001, 0x00000000, 0x00000001, 0x00000008, 0x00000000, 0x00000004,
4208 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x0000001f,
4209 0x00000000, 0x000001a8, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200,
4210 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038,
4211 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000,
4212 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
4213 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
4214 0x0012fffe, 0x54494c43, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4215 0x00000000, 0x00000000, 0x00000000, 0x47ae147b, 0x3f847ae1, 0x00000000, 0x00000000, 0x00000000,
4216 0x00000000, 0x00000000, 0x00000000, 0x002ffffe, 0x434c5846, 0x00000005, 0x10300001, 0x00000001,
4217 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000007, 0x00000000, 0x10300001, 0x00000001,
4218 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000007, 0x00000001, 0x10300001, 0x00000001,
4219 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000007, 0x00000002, 0x10300001, 0x00000001,
4220 0x00000000, 0x00000002, 0x00000003, 0x00000000, 0x00000007, 0x00000003, 0xa0500004, 0x00000002,
4221 0x00000000, 0x00000001, 0x00000004, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000004,
4222 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x0000001e,
4223 0x00000000, 0x000000dc, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200,
4224 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038,
4225 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000,
4226 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
4227 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
4228 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10900004, 0x00000001,
4229 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f,
4230 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x0000001d, 0x00000000, 0x000000dc, 0x46580200,
4231 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100,
4232 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f, 0x00317463,
4233 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff,
4234 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320,
4235 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
4236 0x000cfffe, 0x434c5846, 0x00000001, 0x10800004, 0x00000001, 0x00000000, 0x00000002, 0x00000000,
4237 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000,
4238 0xffffffff, 0x0000001c, 0x00000000, 0x00000124, 0x46580200, 0x0033fffe, 0x42415443, 0x0000001c,
4239 0x00000097, 0x46580200, 0x00000002, 0x0000001c, 0x20000100, 0x00000094, 0x00000044, 0x00000002,
4240 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002, 0x00000001, 0x00000074, 0x00000084,
4241 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000,
4242 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
4243 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820,
4244 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235,
4245 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe, 0x434c5846, 0x00000001, 0x20100004,
4246 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000,
4247 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff,
4248 0x0000001b, 0x00000000, 0x00000124, 0x46580200, 0x0033fffe, 0x42415443, 0x0000001c, 0x00000097,
4249 0x46580200, 0x00000002, 0x0000001c, 0x20000100, 0x00000094, 0x00000044, 0x00000002, 0x00000001,
4250 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002, 0x00000001, 0x00000074, 0x00000084, 0x6576706f,
4251 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd,
4252 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x3f800000,
4253 0x40000000, 0xc0400000, 0x40800000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
4254 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
4255 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe, 0x434c5846, 0x00000001, 0x20000004, 0x00000002,
4256 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004,
4257 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x0000001a,
4258 0x00000000, 0x000000dc, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200,
4259 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038,
4260 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000,
4261 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
4262 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
4263 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10400004, 0x00000001,
4264 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f,
4265 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000019, 0x00000000, 0x0000013c, 0x46580200,
4266 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100,
4267 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f, 0x00317463,
4268 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff,
4269 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320,
4270 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
4271 0x0024fffe, 0x434c5846, 0x00000004, 0x10300001, 0x00000001, 0x00000000, 0x00000002, 0x00000000,
4272 0x00000000, 0x00000004, 0x00000000, 0x10300001, 0x00000001, 0x00000000, 0x00000002, 0x00000001,
4273 0x00000000, 0x00000004, 0x00000001, 0x10300001, 0x00000001, 0x00000000, 0x00000002, 0x00000002,
4274 0x00000000, 0x00000004, 0x00000002, 0x10300001, 0x00000001, 0x00000000, 0x00000002, 0x00000003,
4275 0x00000000, 0x00000004, 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000,
4276 0xffffffff, 0x00000018, 0x00000000, 0x000000dc, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c,
4277 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002,
4278 0x00000001, 0x00000038, 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001,
4279 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73,
4280 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932,
4281 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001,
4282 0x10100004, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000,
4283 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000017, 0x00000000,
4284 0x00000124, 0x46580200, 0x0033fffe, 0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002,
4285 0x0000001c, 0x20000100, 0x00000094, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c,
4286 0x0000006c, 0x00010002, 0x00000001, 0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001,
4287 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f,
4288 0x00327463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000,
4289 0x40800000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
4290 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43,
4291 0x00000000, 0x000ffffe, 0x434c5846, 0x00000001, 0x20300004, 0x00000002, 0x00000000, 0x00000002,
4292 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0,
4293 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000016, 0x00000000, 0x00000124,
4294 0x46580200, 0x0033fffe, 0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002, 0x0000001c,
4295 0x20000100, 0x00000094, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c,
4296 0x00010002, 0x00000001, 0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001, 0x00040001,
4297 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463,
4298 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000,
4299 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320,
4300 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
4301 0x000ffffe, 0x434c5846, 0x00000001, 0x20200004, 0x00000002, 0x00000000, 0x00000002, 0x00000000,
4302 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f,
4303 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000015, 0x00000000, 0x00000124, 0x46580200,
4304 0x0033fffe, 0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002, 0x0000001c, 0x20000100,
4305 0x00000094, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002,
4306 0x00000001, 0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001,
4307 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001,
4308 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x4d007874,
4309 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
4310 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe,
4311 0x434c5846, 0x00000001, 0x20400004, 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000,
4312 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
4313 0x00000000, 0x00000000, 0xffffffff, 0x00000014, 0x00000000, 0x00000124, 0x46580200, 0x0033fffe,
4314 0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002, 0x0000001c, 0x20000100, 0x00000094,
4315 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002, 0x00000001,
4316 0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
4317 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001, 0x00040001,
4318 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x4d007874, 0x6f726369,
4319 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
4320 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe, 0x434c5846,
4321 0x00000001, 0x20500004, 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002,
4322 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000,
4323 0x00000000, 0xffffffff, 0x00000013, 0x00000000, 0x0000013c, 0x46580200, 0x0024fffe, 0x42415443,
4324 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030,
4325 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001,
4326 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369,
4327 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
4328 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x0024fffe, 0x434c5846,
4329 0x00000004, 0x10700001, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004,
4330 0x00000000, 0x10700001, 0x00000001, 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000004,
4331 0x00000001, 0x10700001, 0x00000001, 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000004,
4332 0x00000002, 0x10700001, 0x00000001, 0x00000000, 0x00000002, 0x00000003, 0x00000000, 0x00000004,
4333 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000012,
4334 0x00000000, 0x0000013c, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200,
4335 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038,
4336 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000,
4337 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
4338 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
4339 0x0002fffe, 0x54494c43, 0x00000000, 0x0024fffe, 0x434c5846, 0x00000004, 0x10300001, 0x00000001,
4340 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x10300001, 0x00000001,
4341 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000004, 0x00000001, 0x10300001, 0x00000001,
4342 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000004, 0x00000002, 0x10300001, 0x00000001,
4343 0x00000000, 0x00000002, 0x00000003, 0x00000000, 0x00000004, 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f,
4344 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000001, 0x00000002, 0x00000134, 0x00000008,
4345 0x615f7370, 0x00007272, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200,
4346 0x00000001, 0x0000001c, 0x00000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038,
4347 0x00000048, 0x56695f67, 0x00746365, 0x00020001, 0x00040001, 0x00000001, 0x00000000, 0x40800000,
4348 0x40400000, 0x40000000, 0x3f800000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
4349 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
4350 0x0012fffe, 0x54494c43, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4351 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xbff00000, 0x00000000, 0x00000000, 0x00000000,
4352 0x00000000, 0x00000000, 0x00000000, 0x000ffffe, 0x434c5846, 0x00000001, 0xa0400001, 0x00000002,
4353 0x00000000, 0x00000002, 0x00000003, 0x00000000, 0x00000001, 0x00000004, 0x00000000, 0x00000004,
4354 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000000,
4355 0x00000002, 0x00000134, 0x00000008, 0x615f7376, 0x00327272, 0x46580200, 0x0024fffe, 0x42415443,
4356 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x00000100, 0x00000058, 0x00000030,
4357 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x56695f67, 0x00746365, 0x00020001, 0x00040001,
4358 0x00000001, 0x00000000, 0x40800000, 0x40400000, 0x40000000, 0x3f800000, 0x4d007874, 0x6f726369,
4359 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
4360 0x392e3932, 0x332e3235, 0x00313131, 0x0012fffe, 0x54494c43, 0x00000008, 0x00000000, 0x00000000,
4361 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xbff00000,
4362 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000ffffe, 0x434c5846,
4363 0x00000001, 0xa0400001, 0x00000002, 0x00000000, 0x00000002, 0x00000003, 0x00000000, 0x00000001,
4364 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0xffffffff,
4365 0x0000001f, 0x00000001, 0x00000001, 0x00000000, 0x000000e4, 0x46580200, 0x0026fffe, 0x42415443,
4366 0x0000001c, 0x00000063, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000060, 0x00000030,
4367 0x00000002, 0x00000001, 0x00000040, 0x00000050, 0x74636576, 0x6d61735f, 0x72656c70, 0xababab00,
4368 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0x40400000, 0x40800000,
4369 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320,
4370 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
4371 0x000cfffe, 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000001,
4372 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0xffffffff, 0x0000001f,
4373 0x00000000, 0x00000001, 0x00000000, 0x000000e4, 0x46580200, 0x0026fffe, 0x42415443, 0x0000001c,
4374 0x00000063, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000060, 0x00000030, 0x00000002,
4375 0x00000001, 0x00000040, 0x00000050, 0x74636576, 0x6d61735f, 0x72656c70, 0xababab00, 0x00030001,
4376 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0x40400000, 0x40800000, 0x4d007874,
4377 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
4378 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe,
4379 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000,
4380 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0xffffffff, 0x0000001e, 0x00000000,
4381 0x00000002, 0x00000000, 0x000000f0, 0x46580200, 0x0026fffe, 0x42415443, 0x0000001c, 0x00000063,
4382 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000060, 0x00000030, 0x00000002, 0x00000001,
4383 0x00000040, 0x00000050, 0x74636576, 0x6d61735f, 0x72656c70, 0xababab00, 0x00030001, 0x00040001,
4384 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0x40400000, 0x40800000, 0x4d007874, 0x6f726369,
4385 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
4386 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe, 0x434c5846,
4387 0x00000001, 0xa0400001, 0x00000002, 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000002,
4388 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0xffffffff,
4389 0x0000001e, 0x00000000, 0x00000001, 0x00000000, 0x000000dc, 0x46580200, 0x0024fffe, 0x42415443,
4390 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030,
4391 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x56695f67, 0x00746365, 0x00020001, 0x00040001,
4392 0x00000001, 0x00000000, 0x40800000, 0x40400000, 0x40000000, 0x3f800000, 0x4d007874, 0x6f726369,
4393 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
4394 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846,
4395 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000004,
4396 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0xffffffff, 0x0000001e, 0x00000000, 0x00000000,
4397 0x00000001, 0x00000005, 0x31786574, 0x00000000,
4399#define TEST_EFFECT_PRESHADER_VSHADER_POS 2991
4400#define TEST_EFFECT_PRESHADER_VSHADER_LEN 13
4402#define test_effect_preshader_compare_shader_bytecode(a, b, c, d) \
4403 test_effect_preshader_compare_shader_bytecode_(__LINE__, a, b, c, d)
4405 const DWORD *bytecode,
unsigned int bytecode_size,
int expected_shader_index,
BOOL todo)
4410 ok_(__FILE__,
line)(!!bytecode,
"NULL shader bytecode.\n");
4415 while (bytecode[
i++] != 0x0000ffff)
4419 bytecode_size =
i *
sizeof(*bytecode);
4421 ok(
i *
sizeof(*bytecode) == bytecode_size,
"Unexpected byte code size %u.\n", bytecode_size);
4426 "Incorrect shader selected.\n");
4429#define test_effect_preshader_compare_shader(a, b, c) \
4430 test_effect_preshader_compare_shader_(__LINE__, a, b, c)
4432 int expected_shader_index,
BOOL todo)
4434 IDirect3DVertexShader9 *vshader;
4436 unsigned int byte_code_size;
4440 ok_(__FILE__,
line)(
hr ==
D3D_OK,
"IDirect3DDevice9_GetVertexShader result %#lx.\n",
hr);
4443 ok_(__FILE__,
line)(!!vshader,
"Got NULL vshader.\n");
4448 ok_(__FILE__,
line)(
hr ==
D3D_OK,
"IDirect3DVertexShader9_GetFunction %#lx.\n",
hr);
4449 ok_(__FILE__,
line)(byte_code_size > 1,
"Got unexpected byte code size %u.\n", byte_code_size);
4451 byte_code =
calloc(1, byte_code_size);
4456 byte_code_size, expected_shader_index,
todo);
4472 {
"rsq", {
FALSE,
FALSE,
FALSE,
FALSE}, {0x7f800000, 0x7f800000, 0x3f2c985c, 0x1f800001}, 1},
4506#define test_effect_preshader_op_results(a, b, c) test_effect_preshader_op_results_(__LINE__, a, b, c)
4524 for (
j = 0;
j < 4; ++
j)
4530 "Operation %s, component %u, expected %#x, got %#x (%g).\n",
4533 ((
const unsigned int *)
v)[
j],
v[
j]);
4539 "Parameter %s, test %d, operation %s, state updated unexpectedly.\n",
4547 {0.0f, 0.0f, 0.0f, 0.0f},
4548 {0.0f, 0.0f, 0.0f, 0.0f},
4549 {0.0f, 0.0f, 0.0f, 0.0f},
4550 {1.0f, 2.0f, 3.0f, 0.0f},
4551 {4.0f, 0.0f, 0.0f, 0.0f},
4552 {5.0f, 6.0f, 7.0f, 8.0f},
4553 {1.0f, 2.0f, 3.0f, 0.0f},
4554 {4.0f, 0.0f, 0.0f, 0.0f},
4555 {5.0f, 6.0f, 7.0f, 8.0f},
4556 {9.0f, 10.0f, 11.0f, 0.0f},
4557 {12.0f, 0.0f, 0.0f, 0.0f},
4558 {13.0f, 14.0f, 15.0f, 16.0f},
4559 {11.0f, 12.0f, 13.0f, 0.0f},
4560 {21.0f, 22.0f, 23.0f, 0.0f},
4561 {31.0f, 32.0f, 33.0f, 0.0f},
4562 {41.0f, 42.0f, 43.0f, 0.0f},
4563 {11.0f, 21.0f, 31.0f, 0.0f},
4564 {12.0f, 22.0f, 32.0f, 0.0f},
4565 {13.0f, 23.0f, 33.0f, 0.0f},
4566 {14.0f, 24.0f, 34.0f, 0.0f},
4567 {11.0f, 12.0f, 13.0f, 14.0f},
4568 {21.0f, 22.0f, 23.0f, 24.0f},
4569 {31.0f, 32.0f, 33.0f, 34.0f},
4570 {11.0f, 21.0f, 31.0f, 41.0f},
4571 {12.0f, 22.0f, 32.0f, 42.0f},
4572 {13.0f, 23.0f, 33.0f, 43.0f},
4573 {9.0f, 10.0f, 11.0f, 0.0f},
4574 {12.0f, 0.0f, 0.0f, 0.0f},
4575 {13.0f, 14.0f, 15.0f, 16.0f},
4576 {92.0f, 0.0f, 0.0f, 0.0f},
4577 {93.0f, 0.0f, 0.0f, 0.0f},
4578 {0.0f, 0.0f, 0.0f, 0.0f},
4579 {91.0f, 0.0f, 0.0f, 0.0f},
4580 {4.0f, 5.0f, 6.0f, 7.0f},
4582#define TEST_EFFECT_BITMASK_BLOCK_SIZE (sizeof(unsigned int) * 8)
4584#define test_effect_preshader_compare_vconsts(a, b, c) \
4585 test_effect_preshader_compare_vconsts_(__LINE__, a, b, c)
4587 const unsigned int *const_updated_mask,
const char *updated_param)
4597 if (!const_updated_mask)
4600 "Vertex shader float constants do not match.\n");
4610 "Vertex shader float constants do not match, expected (%g, %g, %g, %g), "
4611 "got (%g, %g, %g, %g), parameter %s.\n",
4614 fdata[
i].
x, fdata[
i].
y, fdata[
i].
z, fdata[
i].
w, updated_param);
4619 "Vertex shader float constants updated unexpectedly, parameter %s.\n", updated_param);
4629 "Vertex shader float constants do not match.\n");
4644 for (
i = 0;
i < 16; ++
i)
4652#define test_effect_preshader_compare_pbool_consts(a, b, c) \
4653 test_effect_preshader_compare_pbool_consts_(__LINE__, a, b, c)
4655 const unsigned int *const_updated_mask,
const char *updated_param)
4664 if (!const_updated_mask)
4671 "Pixel shader boolean constants do not match, expected %#x, got %#x, i %u.\n",
4685 "Pixel shader boolean constants do not match, expected %#x, got %#x, i %u, parameter %s.\n",
4691 "Pixel shader boolean constants updated unexpectedly, parameter %s.\n", updated_param);
4698 ok_(__FILE__,
line)(!bdata[
i],
"Got result %#lx, boolean register value %u.\n",
hr, bdata[
i]);
4704 static const D3DXVECTOR4 test_effect_preshader_fvect_p[] =
4706 {11.0f, 21.0f, 0.0f, 0.0f},
4707 {12.0f, 22.0f, 0.0f, 0.0f},
4708 {13.0f, 23.0f, 0.0f, 0.0f},
4709 {11.0f, 12.0f, 0.0f, 0.0f},
4710 {21.0f, 22.0f, 0.0f, 0.0f},
4711 {31.0f, 32.0f, 0.0f, 0.0f},
4712 {11.0f, 12.0f, 0.0f, 0.0f},
4713 {21.0f, 22.0f, 0.0f, 0.0f},
4714 {11.0f, 21.0f, 0.0f, 0.0f},
4715 {12.0f, 22.0f, 0.0f, 0.0f},
4716 {11.0f, 12.0f, 13.0f, 0.0f},
4717 {21.0f, 22.0f, 23.0f, 0.0f},
4718 {11.0f, 21.0f, 31.0f, 0.0f},
4719 {12.0f, 22.0f, 32.0f, 0.0f}
4721 static const int test_effect_preshader_iconsts[][4] =
4725 static const D3DXVECTOR4 fvect1 = {28.0f, 29.0f, 30.0f, 31.0f};
4726 static const D3DXVECTOR4 fvect2 = {0.0f, 0.0f, 1.0f, 0.0f};
4727 static const int ivect_empty[4] = {-1, -1, -1, -1};
4729 ID3DXEffect *effect;
4731 unsigned int npasses;
4734 int idata[
ARRAY_SIZE(test_effect_preshader_iconsts)][4];
4735 IDirect3DVertexShader9 *vshader;
4745 skip(
"Test requires VS >= 3 and PS >= 3, skipping.\n");
4753 hr = effect->lpVtbl->GetDesc(effect, &
desc);
4755 ok(!
strcmp(
desc.Creator,
"D3DX Effect Compiler"),
"Unexpected creator %s.\n",
desc.Creator);
4756 ok(!
desc.Functions,
"Unexpected value %u.\n",
desc.Functions);
4757 ok(
desc.Techniques == 1,
"Unexpected value %u.\n",
desc.Techniques);
4758 ok(
desc.Parameters == 34,
"Unexpected value %u.\n",
desc.Parameters);
4762 for (
i = 0;
i < 224; ++
i)
4770 for (
i = 0;
i < 16; ++
i)
4776 hr = effect->lpVtbl->Begin(effect, &npasses, 0);
4779 par = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_Pos2");
4780 ok(par !=
NULL,
"GetParameterByName failed.\n");
4782 hr = effect->lpVtbl->SetVector(effect, par, &fvect1);
4785 hr = effect->lpVtbl->BeginPass(effect, 0);
4788 hr = effect->lpVtbl->BeginPass(effect, 0);
4791 hr = effect->lpVtbl->BeginPass(effect, 1);
4799 ok(!
memcmp(fdata, test_effect_preshader_fvect_p,
sizeof(test_effect_preshader_fvect_p)),
4800 "Pixel shader float constants do not match.\n");
4801 for (
i =
ARRAY_SIZE(test_effect_preshader_fvect_p);
i < 224; ++
i)
4806 "Pixel shader float constants do not match.\n");
4811 ok(!
memcmp(idata, test_effect_preshader_iconsts,
sizeof(test_effect_preshader_iconsts)),
4812 "Pixel shader integer constants do not match.\n");
4813 for (
i =
ARRAY_SIZE(test_effect_preshader_iconsts);
i < 16; ++
i)
4817 ok(!
memcmp(idata[0], ivect_empty,
sizeof(ivect_empty)),
4818 "Pixel shader integer constants do not match.\n");
4827 ok(
value == 3,
"Unexpected sampler 0 minfilter %lu.\n",
value);
4834 ok(
value == 1,
"Unexpected sampler 1 minfilter %lu.\n",
value);
4838 ok(
value == 1,
"Unexpected sampler 1 magfilter %lu.\n",
value);
4842 ok(
value == 1,
"Unexpected vertex sampler 0 minfilter %lu.\n",
value);
4846 ok(
value == 1,
"Unexpected vertex sampler 0 magfilter %lu.\n",
value);
4851 ok(
value == 0,
"Unexpected vertex sampler 1 minfilter %lu.\n",
value);
4855 ok(
value == 0,
"Unexpected vertex sampler 1 magfilter %lu.\n",
value);
4859 ok(
value == 3,
"Unexpected vertex sampler 2 minfilter %lu.\n",
value);
4866 ok(
value == 0,
"Unexpected fog density %g.\n", *(
float *)&
value);
4869 ok(*(
float *)&
value == 4.0f,
"Unexpected fog start %g.\n", *(
float *)&
value);
4872 ok(*(
float *)&
value == 4.0f,
"Unexpected point scale A %g.\n", *(
float *)&
value);
4875 ok(*(
float *)&
value == 12.0f,
"Unexpected point scale B %g.\n", *(
float *)&
value);
4877 hr = effect->lpVtbl->EndPass(effect);
4879 par = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_iVect");
4880 ok(par !=
NULL,
"GetParameterByName failed.\n");
4881 hr = effect->lpVtbl->SetVector(effect, par, &fvect2);
4883 hr = effect->lpVtbl->BeginPass(effect, 1);
4891 hr = effect->lpVtbl->SetVector(effect, par, &fvect1);
4893 hr = effect->lpVtbl->CommitChanges(effect);
4897 ok(!vshader,
"Incorrect shader selected.\n");
4899 hr = effect->lpVtbl->EndPass(effect);
4902 hr = effect->lpVtbl->End(effect);
4905 effect->lpVtbl->Release(effect);
4914 hr = effect->lpVtbl->BeginPass(effect, 0);
4919 ok(
value == 3,
"Unexpected sampler 0 minfilter %lu.\n",
value);
4926 ok(
value == 1,
"Unexpected sampler 1 minfilter %lu.\n",
value);
4930 ok(
value == 1,
"Unexpected sampler 1 magfilter %lu.\n",
value);
4934 ok(
value == 1,
"Unexpected vertex sampler 0 minfilter %lu.\n",
value);
4938 ok(
value == 1,
"Unexpected vertex sampler 0 magfilter %lu.\n",
value);
4942 ok(
value == 2,
"Unexpected vertex sampler 1 minfilter %lu.\n",
value);
4946 ok(
value == 2,
"Unexpected vertex sampler 1 magfilter %lu.\n",
value);
4950 ok(
value == 3,
"Unexpected vertex sampler 2 minfilter %lu.\n",
value);
4954 ok(
value == 3,
"Unexpected vertex sampler 2 magfilter %lu.\n",
value);
4956 hr = effect->lpVtbl->EndPass(effect);
4958 hr = effect->lpVtbl->End(effect);
4960 effect->lpVtbl->Release(effect);
4975 LightEnable[0] =
TRUE;
4976 LightEnable[1] =
TRUE;
4977 LightEnable[2] =
TRUE;
4978 LightEnable[3] =
TRUE;
4979 LightEnable[4] =
TRUE;
4980 LightEnable[5] =
TRUE;
4981 LightEnable[6] =
TRUE;
4982 LightEnable[7] =
TRUE;
4983 LightType[0] =
POINT;
4984 LightType[1] =
POINT;
4985 LightType[2] =
POINT;
4986 LightType[3] =
POINT;
4987 LightType[4] =
POINT;
4988 LightType[5] =
POINT;
4989 LightType[6] =
POINT;
4990 LightType[7] =
POINT;
4992 LightDiffuse[0] =
exp(opvect1);
4993 LightDiffuse[1] =
log(opvect1);
4994 LightDiffuse[2] =
asin(opvect1);
4995 LightDiffuse[3] =
acos(opvect1);
4996 LightDiffuse[4] =
atan(opvect1);
4997 LightDiffuse[5] =
atan2(opvect1, opvect2);
4998 LightDiffuse[6] = opvect1 * opvect2;
5001 LightDiffuse[7] = opvect1 * opvect2;
5004 LightAmbient[0] = opvect1 + opvect2 + opvect3;
5010 0xfeff0901, 0x0000044c, 0x00000000, 0x00000003, 0x00000001, 0x00000030, 0x00000000, 0x00000000,
5011 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0x6576706f,
5012 0x00317463, 0x00000003, 0x00000001, 0x00000068, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
5013 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0x6576706f, 0x00327463, 0x00000003,
5014 0x00000001, 0x000000a0, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000,
5015 0x00000000, 0x00000000, 0x00000008, 0x6576706f, 0x00337463, 0x00000001, 0x00000002, 0x00000002,
5016 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
5017 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
5018 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
5019 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
5020 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
5021 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
5022 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
5023 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
5024 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
5025 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
5026 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
5027 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
5028 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
5029 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
5030 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
5031 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
5032 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
5033 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000,
5034 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
5035 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000,
5036 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004,
5037 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000,
5038 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5039 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000,
5040 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000,
5041 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002,
5042 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
5043 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
5044 0x00000003, 0x00003070, 0x00000006, 0x68636574, 0x00000030, 0x00000003, 0x00000001, 0x00000001,
5045 0x00000001, 0x00000004, 0x00000020, 0x00000000, 0x00000000, 0x0000003c, 0x00000058, 0x00000000,
5046 0x00000000, 0x00000074, 0x00000090, 0x00000000, 0x00000000, 0x00000440, 0x00000000, 0x00000001,
5047 0x00000438, 0x00000000, 0x00000019, 0x00000091, 0x00000000, 0x000000b0, 0x000000ac, 0x00000091,
5048 0x00000001, 0x000000d0, 0x000000cc, 0x00000091, 0x00000002, 0x000000f0, 0x000000ec, 0x00000091,
5049 0x00000003, 0x00000110, 0x0000010c, 0x00000091, 0x00000004, 0x00000130, 0x0000012c, 0x00000091,
5050 0x00000005, 0x00000150, 0x0000014c, 0x00000091, 0x00000006, 0x00000170, 0x0000016c, 0x00000091,
5051 0x00000007, 0x00000190, 0x0000018c, 0x00000084, 0x00000000, 0x000001b0, 0x000001ac, 0x00000084,
5052 0x00000001, 0x000001d0, 0x000001cc, 0x00000084, 0x00000002, 0x000001f0, 0x000001ec, 0x00000084,
5053 0x00000003, 0x00000210, 0x0000020c, 0x00000084, 0x00000004, 0x00000230, 0x0000022c, 0x00000084,
5054 0x00000005, 0x00000250, 0x0000024c, 0x00000084, 0x00000006, 0x00000270, 0x0000026c, 0x00000084,
5055 0x00000007, 0x00000290, 0x0000028c, 0x00000085, 0x00000000, 0x000002bc, 0x000002ac, 0x00000085,
5056 0x00000001, 0x000002e8, 0x000002d8, 0x00000085, 0x00000002, 0x00000314, 0x00000304, 0x00000085,
5057 0x00000003, 0x00000340, 0x00000330, 0x00000085, 0x00000004, 0x0000036c, 0x0000035c, 0x00000085,
5058 0x00000005, 0x00000398, 0x00000388, 0x00000085, 0x00000006, 0x000003c4, 0x000003b4, 0x00000085,
5059 0x00000007, 0x000003f0, 0x000003e0, 0x00000087, 0x00000000, 0x0000041c, 0x0000040c, 0x00000000,
5060 0x00000009, 0x00000000, 0x00000000, 0xffffffff, 0x00000018, 0x00000000, 0x0000016c, 0x46580200,
5061 0x003afffe, 0x42415443, 0x0000001c, 0x000000b3, 0x46580200, 0x00000003, 0x0000001c, 0x20000100,
5062 0x000000b0, 0x00000058, 0x00000002, 0x00000001, 0x00000060, 0x00000070, 0x00000080, 0x00010002,
5063 0x00000001, 0x00000088, 0x00000070, 0x00000098, 0x00020002, 0x00000001, 0x000000a0, 0x00000070,
5064 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
5065 0x00000000, 0x00000000, 0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
5066 0x6576706f, 0x00337463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x4d007874, 0x6f726369,
5067 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
5068 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
5070 0x001afffe, 0x434c5846,
5079 0x00000000, 0x00000002, 0x00000004,
5081 0x00000000, 0x00000002, 0x00000008,
5083 0x00000000, 0x00000004, 0x00000000,
5085 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
5087 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5089 0x00000000, 0x00000000, 0xffffffff, 0x00000017, 0x00000000, 0x00000114,
5090 0x46580200, 0x002ffffe, 0x42415443, 0x0000001c, 0x00000087, 0x46580200, 0x00000002, 0x0000001c,
5091 0x20000100, 0x00000084, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c,
5092 0x00010002, 0x00000001, 0x00000074, 0x0000005c, 0x6576706f, 0x00317463, 0x00030001, 0x00040001,
5093 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6576706f, 0x00327463,
5094 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820,
5095 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235,
5096 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
5098 0x000ffffe, 0x434c5846,
5101 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000,
5102 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
5104 0x00000000, 0x00000000, 0xffffffff,
5105 0x00000016, 0x00000000, 0x00000114, 0x46580200, 0x002ffffe, 0x42415443, 0x0000001c, 0x00000087,
5106 0x46580200, 0x00000002, 0x0000001c, 0x20000100, 0x00000084, 0x00000044, 0x00000002, 0x00000001,
5107 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002, 0x00000001, 0x00000074, 0x0000005c, 0x6576706f,
5108 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5109 0x00000000, 0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x4d007874,
5110 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
5111 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe,
5112 0x434c5846, 0x00000001, 0x20500004, 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000,
5113 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
5114 0x00000000, 0x00000000, 0xffffffff, 0x00000015, 0x00000000, 0x00000114, 0x46580200, 0x002ffffe,
5115 0x42415443, 0x0000001c, 0x00000087, 0x46580200, 0x00000002, 0x0000001c, 0x20000100, 0x00000084,
5116 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002, 0x00000001,
5117 0x00000074, 0x0000005c, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
5118 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6576706f, 0x00327463, 0x00030001, 0x00040001,
5119 0x00000001, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c,
5120 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe,
5121 0x54494c43, 0x00000000, 0x000ffffe, 0x434c5846, 0x00000001, 0x20600004, 0x00000002, 0x00000000,
5122 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000000,
5123 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000014, 0x00000000,
5124 0x000000dc, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001,
5125 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048,
5126 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
5127 0x00000000, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c,
5128 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe,
5129 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10c00004, 0x00000001, 0x00000000,
5130 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
5131 0x00000000, 0x00000000, 0xffffffff, 0x00000013, 0x00000000, 0x000000dc, 0x46580200, 0x0024fffe,
5132 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058,
5133 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f, 0x00317463, 0x00030001,
5134 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4d007874,
5135 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
5136 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe,
5137 0x434c5846, 0x00000001, 0x10b00004, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000,
5138 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff,
5139 0x00000012, 0x00000000, 0x000000dc, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b,
5140 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001,
5141 0x00000038, 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
5142 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820,
5143 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235,
5144 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10a00004,
5145 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0,
5146 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000011, 0x00000000, 0x0000013c,
5147 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c,
5148 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f,
5149 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5150 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
5151 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43,
5152 0x00000000, 0x0024fffe, 0x434c5846, 0x00000004, 0x10600001, 0x00000001, 0x00000000, 0x00000002,
5153 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x10600001, 0x00000001, 0x00000000, 0x00000002,
5154 0x00000001, 0x00000000, 0x00000004, 0x00000001, 0x10600001, 0x00000001, 0x00000000, 0x00000002,
5155 0x00000002, 0x00000000, 0x00000004, 0x00000002, 0x10600001, 0x00000001, 0x00000000, 0x00000002,
5156 0x00000003, 0x00000000, 0x00000004, 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000,
5157 0x00000000, 0xffffffff, 0x00000010, 0x00000000, 0x0000013c, 0x46580200, 0x0024fffe, 0x42415443,
5158 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030,
5159 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001,
5160 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4d007874, 0x6f726369,
5161 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
5162 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x0024fffe, 0x434c5846,
5163 0x00000004, 0x10500001, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004,
5164 0x00000000, 0x10500001, 0x00000001, 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000004,
5165 0x00000001, 0x10500001, 0x00000001, 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000004,
5166 0x00000002, 0x10500001, 0x00000001, 0x00000000, 0x00000002, 0x00000003, 0x00000000, 0x00000004,
5167 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
5177 unsigned int result_index;
5185 {
"exp", {0x3f800000, 0x3f800000, 0x3e5edc66, 0x7f800000}, 0, &
light.Diffuse.r,
5186 {0.0f, -0.0f, -2.2f, 3.402823466e+38f}, {1.0f, 2.0f, -3.0f, 4.0f}},
5187 {
"log", {0, 0x40000000, 0x3f9199b7, 0x43000000}, 1, &
light.Diffuse.r,
5188 {0.0f, 4.0f, -2.2f, 3.402823466e+38f}, {1.0f, 2.0f, -3.0f, 4.0f}},
5189 {
"asin", {0xbe9c00ad, 0xffc00000, 0xffc00000, 0xffc00000}, 2, &
light.Diffuse.r,
5190 {-0.3f, 4.0f, -2.2f, 3.402823466e+38f}, {1.0f, 2.0f, -3.0f, 4.0f}},
5191 {
"acos", {0x3ff01006, 0xffc00000, 0xffc00000, 0xffc00000}, 3, &
light.Diffuse.r,
5192 {-0.3f, 4.0f, -2.2f, 3.402823466e+38f}, {1.0f, 2.0f, -3.0f, 4.0f}},
5193 {
"atan", {0xbe9539d4, 0x3fa9b465, 0xbf927420, 0x3fc90fdb}, 4, &
light.Diffuse.r,
5194 {-0.3f, 4.0f, -2.2f, 3.402823466e+38f}, {1.0f, 2.0f, -3.0f, 4.0f}},
5195 {
"atan2 test #1", {0xbfc90fdb, 0x40490fdb, 0x80000000, 0x7fc00000}, 5, &
light.Diffuse.r,
5196 {-0.3f, 0.0f, -0.0f,
NAN}, {0.0f, -0.0f, 0.0f, 1.0f}},
5197 {
"atan2 test #2", {0xbfc90fdb, 0, 0xc0490fdb, 0}, 5, &
light.Diffuse.r,
5198 {-0.3f, 0.0f, -0.0f, -0.0f}, {-0.0f, 0.0f, -0.0f, 1.0f}},
5199 {
"div", {0, 0, 0, 0}, 7, &
light.Diffuse.r,
5200 {-0.3f, 0.0f, -2.2f,
NAN}, {0.0f, -0.0f, -3.0f, 1.0f}},
5201 {
"cmp", {0x40a00000, 0x40000000, 0x40400000, 0x41000000}, 0, &
light.Ambient.r,
5202 {-0.3f, 0.0f, 2.2f,
NAN}, {1.0f, 2.0f, 3.0f, 4.0f}, {5.0f, 6.0f, 7.0f, 8.0f}},
5203 {
"0 * INF", {0xffc00000, 0xffc00000, 0xc0d33334, 0x7f800000}, 6, &
light.Diffuse.r,
5206 unsigned int i,
j, passes_count;
5208 ID3DXEffect *effect;
5215 hr = effect->lpVtbl->GetDesc(effect, &
desc);
5217 ok(!
strcmp(
desc.Creator,
"D3DX Effect Compiler"),
"Unexpected creator %s.\n",
desc.Creator);
5218 ok(!
desc.Functions,
"Unexpected value %u.\n",
desc.Functions);
5219 ok(
desc.Techniques == 1,
"Unexpected value %u.\n",
desc.Techniques);
5220 ok(
desc.Parameters == 3,
"Unexpected value %u.\n",
desc.Parameters);
5222 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
5224 hr = effect->lpVtbl->BeginPass(effect, 0);
5229 const float *
result = op_tests[
i].result;
5233 hr = effect->lpVtbl->SetVector(effect,
"opvect1", &op_tests[
i].opvect1);
5235 hr = effect->lpVtbl->SetVector(effect,
"opvect2", &op_tests[
i].opvect2);
5237 hr = effect->lpVtbl->SetVector(effect,
"opvect3", &op_tests[
i].opvect3);
5239 hr = effect->lpVtbl->CommitChanges(effect);
5244 for (
j = 0;
j < 4; ++
j)
5249 "Operation %s, component %u, expected %#x (%.8e), got %#x (%.8e).\n", op_tests[
i].mnem,
5257 hr = effect->lpVtbl->End(effect);
5259 effect->lpVtbl->Release(effect);
5267 unsigned int i, child_count;
5270 hr = effect->lpVtbl->GetParameterDesc(effect,
param, &
desc);
5271 ok_(__FILE__,
line)(
hr ==
D3D_OK,
"GetParameterDesc failed, result %#lx.\n",
hr);
5272 child_count =
desc.Elements ?
desc.Elements :
desc.StructMembers;
5273 for (
i = 0;
i < child_count; ++
i)
5275 param_child =
desc.Elements ? effect->lpVtbl->GetParameterElement(effect,
param,
i)
5276 : effect->lpVtbl->GetParameter(effect,
param,
i);
5277 ok_(__FILE__,
line)(!!param_child,
"Failed getting child parameter %s[%u].\n",
desc.
Name,
i);
5278 ok_(__FILE__,
line)(!effect->lpVtbl->IsParameterUsed(effect, param_child, tech),
5279 "Unexpected IsParameterUsed() result for %s[%u].\n",
desc.
Name,
i);
5284#define test_isparameterused_param_with_children(...) \
5285 test_isparameterused_param_with_children_(__LINE__, __VA_ARGS__)
5292 ==
expected_result,
"Unexpected IsParameterUsed() result for %s (referenced by name).\n",
name);
5295 param = effect2->lpVtbl->GetParameterByName(effect2,
NULL,
name);
5297 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
name);
5301 "Unexpected IsParameterUsed() result for %s (referenced by handle).\n",
name);
5313 check_parameters[] =
5317 {
"g_Selector",
TRUE},
5324 {
"vect_sampler",
TRUE},
5332 ID3DXEffect *effect, *effect2;
5342 hr = effect->lpVtbl->GetDesc(effect, &
desc);
5344 ok(!
strcmp(
desc.Creator,
"D3DX Effect Compiler"),
"Unexpected creator %s.\n",
desc.Creator);
5345 ok(!
desc.Functions,
"Unexpected value %u.\n",
desc.Functions);
5346 ok(
desc.Techniques == 1,
"Unexpected value %u.\n",
desc.Techniques);
5347 ok(
desc.Parameters == 34,
"Unexpected value %u.\n",
desc.Parameters);
5349 tech = effect->lpVtbl->GetTechniqueByName(effect,
"tech0");
5350 ok(!!tech,
"GetTechniqueByName failed.\n");
5364 effect2->lpVtbl->Release(effect2);
5371 effect2->lpVtbl->Release(effect2);
5373 effect->lpVtbl->Release(effect);
5379 ID3DXEffect *effect;
5383 unsigned int passes_count;
5384 IDirect3DVertexShader9 *vshader;
5389 hr = effect->lpVtbl->GetDesc(effect, &
desc);
5391 ok(!
strcmp(
desc.Creator,
"D3DX Effect Compiler"),
"Unexpected creator %s.\n",
desc.Creator);
5392 ok(!
desc.Functions,
"Unexpected value %u.\n",
desc.Functions);
5393 ok(
desc.Techniques == 1,
"Unexpected value %u.\n",
desc.Techniques);
5394 ok(
desc.Parameters == 34,
"Unexpected value %u.\n",
desc.Parameters);
5396 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
5399 ivect[0] = ivect[1] = ivect[3] = 1;
5401 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_iVect");
5402 ok(!!
param,
"GetParameterByName failed.\n");
5404 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5407 hr = effect->lpVtbl->BeginPass(effect, 0);
5409 hr = effect->lpVtbl->EndPass(effect);
5415 hr = effect->lpVtbl->BeginPass(effect, 1);
5420 hr = effect->lpVtbl->BeginPass(effect, 1);
5427 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5431 hr = effect->lpVtbl->CommitChanges(effect);
5434 hr = effect->lpVtbl->EndPass(effect);
5437 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5441 hr = effect->lpVtbl->BeginPass(effect, 1);
5443 hr = effect->lpVtbl->BeginPass(effect, 1);
5449 hr = effect->lpVtbl->EndPass(effect);
5451 hr = effect->lpVtbl->End(effect);
5453 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
5455 hr = effect->lpVtbl->BeginPass(effect, 1);
5458 hr = effect->lpVtbl->EndPass(effect);
5466 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5469 hr = effect->lpVtbl->BeginPass(effect, 1);
5474 ok(!vshader,
"Got non NULL vshader.\n");
5476 hr = effect->lpVtbl->BeginPass(effect, 1);
5481 hr = effect->lpVtbl->EndPass(effect);
5485 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5488 hr = effect->lpVtbl->BeginPass(effect, 1);
5497 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5499 hr = effect->lpVtbl->CommitChanges(effect);
5504 ok(!vshader,
"Got non NULL vshader.\n");
5507 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5509 hr = effect->lpVtbl->CommitChanges(effect);
5514 ok(!vshader,
"Got non NULL vshader.\n");
5517 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5519 hr = effect->lpVtbl->CommitChanges(effect);
5524 hr = effect->lpVtbl->EndPass(effect);
5527 hr = effect->lpVtbl->End(effect);
5530 effect->lpVtbl->Release(effect);
5537 const char *param_name;
5540 check_op_parameters[] =
5560 const char *param_name;
5564 check_vconsts_parameters[] =
5566 {
"g_Selector", {0x00000000, 0x00000002}},
5567 {
"g_Pos1", {0x80000000, 0x00000002}},
5568 {
"g_Pos2", {0x00000000, 0x00000002}},
5569 {
"m4x3column", {0x03800000, 0x00000000}},
5570 {
"m3x4column", {0x000f0000, 0x00000000}},
5571 {
"m4x3row", {0x0000f000, 0x00000000}},
5572 {
"m3x4row", {0x00700000, 0x00000000}},
5573 {
"ts1", {0x1c000000, 0x00000000}},
5574 {
"ts2", {0x0000003f, 0x00000000}},
5575 {
"arr1", {0x00000000, 0x00000001}},
5576 {
"arr2", {0x60000000, 0x00000000}},
5577 {
"ts3", {0x00000fc0, 0x00000000}},
5581 const char *param_name;
5585 check_bconsts_parameters[] =
5587 {
"mb2x3row", {0x0000001f}},
5588 {
"mb2x3column", {0x00000060}},
5595 ID3DXEffect *effect;
5598 unsigned int i, passes_count;
5607 IDirect3DVertexShader9 *vshader;
5608 unsigned char buffer[256];
5614 hr = effect->lpVtbl->GetDesc(effect, &
desc);
5616 ok(!
strcmp(
desc.Creator,
"D3DX Effect Compiler"),
"Unexpected creator %s.\n",
desc.Creator);
5617 ok(!
desc.Functions,
"Unexpected value %u.\n",
desc.Functions);
5618 ok(
desc.Techniques == 1,
"Unexpected value %u.\n",
desc.Techniques);
5619 ok(
desc.Parameters == 34,
"Unexpected value %u.\n",
desc.Parameters);
5621 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_iVect");
5622 ok(!!
param,
"GetParameterByName failed.\n");
5624 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
5630 hr = effect->lpVtbl->BeginPass(effect, 0);
5638 for (
j = 0;
j < 8; ++
j)
5645 param = effect->lpVtbl->GetParameterByName(effect,
NULL, check_op_parameters[
i].param_name);
5647 hr = effect->lpVtbl->GetValue(effect,
param, &fvect,
sizeof(fvect));
5649 hr = effect->lpVtbl->SetValue(effect,
param, &fvect,
sizeof(fvect));
5651 hr = effect->lpVtbl->CommitChanges(effect);
5655 check_op_parameters[
i].param_name);
5663 param = effect->lpVtbl->GetParameterByName(effect,
NULL, check_vconsts_parameters[
i].param_name);
5669 hr = effect->lpVtbl->CommitChanges(effect);
5673 check_vconsts_parameters[
i].param_name);
5681 param = effect->lpVtbl->GetParameterByName(effect,
NULL, check_bconsts_parameters[
i].param_name);
5682 ok(!!
param,
"GetParameterByName failed.\n");
5687 hr = effect->lpVtbl->CommitChanges(effect);
5691 check_bconsts_parameters[
i].param_name);
5696 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_Selector");
5698 fvect.
x = fvect.
y = fvect.
z = fvect.
w = 0.0f;
5699 hr = effect->lpVtbl->SetVectorArray(effect,
param, &fvect, 1);
5701 hr = effect->lpVtbl->CommitChanges(effect);
5704 check_vconsts_parameters[0].param_name);
5707 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"arr2");
5708 ok(!!
param,
"GetParameterByName failed.\n");
5709 param = effect->lpVtbl->GetParameterElement(effect,
param, 0);
5710 ok(!!
param,
"GetParameterElement failed.\n");
5711 hr = effect->lpVtbl->SetFloat(effect,
param, 92.0f);
5713 hr = effect->lpVtbl->CommitChanges(effect);
5716 check_vconsts_parameters[10].param_name);
5719 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"arr2");
5720 ok(!!
param,
"GetParameterByName failed.\n");
5721 param = effect->lpVtbl->GetParameterElement(effect,
param, 1);
5722 ok(!!
param,
"GetParameterElement failed.\n");
5724 hr = effect->lpVtbl->SetValue(effect,
param, &fvect.
x,
sizeof(fvect.
x));
5726 hr = effect->lpVtbl->CommitChanges(effect);
5729 check_vconsts_parameters[10].param_name);
5732 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"arr2");
5733 ok(!!
param,
"GetParameterByName failed.\n");
5735 hr = effect->lpVtbl->SetFloatArray(effect,
param, &fvect.
x, 1);
5737 hr = effect->lpVtbl->CommitChanges(effect);
5740 check_vconsts_parameters[10].param_name);
5743 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"arr2");
5744 ok(!!
param,
"GetParameterByName failed.\n");
5745 param = effect->lpVtbl->GetParameterElement(effect,
param, 1);
5746 ok(!!
param,
"GetParameterElement failed.\n");
5747 hr = effect->lpVtbl->SetInt(effect,
param, 93);
5749 hr = effect->lpVtbl->CommitChanges(effect);
5752 check_vconsts_parameters[10].param_name);
5755 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_Pos1");
5756 ok(!!
param,
"GetParameterByName failed.\n");
5757 fvect.
x = fvect.
y = fvect.
z = fvect.
w = 0.0f;
5758 hr = effect->lpVtbl->SetVector(effect,
param, &fvect);
5760 hr = effect->lpVtbl->CommitChanges(effect);
5763 check_vconsts_parameters[1].param_name);
5766 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"ts1");
5767 ok(!!
param,
"GetParameterByName failed.\n");
5768 param = effect->lpVtbl->GetParameterElement(effect,
param, 0);
5769 ok(!!
param,
"GetParameterByName failed.\n");
5770 param = effect->lpVtbl->GetParameterByName(effect,
param,
"fv");
5771 ok(!!
param,
"GetParameterByName failed.\n");
5773 hr = effect->lpVtbl->SetValue(effect,
param, &fvect.
x,
sizeof(
float));
5775 hr = effect->lpVtbl->CommitChanges(effect);
5778 check_vconsts_parameters[7].param_name);
5780 float_value.f = 9999.0f;
5790 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"ts2");
5791 ok(!!
param,
"GetParameterByName failed.\n");
5792 param = effect->lpVtbl->GetParameterElement(effect,
param, 0);
5793 ok(!!
param,
"GetParameterByName failed.\n");
5794 param = effect->lpVtbl->GetParameterByName(effect,
param,
"v1");
5795 ok(!!
param,
"GetParameterByName failed.\n");
5796 hr = effect->lpVtbl->GetValue(effect,
param, &fvect,
sizeof(
float) * 3);
5798 hr = effect->lpVtbl->SetValue(effect,
param, &fvect,
sizeof(
float) * 3);
5800 hr = effect->lpVtbl->CommitChanges(effect);
5804 ok(float_value.f == 0,
"Unexpected fog density %.8e.\n", float_value.f);
5807 ok(float_value.f == 4.0f,
"Unexpected fog start %.8e.\n", float_value.f);
5810 ok(float_value.f == 9999.0f,
"Unexpected point scale A %.8e.\n", float_value.f);
5813 ok(float_value.f == 9999.0f,
"Unexpected point scale B %.8e.\n", float_value.f);
5815 check_vconsts_parameters[8].param_name);
5817 float_value.f = 9999.0f;
5827 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"ts3");
5828 ok(!!
param,
"GetParameterByName failed.\n");
5829 param = effect->lpVtbl->GetParameterByName(effect,
param,
"ts");
5830 ok(!!
param,
"GetParameterByName failed.\n");
5831 param = effect->lpVtbl->GetParameterElement(effect,
param, 1);
5832 ok(!!
param,
"GetParameterByName failed.\n");
5833 param = effect->lpVtbl->GetParameterByName(effect,
param,
"fv");
5834 ok(!!
param,
"GetParameterByName failed.\n");
5835 hr = effect->lpVtbl->GetValue(effect,
param, &fvect.
x,
sizeof(
float));
5837 hr = effect->lpVtbl->SetValue(effect,
param, &fvect.
x,
sizeof(
float));
5839 hr = effect->lpVtbl->CommitChanges(effect);
5843 ok(float_value.f == 9999.0f,
"Unexpected fog density %.8e.\n", float_value.f);
5846 ok(float_value.f == 9999.0f,
"Unexpected fog start %.8e.\n", float_value.f);
5849 ok(float_value.f == 4.0f,
"Unexpected point scale A %.8e.\n", float_value.f);
5852 ok(float_value.f == 12.0f,
"Unexpected point scale B %.8e.\n", float_value.f);
5854 check_vconsts_parameters[11].param_name);
5858 ok(
value == 1,
"Unexpected sampler 0 minfilter %lu.\n",
value);
5862 ok(
value == 0,
"Unexpected sampler 1 minfilter %lu.\n",
value);
5865 ok(
value == 3,
"Unexpected sampler 2 minfilter %lu.\n",
value);
5867 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_iVect");
5868 ok(!!
param,
"GetParameterByName failed.\n");
5869 ivect[0] = ivect[1] = ivect[2] = ivect[3] = 1;
5870 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5873 for (
i = 0;
i < 3; ++
i)
5890 hr = effect->lpVtbl->CommitChanges(effect);
5895 ok(!vshader,
"Unexpected vshader %p.\n", vshader);
5900 ok(
value == 0,
"Unexpected sampler 0 minfilter %lu.\n",
value);
5903 ok(
value == 0,
"Unexpected sampler 1 minfilter %lu.\n",
value);
5907 ok(
value == 1,
"Unexpected sampler 2 minfilter %lu.\n",
value);
5910 ok(
value == 0,
"Unexpected sampler 2 minfilter %lu.\n",
value);
5913 ok(
value == 1,
"Unexpected sampler 0 minfilter %lu.\n",
value);
5916 ok(
value == 0,
"Unexpected sampler 0 minfilter %lu.\n",
value);
5919 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5922 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5924 hr = effect->lpVtbl->CommitChanges(effect);
5928 ok(!vshader,
"Unexpected vshader %p.\n", vshader);
5931 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5933 hr = effect->lpVtbl->CommitChanges(effect);
5937 ok(!!vshader,
"Unexpected vshader %p.\n", vshader);
5941 ok(fvect.
x == 0.0f && fvect.
y == 0.0f && fvect.
z == 0.0f && fvect.
w == 0.0f,
5942 "Vertex shader float constants do not match.\n");
5946 "selector g_iVect");
5948 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5950 hr = effect->lpVtbl->CommitChanges(effect);
5954 hr = effect->lpVtbl->EndPass(effect);
5957 hr = effect->lpVtbl->End(effect);
5960 effect->lpVtbl->Release(effect);
5971 test_out_of_bounds_index[] =
5973 {{1.0f, 2.0f, 3.0f, 4.0f}, {101.0f, 101.0f, 101.0f, 101.0f}, {0, 0x42ca0000, 0x3f800000, 0}},
5974 {{1.0f, 2.0f, 3.0f, 4.0f}, {3333.0f, 1094.0f, 2222.0f, 3333.0f},
5975 {0x447ac000, 0x45505000, 0x3f800000, 0}},
5976 {{1.0f, 2.0f, 3.0f, 4.0f}, {3333.0f, 1094.0f, 2222.0f, 1.0f},
5977 {0x447ac000, 0x3f800000, 0x447a8000, 0x453b9000}},
5978 {{1.0f, 2.0f, 3.0f, 4.0f}, {1.0f, 1094.0f, 2222.0f, 3333.0f},
5979 {0x447ac000, 0x45505000, 0x3f800000, 0x453ba000}},
5980 {{1.0f, 2.0f, 3.0f, 4.0f}, {1111.0f, 1094.0f, 2222.0f, 1111.0f},
5981 {0x447ac000, 0x448ae000, 0, 0}},
5982 {{1.0f, 2.0f, 3.0f, 4.0f}, {1111.0f, 1094.0f, 2222.0f, 3333.0f},
5983 {0x447ac000, 0x45505000, 0x3f800000, 0}},
5984 {{-1111.0f, 1094.0f, -2222.0f, -3333.0f}, {4.0f, 3.0f, 2.0f, 1.0f},
5985 {0x447ac000, 0x40800000, 0x447a8000, 0x453b9000}},
5986 {{1.0f, 2.0f, 3.0f, 4.0f}, {-1.0f, -1.0f, -1.0f, -1.0f}, {0, 0xbf800000, 0, 0}},
5987 {{1.0f, 2.0f, 3.0f, 4.0f}, {-2.0f, -2.0f, -2.0f, -2.0f}, {0, 0xc0000000, 0x459c4800, 0}},
5988 {{1.0f, 2.0f, 3.0f, 4.0f}, {-3.0f, -3.0f, -3.0f, -3.0f}, {0, 0xc0400000, 0x453b9000, 0}},
5989 {{1.0f, 2.0f, 3.0f, 4.0f}, {-4.0f, -4.0f, -4.0f, -4.0f}, {0, 0xc0800000, 0x44fa2000, 0}},
5990 {{1.0f, 2.0f, 3.0f, 4.0f}, {-5.0f, -5.0f, -5.0f, -5.0f}, {0, 0xc0a00000, 0x459c5000, 0}},
5991 {{1.0f, 2.0f, 3.0f, 4.0f}, {-6.0f, -6.0f, -6.0f, -6.0f}, {0, 0xc0c00000, 0x453ba000, 0xc1400000}},
5992 {{1.0f, 2.0f, 3.0f, 4.0f}, {-7.0f, -7.0f, -7.0f, -7.0f}, {0, 0xc0e00000, 0x44fa4000, 0x40400000}},
5993 {{1.0f, 2.0f, 3.0f, 4.0f}, {-8.0f, -8.0f, -8.0f, -8.0f}, {0, 0xc1000000, 0, 0x44fa6000}},
5994 {{1.0f, 2.0f, 3.0f, 4.0f}, {-9.0f, -9.0f, -9.0f, -9.0f}, {0, 0xc1100000, 0, 0}},
5995 {{1.0f, 2.0f, 3.0f, 4.0f}, {-10.0f, -10.0f, -10.0f, -10.0f}, {0, 0xc1200000, 0xc1200000, 0}},
5996 {{1.0f, 2.0f, 3.0f, 4.0f}, {-11.0f, -11.0f, -11.0f, -11.0f}, {0, 0xc1300000, 0x3f800000, 0}},
5997 {{1.0f, 2.0f, 3.0f, 4.0f}, {-12.0f, -12.0f, -12.0f, -12.0f}, {0, 0xc1400000, 0x447a4000, 0}},
5998 {{1.0f, 2.0f, 3.0f, 4.0f}, {5.0f, 5.0f, 5.0f, 5.0f}, {0, 0x40a00000, 0x3f800000, 0}},
5999 {{1.0f, 2.0f, 3.0f, 4.0f}, {-1111.0f, 1094.0f, -2222.0f, -3333.0f},
6000 {0x447ac000, 0xc5505000, 0x459c5000, 0x40000000}},
6001 {{1.0f, 2.0f, 3.0f, 4.0f}, {-3333.0f, 1094.0f, -2222.0f, -1111.0f},
6002 {0x447ac000, 0xc48ae000, 0x44fa4000, 0x3f800000}},
6003 {{1.0f, 2.0f, 3.0f, 4.0f}, {-3333.0f, 1094.0f, -2222.0f, -3333.0f},
6004 {0x447ac000, 0xc5505000, 0x459c5000, 0}},
6005 {{1.0f, 2.0f, 3.0f, 4.0f}, {-1111.0f, 1094.0f, -2222.0f, -1111.0f},
6006 {0x447ac000, 0xc48ae000, 0x44fa4000, 0x40400000}},
6012 expected_light_specular[] =
6015 {{0x447a8000, 0x453b9000}},
6016 {{0x40000000, 0x459c4800}},
6023 {{0x44fa4000, 0x3f800000}},
6024 {{0x453ba000, 0xbf800000}},
6036 test_index_to_immediate_table[] =
6038 {-1000000, {0, 0x40800000, 0x45bbd800, 0x41300000}},
6039 {-1001, {0x448d4000, 0x41300000, 0, 0}},
6040 {-32, {0x448d4000, 0x40800000, 0, 0}},
6041 {-31, {0x45843000, 0x41400000, 0, 0}},
6042 {-30, {0x46a64000, 0x41400000, 0x447a4000, 0x3f800000}},
6043 {-29, {0, 0x447a4000, 0x447a8000, 0x40000000}},
6044 {-28, {0, 0, 0x447ac000, 0x40400000}},
6045 {-27, {0, 0x3f800000, 0, 0}},
6046 {-26, {0, 0x41100000, 0x45bbd800, 0x41300000}},
6047 {-25, {0, 0x41300000, 0, 0}},
6048 {-24, {0, 0x41600000, 0, 0}},
6049 {-23, {0, 0, 0, 0}},
6050 {-22, {0, 0, 0, 0}},
6051 {-21, {0, 0x40a00000, 0, 0}},
6052 {-20, {0, 0x41500000, 0, 0}},
6053 {-19, {0, 0x41500000, 0, 0}},
6054 {-18, {0, 0xc1900000, 0, 0}},
6055 {-17, {0, 0, 0, 0}},
6056 {-16, {0, 0x40800000, 0, 0}},
6057 {-15, {0, 0x41400000, 0, 0}},
6058 {-14, {0, 0x41400000, 0, 0}},
6059 {-13, {0, 0x447a4000, 0x447a4000, 0x3f800000}},
6060 {-12, {0, 0, 0, 0}},
6061 {-11, {0, 0x3f800000, 0, 0}},
6062 {-10, {0, 0x41100000, 0, 0}},
6063 {-9, {0, 0x41300000, 0, 0}},
6064 {-8, {0, 0x41600000, 0, 0}},
6067 {-5, {0, 0x40a00000, 0, 0}},
6068 {-4, {0, 0x41500000, 0, 0}},
6069 {-3, {0, 0x41500000, 0, 0}},
6070 {-2, {0, 0xc0000000, 0, 0}},
6072 {0, {0x45052000, 0x40800000, 0x447a4000, 0x3f800000}},
6073 {1, {0x467e6000, 0x41400000, 0x447a8000, 0x40000000}},
6074 {2, {0, 0x41400000, 0x447ac000, 0x40400000}},
6075 {3, {0, 0x447a4000, 0, 0}},
6076 {4, {0, 0, 0x45bbd800, 0x41300000}},
6077 {5, {0, 0x3f800000, 0, 0}},
6078 {6, {0, 0x41100000, 0, 0}},
6079 {7, {0, 0x41300000, 0, 0}},
6080 {8, {0, 0x41600000, 0, 0}},
6083 {11, {0, 0x40a00000, 0, 0}},
6084 {12, {0, 0x41500000, 0, 0}},
6085 {13, {0, 0x41500000, 0, 0}},
6086 {14, {0, 0x41600000, 0, 0}},
6088 {16, {0, 0x40800000, 0, 0}},
6089 {17, {0x45052000, 0x41400000, 0x447a4000, 0x3f800000}},
6090 {18, {0x467e6000, 0x41400000, 0x447a8000, 0x40000000}},
6091 {19, {0, 0x447a4000, 0x447ac000, 0x40400000}},
6093 {21, {0, 0x3f800000, 0x45bbd800, 0x41300000}},
6094 {22, {0, 0x41100000, 0, 0}},
6095 {23, {0, 0x41300000, 0, 0}},
6096 {24, {0, 0x41600000, 0, 0}},
6099 {27, {0, 0x40a00000, 0, 0}},
6100 {28, {0, 0x41500000, 0, 0}},
6101 {29, {0, 0x41500000, 0, 0}},
6102 {30, {0, 0x41f00000, 0, 0}},
6104 {1001, {0, 0, 0, 0}},
6105 {1000000, {0, 0x40800000, 0, 0}},
6108 {1.0f, 1.0f, 1.0f, 1.0f}};
6109 unsigned int j, passes_count;
6111 const float *expected_float;
6112 ID3DXEffect *effect;
6123 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
6125 hr = effect->lpVtbl->BeginPass(effect, 0);
6128 fvect.
x = 1001.0f; fvect.
y = 1002.0f; fvect.
z = 1003.0f; fvect.
w = 1004.0f;
6129 hr = effect->lpVtbl->SetVector(effect,
"opvect1", &fvect);
6132 fvect.
x = 2001.0f; fvect.
y = 2002.0f; fvect.
z = 2003.0f; fvect.
w = 2004.0f;
6133 hr = effect->lpVtbl->SetVector(effect,
"g_Selector[0]", &fvect);
6136 fvect.
x = 3001.0f; fvect.
y = 3002.0f; fvect.
z = 3003.0f; fvect.
w = 3004.0f;
6137 hr = effect->lpVtbl->SetVector(effect,
"g_Selector[1]", &fvect);
6143 hr = effect->lpVtbl->SetVector(effect,
"opvect2", &test_out_of_bounds_index[
i].opvect2);
6145 hr = effect->lpVtbl->SetVector(effect,
"g_iVect", &test_out_of_bounds_index[
i].g_ivect);
6151 hr = effect->lpVtbl->CommitChanges(effect);
6157 expected = test_out_of_bounds_index[
i].expected;
6158 expected_float = (
const float *)
expected;
6160 for (
j = 0;
j < 4; ++
j)
6163 "Test %d, component %u, expected %#x (%g), got %#x (%g).\n",
6168 hr = effect->lpVtbl->SetVector(effect,
"opvect2", &test_out_of_bounds_index[7].opvect2);
6170 hr = effect->lpVtbl->SetVector(effect,
"g_iVect", &test_out_of_bounds_index[7].g_ivect);
6176 fvect = test_out_of_bounds_index[7].g_ivect;
6178 for (
i = -100;
i < 100; ++
i)
6181 hr = effect->lpVtbl->SetVector(effect,
"g_iVect", &fvect);
6183 hr = effect->lpVtbl->CommitChanges(effect);
6190 expected_float = (
const float *)
expected;
6192 for (
j = 0;
j < 2; ++
j)
6195 "i %d, component %u, expected %#x (%g), got %#x (%g).\n",
6196 i,
j + 2,
expected[
j], expected_float[
j], ((
const unsigned int *)
v)[
j],
v[
j]);
6201 for (
i = 0;
i <
ARRAY_SIZE(test_index_to_immediate_table); ++
i)
6203 fvect.
x = fvect.
y = fvect.
z = fvect.
w = test_index_to_immediate_table[
i].index_value;
6204 hr = effect->lpVtbl->SetVector(effect,
"g_iVect", &fvect);
6206 hr = effect->lpVtbl->CommitChanges(effect);
6212 expected = test_index_to_immediate_table[
i].expected;
6213 expected_float = (
const float *)
expected;
6215 for (
j = 0;
j < 4; ++
j)
6218 "Test %d, component %u, expected %#x (%g), got %#x (%g).\n",
6223 hr = effect->lpVtbl->EndPass(effect);
6225 hr = effect->lpVtbl->End(effect);
6228 effect->lpVtbl->Release(effect);
6249#define INITIAL_UPDATE_RECORD_SIZE 64
6279 free(state_manager);
6285 unsigned int state_op,
DWORD param1,
DWORD param2)
6372 struct IDirect3DVertexShader9 *
shader)
6378 UINT register_index,
const FLOAT *constant_data,
UINT register_count)
6384 UINT register_index,
const INT *constant_data,
UINT register_count)
6390 UINT register_index,
const BOOL *constant_data,
UINT register_count)
6396 struct IDirect3DPixelShader9 *
shader)
6402 UINT register_index,
const FLOAT *constant_data,
UINT register_count)
6408 UINT register_index,
const INT *constant_data,
UINT register_count)
6414 UINT register_index,
const BOOL *constant_data,
UINT register_count)
6422 static const struct ID3DXEffectStateManagerVtbl test_ID3DXEffectStateManager_Vtbl =
6450 state_manager->
ref = 1;
6464 "SetTextureStageState",
6469 "SetVertexShaderConstantF",
6470 "SetVertexShaderConstantI",
6471 "SetVertexShaderConstantB",
6473 "SetPixelShaderConstantF",
6474 "SetPixelShaderConstantI",
6475 "SetPixelShaderConstantB",
6483 if (
r1->state_op !=
r2->state_op)
6484 return r1->state_op -
r2->state_op;
6485 if (
r1->param1 !=
r2->param1)
6486 return r1->param1 -
r2->param1;
6487 return r1->param2 -
r2->param2;
6535 {
D3DLIGHT_DIRECTIONAL, {0.5f, 0.5f, 0.5f, 0.5f}, {0.5f, 0.5f, 0.5f, 0.5f}, {0.5f, 0.5f, 0.5f, 0.5f}};
6537 unsigned int passes_count,
i,
n;
6538 ID3DXEffect *effect;
6542 state_manager =
calloc(1,
sizeof(*state_manager));
6545 for (
i = 0;
i < 8; ++
i)
6558 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
6561 hr = effect->lpVtbl->BeginPass(effect, 0);
6564 hr = effect->lpVtbl->EndPass(effect);
6567 hr = effect->lpVtbl->End(effect);
6570 effect->lpVtbl->Release(effect);
6578 for (
i = 0;
i <
n; ++
i)
6581 sizeof(expected_updates[
i])),
6582 "Update record mismatch, expected %s, %lu, %lu, got %s, %lu, %lu.\n",
6589 for (
i = 0;
i < 8; ++
i)
6600 ok(!refcount,
"State manager was not properly freed, refcount %lu.\n", refcount);
6605 ID3DXEffect *effect1, *effect2;
6607 static int expected_ivect[4] = {28, 29, 30, 31};
6618 ok(effect1 != effect2,
"Got same effect unexpectedly.\n");
6620 param1 = effect1->lpVtbl->GetParameterByName(effect1,
NULL,
"g_iVect");
6621 ok(!!param1,
"GetParameterByName failed.\n");
6623 param2 = effect2->lpVtbl->GetParameterByName(effect2,
NULL,
"g_iVect");
6624 ok(!!param2,
"GetParameterByName failed.\n");
6626 ok(param1 != param2,
"Got same parameter handle unexpectedly.\n");
6628 hr = effect2->lpVtbl->SetValue(effect2, param1, expected_ivect,
sizeof(expected_ivect));
6631 hr = effect1->lpVtbl->GetValue(effect1, param1, ivect,
sizeof(ivect));
6634 ok(!
memcmp(ivect, expected_ivect,
sizeof(expected_ivect)),
"Vector value mismatch.\n");
6636 effect2->lpVtbl->Release(effect2);
6637 effect1->lpVtbl->Release(effect1);
6648shared
float arr2[1];
6649shared test_struct ts2[2] = {{{0, 0, 0}, 0, {0, 0, 0, 0}}, {{1, 2, 3}, 4, {5, 6, 7, 8}}};
6656VS_OUTPUT RenderSceneVS(float4 vPos :
POSITION)
6660 Output.Position = arr2[0] * vPos;
6664shared vertexshader vs_arr2[2] = {compile vs_3_0 RenderSceneVS(),
NULL};
6671 FogDensity = arr2[0];
6672 PointScale_A = ts2[0].fv_2;
6673 VertexShader = vs_arr2[0];
6678 VertexShader = vs_arr2[1];
6684 0xfeff0901, 0x000001dc, 0x00000000, 0x00000003, 0x00000000, 0x00000024, 0x00000000, 0x00000001,
6685 0x00000001, 0x00000001, 0x00000000, 0x00000005, 0x32727261, 0x00000000, 0x00000000, 0x00000005,
6686 0x000000dc, 0x00000000, 0x00000002, 0x00000003, 0x00000003, 0x00000001, 0x000000e4, 0x00000000,
6687 0x00000000, 0x00000003, 0x00000001, 0x00000003, 0x00000000, 0x000000f0, 0x00000000, 0x00000000,
6688 0x00000001, 0x00000001, 0x00000003, 0x00000001, 0x000000fc, 0x00000000, 0x00000000, 0x00000004,
6689 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
6690 0x00000000, 0x3f800000, 0x40000000, 0x40400000, 0x40800000, 0x40a00000, 0x40c00000, 0x40e00000,
6691 0x41000000, 0x00000004, 0x00327374, 0x00000005, 0x325f3176, 0x00000000, 0x00000005, 0x325f7666,
6692 0x00000000, 0x00000005, 0x325f3276, 0x00000000, 0x00000010, 0x00000004, 0x00000124, 0x00000000,
6693 0x00000002, 0x00000001, 0x00000002, 0x00000008, 0x615f7376, 0x00327272, 0x00000001, 0x00000002,
6694 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003,
6695 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003,
6696 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000003, 0x00000010,
6697 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00003070, 0x00000004, 0x00000010,
6698 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00003170, 0x00000006, 0x68636574,
6699 0x00000030, 0x00000003, 0x00000001, 0x00000006, 0x00000005, 0x00000004, 0x00000020, 0x00000001,
6700 0x00000000, 0x00000030, 0x0000009c, 0x00000001, 0x00000000, 0x00000108, 0x0000011c, 0x00000001,
6701 0x00000000, 0x000001d0, 0x00000000, 0x00000002, 0x000001a8, 0x00000000, 0x00000004, 0x0000000e,
6702 0x00000000, 0x00000134, 0x00000130, 0x00000014, 0x00000000, 0x00000154, 0x00000150, 0x00000041,
6703 0x00000000, 0x00000174, 0x00000170, 0x00000092, 0x00000000, 0x00000194, 0x00000190, 0x000001c8,
6704 0x00000000, 0x00000001, 0x00000092, 0x00000000, 0x000001b4, 0x000001b0, 0x00000002, 0x00000004,
6705 0x00000001, 0x000000c8, 0xfffe0300, 0x0025fffe, 0x42415443, 0x0000001c, 0x0000005f, 0xfffe0300,
6706 0x00000001, 0x0000001c, 0x00000000, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038,
6707 0x00000048, 0x32727261, 0xababab00, 0x00030000, 0x00010001, 0x00000001, 0x00000000, 0x00000000,
6708 0x00000000, 0x00000000, 0x00000000, 0x335f7376, 0x4d00305f, 0x6f726369, 0x74666f73, 0x29522820,
6709 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235,
6710 0x00313131, 0x0200001f, 0x80000000, 0x900f0000, 0x0200001f, 0x80000000, 0xe00f0000, 0x03000005,
6711 0xe00f0000, 0xa0000000, 0x90e40000, 0x0000ffff, 0x00000002, 0x00000000, 0x00000000, 0x00000001,
6712 0xffffffff, 0x00000000, 0x00000001, 0x0000000b, 0x615f7376, 0x5b327272, 0x00005d31, 0x00000000,
6713 0x00000000, 0xffffffff, 0x00000003, 0x00000001, 0x0000000b, 0x615f7376, 0x5b327272, 0x00005d30,
6714 0x00000000, 0x00000000, 0xffffffff, 0x00000002, 0x00000000, 0x00000188, 0x46580200, 0x004ffffe,
6715 0x42415443, 0x0000001c, 0x00000107, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000104,
6716 0x00000030, 0x00000002, 0x00000002, 0x00000094, 0x000000a4, 0x00327374, 0x325f3176, 0xababab00,
6717 0x00030001, 0x00030001, 0x00000001, 0x00000000, 0x325f7666, 0xababab00, 0x00030000, 0x00010001,
6718 0x00000001, 0x00000000, 0x325f3276, 0xababab00, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
6719 0x00000034, 0x0000003c, 0x0000004c, 0x00000054, 0x00000064, 0x0000006c, 0x00000005, 0x00080001,
6720 0x00030002, 0x0000007c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
6721 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x40000000,
6722 0x40400000, 0x00000000, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x40a00000, 0x40c00000,
6723 0x40e00000, 0x41000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c,
6724 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe,
6725 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000,
6726 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
6727 0x00000000, 0x00000000, 0xffffffff, 0x00000001, 0x00000000, 0x000000dc, 0x46580200, 0x0024fffe,
6728 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058,
6729 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x32727261, 0xababab00, 0x00030000,
6730 0x00010001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4d007874,
6731 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
6732 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe,
6733 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000,
6734 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
6737#define test_effect_shared_vs_arr_compare_helper(...) \
6738 test_effect_shared_vs_arr_compare_helper_(__LINE__, __VA_ARGS__)
6740 D3DXHANDLE param_child,
struct IDirect3DVertexShader9 *vshader1,
unsigned int element,
6743 struct IDirect3DVertexShader9 *vshader2;
6747 param_child2 = effect->lpVtbl->GetParameterElement(effect,
"vs_arr2",
element);
6748 ok_(__FILE__,
line)(!!param_child2,
"GetParameterElement failed.\n");
6749 ok_(__FILE__,
line)(param_child != param_child2,
"Got same parameter handle unexpectedly.\n");
6750 hr = effect->lpVtbl->GetVertexShader(effect, param_child2, &vshader2);
6753 ok_(__FILE__,
line)(vshader1 == vshader2,
"Shared shader interface pointers differ.\n");
6758#define test_effect_shared_parameters_compare_vconst(...) \
6759 test_effect_shared_parameters_compare_vconst_(__LINE__, __VA_ARGS__)
6769 ok_(__FILE__,
line)(!
memcmp(&fvect, expected_fvect,
sizeof(fvect)),
6770 "Unexpected constant value %g, %g, %g, %g.\n", fvect.
x, fvect.
y, fvect.
z, fvect.
w);
6775 ID3DXEffect *effect1, *effect2, *effect3, *effect4;
6776 ID3DXEffectPool *
pool;
6780 unsigned int i, passes_count;
6792 hr = effect2->lpVtbl->GetDesc(effect2, &
desc);
6794 ok(!
strcmp(
desc.Creator,
"D3DX Effect Compiler"),
"Unexpected creator %s.\n",
desc.Creator);
6795 ok(!
desc.Functions,
"Unexpected value %u.\n",
desc.Functions);
6796 ok(
desc.Techniques == 1,
"Unexpected value %u.\n",
desc.Techniques);
6797 ok(
desc.Parameters == 34,
"Unexpected value %u.\n",
desc.Parameters);
6799 effect2->lpVtbl->SetFloat(effect2,
"arr2[0]", 28.0f);
6800 effect2->lpVtbl->Release(effect2);
6805 effect2->lpVtbl->GetFloat(effect2,
"arr2[0]", &fvect.
x);
6806 ok(fvect.
x == 92.0f,
"Unexpected parameter value %g.\n", fvect.
x);
6807 effect2->lpVtbl->SetFloat(effect2,
"arr2[0]", 28.0f);
6813 effect1->lpVtbl->GetFloat(effect1,
"arr2[0]", &fvect.
x);
6814 ok(fvect.
x == 28.0f,
"Unexpected parameter value %g.\n", fvect.
x);
6823 effect2->lpVtbl->SetFloat(effect2,
"arr2[0]", 3.0f);
6824 effect2->lpVtbl->SetFloat(effect2,
"ts2[0].fv", 3.0f);
6826 effect3->lpVtbl->GetFloat(effect3,
"arr2[0]", &fvect.
x);
6827 ok(fvect.
x == 0.0f,
"Unexpected parameter value %g.\n", fvect.
x);
6828 effect4->lpVtbl->SetFloat(effect4,
"arr2[0]", 28.0f);
6829 effect3->lpVtbl->GetFloat(effect3,
"arr2[0]", &fvect.
x);
6830 ok(fvect.
x == 28.0f,
"Unexpected parameter value %g.\n", fvect.
x);
6831 effect1->lpVtbl->GetFloat(effect1,
"arr2[0]", &fvect.
x);
6832 ok(fvect.
x == 3.0f,
"Unexpected parameter value %g.\n", fvect.
x);
6834 param = effect3->lpVtbl->GetParameterByName(effect3,
NULL,
"ts2[0].fv_2");
6835 ok(!!
param,
"GetParameterByName failed.\n");
6836 effect3->lpVtbl->GetFloat(effect3,
param, &fvect.
x);
6837 ok(fvect.
x == 0.0f,
"Unexpected parameter value %g.\n", fvect.
x);
6839 param = effect1->lpVtbl->GetParameterByName(effect1,
NULL,
"arr2");
6840 ok(!!
param,
"GetParameterByName failed.\n");
6841 ok(!effect3->lpVtbl->IsParameterUsed(effect3,
param,
"tech0"),
6842 "Unexpected IsParameterUsed result.\n");
6844 param = effect3->lpVtbl->GetParameterByName(effect3,
NULL,
"arr2");
6845 ok(!!
param,
"GetParameterByName failed.\n");
6846 ok(effect3->lpVtbl->IsParameterUsed(effect3,
param,
"tech0"),
6847 "Unexpected IsParameterUsed result.\n");
6849 param = effect1->lpVtbl->GetParameterByName(effect1,
NULL,
"vs_arr2");
6850 ok(!!
param,
"GetParameterByName failed.\n");
6852 ok(!effect3->lpVtbl->IsParameterUsed(effect3,
param,
"tech0"),
6853 "Unexpected IsParameterUsed result.\n");
6855 ok(effect3->lpVtbl->IsParameterUsed(effect3,
"vs_arr2",
"tech0"),
6856 "Unexpected IsParameterUsed result.\n");
6857 ok(!effect3->lpVtbl->IsParameterUsed(effect3,
"vs_arr2[0]",
"tech0"),
6858 "Unexpected IsParameterUsed result.\n");
6859 ok(!effect3->lpVtbl->IsParameterUsed(effect3,
"vs_arr2[1]",
"tech0"),
6860 "Unexpected IsParameterUsed result.\n");
6862 ok(effect1->lpVtbl->IsParameterUsed(effect1,
param,
"tech0"),
6863 "Unexpected IsParameterUsed result.\n");
6865 hr = effect3->lpVtbl->Begin(effect3, &passes_count, 0);
6872 hr = effect3->lpVtbl->BeginPass(effect3, 0);
6875 hr = effect3->lpVtbl->EndPass(effect3);
6880 fvect.
x = fvect.
y = fvect.
z = fvect.
w = 28.0f;
6881 hr = effect2->lpVtbl->SetVector(effect2,
"g_Pos1", &fvect);
6883 hr = effect1->lpVtbl->SetVector(effect1,
"g_Pos1", &fvect);
6886 hr = effect3->lpVtbl->BeginPass(effect3, 1);
6893 ok(fvect.
x == 0.0f && fvect.
y == 0.0f && fvect.
z == 0.0f && fvect.
w == 0.0f,
6894 "Unexpected vector %g, %g, %g, %g.\n", fvect.
x, fvect.
y, fvect.
z, fvect.
w);
6896 hr = effect3->lpVtbl->EndPass(effect3);
6900 hr = effect3->lpVtbl->End(effect3);
6903 for (
i = 0;
i < 2; ++
i)
6905 struct IDirect3DVertexShader9 *vshader1;
6907 param_child = effect1->lpVtbl->GetParameterElement(effect1,
"vs_arr2",
i);
6908 ok(!!param_child,
"GetParameterElement failed.\n");
6909 hr = effect1->lpVtbl->GetVertexShader(effect1, param_child, &vshader1);
6918 effect3->lpVtbl->Release(effect3);
6919 effect4->lpVtbl->Release(effect4);
6922 hr = effect1->lpVtbl->SetFloatArray(effect1,
"arr1", fval, 1);
6925 hr = effect2->lpVtbl->GetFloatArray(effect2,
"arr1", fval, 1);
6927 ok(fval[0] == 91.0f,
"Unexpected value %g.\n", fval[0]);
6929 param = effect1->lpVtbl->GetParameterByName(effect1,
NULL,
"arr2");
6930 ok(!!
param,
"GetParameterByName failed.\n");
6931 param2 = effect2->lpVtbl->GetParameterByName(effect2,
NULL,
"arr2");
6932 ok(!!
param,
"GetParameterByName failed.\n");
6933 ok(
param != param2,
"Got same parameter handle unexpectedly.\n");
6934 param_child = effect1->lpVtbl->GetParameterElement(effect1,
param, 0);
6935 ok(!!param_child,
"GetParameterElement failed.\n");
6936 param_child2 = effect1->lpVtbl->GetParameterElement(effect2, param2, 0);
6937 ok(!!param_child2,
"GetParameterElement failed.\n");
6938 ok(param_child != param_child2,
"Got same parameter handle unexpectedly.\n");
6941 hr = effect1->lpVtbl->SetFloatArray(effect1,
"arr2", fval, 1);
6944 hr = effect1->lpVtbl->GetFloatArray(effect1,
"arr2", fval, 2);
6946 ok(fval[0] == 33.0f && fval[1] == 93.0f,
"Unexpected values %g, %g.\n", fval[0], fval[1]);
6948 hr = effect2->lpVtbl->GetFloatArray(effect2,
"arr2", fval, 2);
6950 ok(fval[0] == 33.0f && fval[1] == 93.0f,
"Unexpected values %g, %g.\n", fval[0], fval[1]);
6952 hr = effect1->lpVtbl->Begin(effect1, &passes_count, 0);
6955 hr = effect2->lpVtbl->Begin(effect2, &passes_count, 0);
6958 hr = effect1->lpVtbl->BeginPass(effect1, 0);
6962 fvect.
y = fvect.
z = fvect.
w = 0.0f;
6965 hr = effect1->lpVtbl->BeginPass(effect2, 0);
6975 hr = effect1->lpVtbl->SetFloatArray(effect1,
"arr2", fval, 2);
6980 hr = effect1->lpVtbl->CommitChanges(effect1);
6990 hr = effect1->lpVtbl->CommitChanges(effect1);
6996 hr = effect2->lpVtbl->CommitChanges(effect2);
7005 hr = effect2->lpVtbl->SetFloat(effect2,
"arr2[0]", fval[0]);
7007 hr = effect1->lpVtbl->CommitChanges(effect1);
7015 fvect.
x = fvect.
y = fvect.
z = fvect.
w = 1111.0f;
7016 hr = effect2->lpVtbl->SetVector(effect2,
"g_Pos1", &fvect);
7019 hr = effect1->lpVtbl->CommitChanges(effect1);
7023 hr = effect1->lpVtbl->CommitChanges(effect2);
7027 hr = effect1->lpVtbl->End(effect1);
7030 hr = effect2->lpVtbl->End(effect2);
7035 refcount =
pool->lpVtbl->Release(
pool);
7036 ok(refcount == 2,
"Unexpected refcount %lu.\n", refcount);
7038 refcount =
pool->lpVtbl->Release(
pool);
7039 ok(refcount == 1,
"Unexpected refcount %lu.\n", refcount);
7041 refcount =
pool->lpVtbl->Release(
pool);
7042 ok(!refcount,
"Unexpected refcount %lu.\n", refcount);
7045 effect2->lpVtbl->GetFloat(effect2,
"arr2[0]", &fvect.
x);
7048 effect1->lpVtbl->Release(effect1);
7049 effect2->lpVtbl->Release(effect2);
7051 refcount =
pool->lpVtbl->Release(
pool);
7052 ok(!refcount,
"Effect pool was not properly freed, refcount %lu.\n", refcount);
7057 ID3DXEffect *effect;
7059 static int expected_ivect[4] = {28, 29, 30, 31};
7067 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_iVect");
7068 ok(!!
param,
"GetParameterByName failed.\n");
7070 hr = effect->lpVtbl->SetValue(effect,
param, expected_ivect,
sizeof(expected_ivect));
7073 hr = effect->lpVtbl->GetValue(effect,
param, ivect,
sizeof(ivect));
7076 ok(!
memcmp(ivect, expected_ivect,
sizeof(expected_ivect)),
"Vector value mismatch.\n");
7081 hr = effect->lpVtbl->GetValue(effect,
"g_iVect", ivect,
sizeof(ivect));
7085 effect->lpVtbl->Release(effect);
7090 unsigned int passes_count;
7091 ID3DXEffect *effect;
7101 pass = effect->lpVtbl->GetPass(effect,
"tech0", 1);
7102 ok(!!
pass,
"GetPass() failed.\n");
7104 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
7108 fvect.
x = fvect.
y = fvect.
w = 0.0f;
7110 hr = effect->lpVtbl->SetVector(effect,
"g_iVect", &fvect);
7113 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
7115 ok(!
desc.pPixelShaderFunction,
"Unexpected non null desc.pPixelShaderFunction.\n");
7120 hr = effect->lpVtbl->SetVector(effect,
"g_iVect", &fvect);
7123 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
7125 ok(!
desc.pVertexShaderFunction,
"Unexpected non null desc.pVertexShaderFunction.\n");
7129 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
7131 ok(!
desc.pVertexShaderFunction,
"Unexpected non null desc.pVertexShaderFunction.\n");
7133 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
7136 hr = effect->lpVtbl->BeginPass(effect, 1);
7139 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
7145 hr = effect->lpVtbl->SetVector(effect,
"g_iVect", &fvect);
7146 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
7150 effect->lpVtbl->Release(effect);
7156 pass = effect->lpVtbl->GetPass(effect,
"tech0", 1);
7157 ok(!!
pass,
"GetPass() failed.\n");
7164 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
7167 ok(!
desc.pVertexShaderFunction,
"Unexpected non null desc.pVertexShaderFunction.\n");
7168 ok(!
desc.pPixelShaderFunction,
"Unexpected non null desc.pPixelShaderFunction.\n");
7171 effect->lpVtbl->Release(effect);
7175float v1 :
register(c2);
7176float v2 :
register(c3);
7178float v4 :
register(c4);
7180float v6[2] :
register(c5) = {11, 22};
7187VS_OUTPUT RenderSceneVS(float4 vPos :
POSITION)
7192 Output.Position += v6[0] + v6[1];
7201 VertexShader = compile vs_3_0 RenderSceneVS();
7207 0xfeff0901, 0x00000144, 0x00000000, 0x00000003, 0x00000000, 0x00000024, 0x00000000, 0x00000000,
7208 0x00000001, 0x00000001, 0x00000000, 0x00000003, 0x00003176, 0x00000003, 0x00000000, 0x0000004c,
7209 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003, 0x00003276, 0x00000003,
7210 0x00000000, 0x00000074, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003,
7211 0x00003376, 0x00000003, 0x00000000, 0x0000009c, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
7212 0x00000000, 0x00000003, 0x00003476, 0x00000003, 0x00000000, 0x000000c4, 0x00000000, 0x00000000,
7213 0x00000001, 0x00000001, 0x00000000, 0x00000003, 0x00003576, 0x00000003, 0x00000000, 0x000000f0,
7214 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x41300000, 0x41b00000, 0x00000003, 0x00003676,
7215 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
7216 0x00000001, 0x00000010, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00003070,
7217 0x00000006, 0x68636574, 0x00000030, 0x00000006, 0x00000001, 0x00000002, 0x00000002, 0x00000004,
7218 0x00000020, 0x00000000, 0x00000000, 0x0000002c, 0x00000048, 0x00000000, 0x00000000, 0x00000054,
7219 0x00000070, 0x00000000, 0x00000000, 0x0000007c, 0x00000098, 0x00000000, 0x00000000, 0x000000a4,
7220 0x000000c0, 0x00000000, 0x00000000, 0x000000cc, 0x000000e8, 0x00000000, 0x00000000, 0x00000138,
7221 0x00000000, 0x00000001, 0x00000130, 0x00000000, 0x00000002, 0x00000041, 0x00000000, 0x000000fc,
7222 0x000000f8, 0x00000092, 0x00000000, 0x0000011c, 0x00000118, 0x00000000, 0x00000002, 0x00000000,
7223 0x00000000, 0xffffffff, 0x00000001, 0x00000000, 0x000001bc, 0xfffe0300, 0x0047fffe, 0x42415443,
7224 0x0000001c, 0x000000e7, 0xfffe0300, 0x00000005, 0x0000001c, 0x20000000, 0x000000e0, 0x00000080,
7225 0x00020002, 0x000a0001, 0x00000084, 0x00000094, 0x000000a4, 0x00030002, 0x000e0001, 0x00000084,
7226 0x00000094, 0x000000a7, 0x00000002, 0x00000001, 0x00000084, 0x00000094, 0x000000aa, 0x00040002,
7227 0x00120001, 0x00000084, 0x00000094, 0x000000ad, 0x00050002, 0x00160002, 0x000000b0, 0x000000c0,
7228 0xab003176, 0x00030000, 0x00010001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
7229 0x00000000, 0x76003276, 0x34760033, 0x00367600, 0x00030000, 0x00010001, 0x00000002, 0x00000000,
7230 0x41300000, 0x00000000, 0x00000000, 0x00000000, 0x41b00000, 0x00000000, 0x00000000, 0x00000000,
7231 0x335f7376, 0x4d00305f, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
7232 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0200001f, 0x80000000,
7233 0x900f0000, 0x0200001f, 0x80000000, 0xe00f0000, 0x02000001, 0x80010000, 0xa0000003, 0x03000005,
7234 0x80010000, 0x80000000, 0xa0000002, 0x04000004, 0x800f0000, 0x80000000, 0x90e40000, 0xa0000003,
7235 0x03000002, 0x800f0000, 0x80e40000, 0xa0000000, 0x03000002, 0x800f0000, 0x80e40000, 0xa0000004,
7236 0x02000001, 0x80010001, 0xa0000005, 0x03000002, 0x80010001, 0x80000001, 0xa0000006, 0x03000002,
7237 0xe00f0000, 0x80e40000, 0x80000001, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000000,
7238 0x00000000, 0x000000d8, 0x46580200, 0x0023fffe, 0x42415443, 0x0000001c, 0x00000057, 0x46580200,
7239 0x00000001, 0x0000001c, 0x20000100, 0x00000054, 0x00000030, 0x00040002, 0x00120001, 0x00000034,
7240 0x00000044, 0xab003476, 0x00030000, 0x00010001, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
7241 0x00000000, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c,
7242 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe,
7243 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000,
7244 0x00000002, 0x00000010, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
7251 ID3DXEffect *effect;
7252 unsigned int passes_count;
7270 hr = effect->lpVtbl->GetDesc(effect, &
desc);
7272 ok(!
strcmp(
desc.Creator,
"D3DX Effect Compiler"),
"Unexpected creator %s.\n",
desc.Creator);
7273 ok(!
desc.Functions,
"Unexpected value %u.\n",
desc.Functions);
7274 ok(
desc.Techniques == 1,
"Unexpected value %u.\n",
desc.Techniques);
7275 ok(
desc.Parameters == 6,
"Unexpected value %u.\n",
desc.Parameters);
7277 ok(!effect->lpVtbl->IsParameterUsed(effect,
"v1",
"tech0"),
7278 "Unexpected IsParameterUsed result.\n");
7279 ok(!effect->lpVtbl->IsParameterUsed(effect,
"v2",
"tech0"),
7280 "Unexpected IsParameterUsed result.\n");
7281 ok(effect->lpVtbl->IsParameterUsed(effect,
"v3",
"tech0"),
7282 "Unexpected IsParameterUsed result.\n");
7283 ok(effect->lpVtbl->IsParameterUsed(effect,
"v4",
"tech0"),
7284 "Unexpected IsParameterUsed result.\n");
7285 ok(!effect->lpVtbl->IsParameterUsed(effect,
"v5",
"tech0"),
7286 "Unexpected IsParameterUsed result.\n");
7287 ok(!effect->lpVtbl->IsParameterUsed(effect,
"v6",
"tech0"),
7288 "Unexpected IsParameterUsed result.\n");
7290 hr = effect->lpVtbl->SetFloat(effect,
"v1", 28.0f);
7292 hr = effect->lpVtbl->SetFloat(effect,
"v2", 29.0f);
7294 hr = effect->lpVtbl->SetFloat(effect,
"v3", 30.0f);
7296 hr = effect->lpVtbl->SetFloat(effect,
"v4", 31.0f);
7298 hr = effect->lpVtbl->SetFloat(effect,
"v5", 32.0f);
7303 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
7305 hr = effect->lpVtbl->BeginPass(effect, 0);
7308 fvect.
y = fvect.
z = fvect.
w = 0.0f;
7311 for (
i = 1;
i < 4; ++
i)
7315 for (
i = 5;
i < 256; ++
i)
7318 hr = effect->lpVtbl->EndPass(effect);
7320 hr = effect->lpVtbl->End(effect);
7323 effect->lpVtbl->Release(effect);
7327vertexshader vs_arr[2] =
7340 def c256, 1, 1, 1, 1
7352 VertexShader = vs_arr[1];
7359 VertexShader = vs_arr[
i];
7365 0xfeff0901, 0x000000ac, 0x00000000, 0x00000010, 0x00000004, 0x00000020, 0x00000000, 0x00000002,
7366 0x00000001, 0x00000002, 0x00000007, 0x615f7376, 0x00007272, 0x00000002, 0x00000000, 0x0000004c,
7367 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000002, 0x00000069, 0x00000003,
7368 0x00000010, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00003070, 0x00000006,
7369 0x68636574, 0x00000030, 0x00000004, 0x00000010, 0x00000004, 0x00000000, 0x00000000, 0x00000000,
7370 0x00000003, 0x00003070, 0x00000006, 0x68636574, 0x00000031, 0x00000002, 0x00000002, 0x00000006,
7371 0x00000005, 0x00000004, 0x00000018, 0x00000000, 0x00000000, 0x0000002c, 0x00000048, 0x00000000,
7372 0x00000000, 0x00000074, 0x00000000, 0x00000001, 0x0000006c, 0x00000000, 0x00000001, 0x00000092,
7373 0x00000000, 0x00000058, 0x00000054, 0x000000a0, 0x00000000, 0x00000001, 0x00000098, 0x00000000,
7374 0x00000001, 0x00000092, 0x00000000, 0x00000084, 0x00000080, 0x00000002, 0x00000002, 0x00000001,
7375 0x00000038, 0xfffe0300, 0x05000051, 0xa00f0000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000,
7376 0x0200001f, 0x80000000, 0xe00f0000, 0x02000001, 0xe00f0000, 0xa0e40000, 0x0000ffff, 0x00000002,
7377 0x00000038, 0xfffe03ff, 0x05000051, 0xa00f0100, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000,
7378 0x0200001f, 0x80000000, 0xe00f0000, 0x02000001, 0xe00f0000, 0xa0e40100, 0x0000ffff, 0x00000001,
7379 0x00000000, 0xffffffff, 0x00000000, 0x00000002, 0x000000e4, 0x00000008, 0x615f7376, 0x00007272,
7380 0x46580200, 0x0023fffe, 0x42415443, 0x0000001c, 0x00000057, 0x46580200, 0x00000001, 0x0000001c,
7381 0x00000100, 0x00000054, 0x00000030, 0x00000002, 0x00000001, 0x00000034, 0x00000044, 0xabab0069,
7382 0x00020000, 0x00010001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
7383 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320,
7384 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
7385 0x000cfffe, 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000000,
7386 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000,
7387 0xffffffff, 0x00000000, 0x00000001, 0x0000000a, 0x615f7376, 0x315b7272, 0x0000005d,
7390#define TEST_EFFECT_UNSUPPORTED_SHADER_BYTECODE_VS_3_0_POS 81
7391#define TEST_EFFECT_UNSUPPORTED_SHADER_BYTECODE_VS_3_0_LEN 14
7395 IDirect3DVertexShader9 *vshader;
7396 unsigned int passes_count;
7398 UINT byte_code_size;
7399 ID3DXEffect *effect;
7412 hr = effect->lpVtbl->ValidateTechnique(effect,
"missing_technique");
7414 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech0");
7417 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech1");
7419 hr = effect->lpVtbl->SetInt(effect,
"i", 1);
7421 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech1");
7423 hr = effect->lpVtbl->SetInt(effect,
"i", 0);
7425 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech1");
7428 hr = effect->lpVtbl->SetTechnique(effect,
"tech0");
7430 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
7432 hr = effect->lpVtbl->BeginPass(effect, 0);
7436 ok(
hr ==
D3D_OK,
"Got result %lx, expected 0 (D3D_OK).\n",
hr);
7437 ok(!vshader,
"Got non NULL vshader.\n");
7439 hr = effect->lpVtbl->EndPass(effect);
7441 hr = effect->lpVtbl->End(effect);
7444 hr = effect->lpVtbl->SetTechnique(effect,
"tech1");
7446 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
7448 hr = effect->lpVtbl->BeginPass(effect, 0);
7452 ok(
hr ==
D3D_OK,
"Got result %lx, expected 0 (D3D_OK).\n",
hr);
7453 ok(!!vshader,
"Got NULL vshader.\n");
7456 byte_code =
calloc(1, byte_code_size);
7460 "Got unexpected byte code size %u.\n", byte_code_size);
7463 byte_code_size),
"Incorrect shader selected.\n");
7467 hr = effect->lpVtbl->SetInt(effect,
"i", 1);
7469 hr = effect->lpVtbl->CommitChanges(effect);
7473 ok(!vshader,
"Got non NULL vshader.\n");
7475 effect->lpVtbl->Release(effect);
7478 ok(!refcount,
"Device has %lu references left.\n", refcount);
7483vertexshader vs_arr[2];
7491 VertexShader =
null;
7498 VertexShader = vs_arr[
i];
7504 0xfeff0901, 0x000000b4, 0x00000000, 0x00000010, 0x00000004, 0x00000020, 0x00000000, 0x00000002,
7505 0x00000001, 0x00000002, 0x00000007, 0x615f7376, 0x00007272, 0x00000002, 0x00000000, 0x0000004c,
7506 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000002, 0x00000069, 0x00000000,
7507 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000003,
7508 0x00003070, 0x00000006, 0x68636574, 0x00000030, 0x00000003, 0x00000010, 0x00000004, 0x00000000,
7509 0x00000000, 0x00000000, 0x00000003, 0x00003070, 0x00000006, 0x68636574, 0x00000031, 0x00000002,
7510 0x00000002, 0x00000005, 0x00000004, 0x00000004, 0x00000018, 0x00000000, 0x00000000, 0x0000002c,
7511 0x00000048, 0x00000000, 0x00000000, 0x0000007c, 0x00000000, 0x00000001, 0x00000074, 0x00000000,
7512 0x00000001, 0x00000092, 0x00000000, 0x00000058, 0x00000054, 0x000000a8, 0x00000000, 0x00000001,
7513 0x000000a0, 0x00000000, 0x00000001, 0x00000092, 0x00000000, 0x0000008c, 0x00000088, 0x00000002,
7514 0x00000001, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0xffffffff,
7515 0x00000000, 0x00000002, 0x000000e4, 0x00000008, 0x615f7376, 0x00007272, 0x46580200, 0x0023fffe,
7516 0x42415443, 0x0000001c, 0x00000057, 0x46580200, 0x00000001, 0x0000001c, 0x00000100, 0x00000054,
7517 0x00000030, 0x00000002, 0x00000001, 0x00000034, 0x00000044, 0xabab0069, 0x00020000, 0x00010001,
7518 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4d007874, 0x6f726369,
7519 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
7520 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846,
7521 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004,
7522 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
7528 ID3DXEffect *effect;
7543 ok(
hr ==
D3D_OK,
"Failed to create effect, hr %#lx.\n",
hr);
7545 pass = effect->lpVtbl->GetPass(effect,
"tech0", 0);
7546 ok(!!
pass,
"GetPass() failed.\n");
7547 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
7549 ok(!
desc.pVertexShaderFunction,
"Got non NULL vertex function.\n");
7551 pass = effect->lpVtbl->GetPass(effect,
"tech1", 0);
7552 ok(!!
pass,
"GetPass() failed.\n");
7553 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
7555 ok(!
desc.pVertexShaderFunction,
"Got non NULL vertex function.\n");
7557 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech0");
7559 hr = effect->lpVtbl->SetInt(effect,
"i", 0);
7560 ok(
hr ==
D3D_OK,
"Failed to set parameter, hr %#lx.\n",
hr);
7561 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech1");
7563 hr = effect->lpVtbl->SetInt(effect,
"i", 1);
7564 ok(
hr ==
D3D_OK,
"Failed to set parameter, hr %#lx.\n",
hr);
7565 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech1");
7568 hr = effect->lpVtbl->SetInt(effect,
"i", 2);
7569 ok(
hr ==
D3D_OK,
"Failed to set parameter, hr %#lx.\n",
hr);
7570 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech1");
7573 effect->lpVtbl->Release(effect);
7576 ok(!refcount,
"Device has %lu references left.\n", refcount);
7584 IDirect3DBaseTexture9 *
texture, *texture2;
7585 ID3DXEffectStateManager *ret_manager;
7587 IDirect3DVertexShader9 *
vs, *vs2;
7588 ID3DXEffect *effect, *cloned;
7589 unsigned int passes_count;
7596 static const DWORD effect_code[] =
7600 float f <
float a = 1.0;>;
7602 float skipped :
register(c4);
7609 vertexshader
vs = compile
vs_2_0 vs0_main();
7611 technique tech0 <
float a = 1.0;>
7628 VertexShader = compile
vs_2_0 vs1_main();
7632 0xfeff0901, 0x00000160, 0x00000000, 0x00000007, 0x00000004, 0x0000001c, 0x00000000, 0x00000000,
7633 0x00000001, 0x00000004, 0x00786574, 0x00000003, 0x00000000, 0x0000006c, 0x00000000, 0x00000000,
7634 0x00000001, 0x00000001, 0x00000000, 0x3f800000, 0x00000003, 0x00000000, 0x00000064, 0x00000000,
7635 0x00000000, 0x00000001, 0x00000001, 0x00000002, 0x00000061, 0x00000002, 0x00000066, 0x00000004,
7636 0x00000004, 0x0000008c, 0x00000000, 0x00000000, 0x00000002, 0x00000002, 0x00000073, 0x00000003,
7637 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000008,
7638 0x70696b73, 0x00646570, 0x00000010, 0x00000004, 0x000000d8, 0x00000000, 0x00000000, 0x00000003,
7639 0x00000003, 0x00007376, 0x3f800000, 0x00000003, 0x00000000, 0x00000100, 0x00000000, 0x00000000,
7640 0x00000001, 0x00000001, 0x00000002, 0x00000061, 0x00000004, 0x00000010, 0x00000004, 0x00000000,
7641 0x00000000, 0x00000000, 0x00000002, 0x00000070, 0x00000006, 0x68636574, 0x00000030, 0x00000005,
7642 0x00000010, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x00000070, 0x00000006,
7643 0x68636574, 0x00000031, 0x00000005, 0x00000002, 0x00000005, 0x00000006, 0x00000004, 0x00000018,
7644 0x00000000, 0x00000000, 0x00000024, 0x00000040, 0x00000000, 0x00000001, 0x00000048, 0x00000044,
7645 0x00000074, 0x00000088, 0x00000000, 0x00000000, 0x00000094, 0x000000b0, 0x00000000, 0x00000000,
7646 0x000000c0, 0x000000d4, 0x00000000, 0x00000000, 0x00000128, 0x00000001, 0x00000001, 0x000000e4,
7647 0x000000e0, 0x00000120, 0x00000000, 0x00000001, 0x00000092, 0x00000000, 0x0000010c, 0x00000108,
7648 0x00000154, 0x00000000, 0x00000001, 0x0000014c, 0x00000000, 0x00000001, 0x00000092, 0x00000000,
7649 0x00000138, 0x00000134, 0x00000003, 0x00000002, 0x00000003, 0x00000074, 0xfffe0200, 0x0014fffe,
7650 0x42415443, 0x0000001c, 0x00000023, 0xfffe0200, 0x00000000, 0x00000000, 0x00000400, 0x0000001c,
7651 0x325f7376, 0x4d00305f, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
7652 0x6d6f4320, 0x656c6970, 0x30312072, 0xab00312e, 0x0200001f, 0x80000000, 0x900f0000, 0x02000001,
7653 0xc00f0000, 0x90e40000, 0x0000ffff, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000001,
7654 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x000000a4, 0xfffe0200, 0x0023fffe, 0x42415443,
7655 0x0000001c, 0x0000005f, 0xfffe0200, 0x00000001, 0x0000001c, 0x20000400, 0x00000058, 0x00000030,
7656 0x00040002, 0x00120001, 0x00000038, 0x00000048, 0x70696b73, 0x00646570, 0x00030000, 0x00010001,
7657 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x325f7376, 0x4d00305f,
7658 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
7659 0x30312072, 0xab00312e, 0x02000001, 0xc00f0000, 0xa0000004, 0x0000ffff, 0x00000000, 0x00000000,
7660 0xffffffff, 0x00000000, 0x00000001, 0x00000003, 0x00007376,
7666 state_manager =
calloc(1,
sizeof(*state_manager));
7671 ok(
hr ==
D3D_OK,
"Failed to create texture, hr %#lx.\n",
hr);
7678 technique = effect->lpVtbl->GetTechniqueByName(effect,
"tech0");
7679 ok(!!technique,
"Expected a technique.\n");
7681 technique2 = effect->lpVtbl->GetCurrentTechnique(effect);
7682 ok(technique2 == technique,
"Got unexpected technique %p.\n", technique2);
7684 hr = effect->lpVtbl->SetTechnique(effect,
"tech1");
7687 hr = effect->lpVtbl->CloneEffect(effect,
NULL,
NULL);
7690 cloned = (
void *)0xdeadbeef;
7691 hr = effect->lpVtbl->CloneEffect(effect,
NULL, &cloned);
7693 ok(cloned == (
void *)0xdeadbeef,
"Unexpected effect pointer.\n");
7695 hr = effect->lpVtbl->CloneEffect(effect,
device,
NULL);
7698 cloned = (
void *)0xdeadbeef;
7699 hr = effect->lpVtbl->CloneEffect(effect,
device, &cloned);
7701 ok(cloned == (
void *)0xdeadbeef,
"Unexpected effect pointer.\n");
7703 effect->lpVtbl->Release(effect);
7712 hr = effect->lpVtbl->SetTexture(effect,
"tex",
texture);
7715 hr = effect->lpVtbl->SetFloat(effect,
"f", 123.0f);
7718 hr = effect->lpVtbl->SetString(effect,
"s",
"tiny silver hammers");
7721 hr = effect->lpVtbl->SetFloat(effect,
"f@a", 4.0f);
7724 annotation = effect->lpVtbl->GetAnnotationByName(effect,
"tech0",
"a");
7726 hr = effect->lpVtbl->SetFloat(effect,
annotation, 4.0f);
7729 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"tex");
7730 ok(!!parameter,
"Failed to get parameter.\n");
7732 hr = effect->lpVtbl->GetVertexShader(effect,
"vs", &
vs);
7735 ok(!effect->lpVtbl->IsParameterUsed(effect,
"skipped",
"tech1"),
7736 "Unexpected IsParameterUsed result.\n");
7738 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
7741 hr = effect->lpVtbl->CloneEffect(effect,
NULL,
NULL);
7744 cloned = (
void *)0xdeadbeef;
7745 hr = effect->lpVtbl->CloneEffect(effect,
NULL, &cloned);
7747 ok(cloned == (
void *)0xdeadbeef,
"Unexpected effect pointer.\n");
7749 hr = effect->lpVtbl->CloneEffect(effect,
device,
NULL);
7752 hr = effect->lpVtbl->CloneEffect(effect,
device, &cloned);
7754 ok(cloned != effect,
"Expected new effect instance.\n");
7756 hr = cloned->lpVtbl->GetStateManager(cloned, &ret_manager);
7758 ok(!ret_manager,
"Unexpected state manager %p.\n", ret_manager);
7760 hr = cloned->lpVtbl->GetTexture(cloned,
"tex", &texture2);
7762 ok(texture2 ==
texture,
"Expected the same texture.\n");
7765 hr = cloned->lpVtbl->GetVertexShader(cloned,
"vs", &vs2);
7767 ok(vs2 ==
vs,
"Expected the same vertex shader.\n");
7770 ok(!effect->lpVtbl->IsParameterUsed(effect,
"skipped",
"tech1"),
7771 "Unexpected IsParameterUsed result.\n");
7774 hr = cloned->lpVtbl->GetFloat(cloned,
"f", &
f);
7776 ok(
f == 123.0f,
"Got float %.8e.\n",
f);
7778 hr = cloned->lpVtbl->GetString(cloned,
"s", &
string);
7783 hr = cloned->lpVtbl->GetFloat(cloned,
"f@a", &
f);
7785 ok(
f == 4.0f,
"Got float %.8e.\n",
f);
7787 annotation = cloned->lpVtbl->GetAnnotationByName(cloned,
"tech0",
"a");
7792 ok(
f == 4.0f,
"Got float %.8e.\n",
f);
7794 parameter2 = cloned->lpVtbl->GetParameterByName(cloned,
NULL,
"tex");
7795 ok(!!parameter2,
"Failed to get parameter.\n");
7796 ok(parameter2 != parameter,
"Parameters should not match.\n");
7798 hr = cloned->lpVtbl->BeginPass(cloned, 0);
7801 technique = cloned->lpVtbl->GetTechniqueByName(cloned,
"tech0");
7802 ok(!!technique,
"Expected a technique.\n");
7804 technique2 = cloned->lpVtbl->GetCurrentTechnique(cloned);
7805 ok(technique2 == technique,
"Got unexpected technique %p.\n", technique2);
7807 cloned->lpVtbl->Release(cloned);
7812 hr = effect->lpVtbl->CloneEffect(effect, device2, &cloned);
7814 ok(cloned != effect,
"Expected new effect instance.\n");
7816 hr = cloned->lpVtbl->GetDevice(cloned, &device3);
7817 ok(
hr ==
S_OK,
"Failed to get effect device.\n");
7818 ok(device3 == device2,
"Unexpected device instance.\n");
7821 hr = cloned->lpVtbl->GetTexture(cloned,
"tex", &texture2);
7823 ok(!texture2,
"Expected a NULL texture.\n");
7825 hr = cloned->lpVtbl->GetVertexShader(cloned,
"vs", &vs2);
7827 ok(vs2 !=
vs,
"Expected a different vertex shader.\n");
7831 hr = cloned->lpVtbl->GetFloat(cloned,
"f", &
f);
7833 ok(
f == 123.0f,
"Got float %.8e.\n",
f);
7835 hr = cloned->lpVtbl->GetString(cloned,
"s", &
string);
7840 hr = cloned->lpVtbl->GetFloat(cloned,
"f@a", &
f);
7842 ok(
f == 4.0f,
"Got float %.8e.\n",
f);
7844 annotation = cloned->lpVtbl->GetAnnotationByName(cloned,
"tech0",
"a");
7849 ok(
f == 4.0f,
"Got float %.8e.\n",
f);
7851 parameter2 = cloned->lpVtbl->GetParameterByName(cloned,
NULL,
"tex");
7852 ok(!!parameter2,
"Failed to get parameter.\n");
7853 ok(parameter2 != parameter,
"Parameters should not match.\n");
7855 hr = cloned->lpVtbl->BeginPass(cloned, 0);
7858 technique = cloned->lpVtbl->GetTechniqueByName(cloned,
"tech0");
7859 ok(!!technique,
"Expected a technique.\n");
7861 technique2 = cloned->lpVtbl->GetCurrentTechnique(cloned);
7862 ok(technique2 == technique,
"Got unexpected technique %p.\n", technique2);
7864 cloned->lpVtbl->Release(cloned);
7866 hr = effect->lpVtbl->BeginPass(effect, 0);
7869 hr = effect->lpVtbl->EndPass(effect);
7872 hr = effect->lpVtbl->End(effect);
7878 hr = effect->lpVtbl->BeginParameterBlock(effect);
7881 hr = effect->lpVtbl->SetFloat(effect,
"f", 456.0f);
7884 hr = effect->lpVtbl->CloneEffect(effect,
device, &cloned);
7886 block = cloned->lpVtbl->EndParameterBlock(cloned);
7887 ok(!
block,
"Expected no active parameter block.\n");
7889 cloned->lpVtbl->Release(cloned);
7891 block = effect->lpVtbl->EndParameterBlock(effect);
7892 ok(!!
block,
"Expected an active parameter block.\n");
7897 effect->lpVtbl->Release(effect);
7900 ok(!refcount,
"State manager was not properly freed, refcount %lu.\n", refcount);
7903 ok(!refcount,
"Device has %lu references left.\n", refcount);
7915 IDirect3DTexture9 *
texture, *cur_texture, *managed_texture, *sysmem_texture;
7916 unsigned int passes_count;
7918 ID3DXEffect *effect;
7927 ok(
hr ==
D3D_OK,
"Failed to create texture, hr %#lx.\n",
hr);
7932 ok(
hr ==
D3D_OK,
"Failed to create effect, hr %#lx.\n",
hr);
7934 hr = effect->lpVtbl->SetTexture(effect,
"tex1", (IDirect3DBaseTexture9 *)
texture);
7935 ok(
hr ==
D3D_OK,
"Failed to set texture parameter, hr %#lx.\n",
hr);
7940 hr = effect->lpVtbl->BeginPass(effect, 0);
7941 ok(
hr ==
D3D_OK,
"BeginPass() failed, hr %#lx.\n",
hr);
7944 ok(cur_texture ==
texture,
"Unexpected current texture %p.\n", cur_texture);
7948 effect->lpVtbl->CommitChanges(effect);
7951 ok(cur_texture ==
NULL,
"Unexpected current texture %p.\n", cur_texture);
7953 hr = effect->lpVtbl->EndPass(effect);
7956 hr = effect->lpVtbl->BeginPass(effect, 0);
7957 ok(
hr ==
D3D_OK,
"BeginPass() failed, hr %#lx.\n",
hr);
7960 ok(cur_texture ==
texture,
"Unexpected current texture %p.\n", cur_texture);
7963 hr = effect->lpVtbl->EndPass(effect);
7965 hr = effect->lpVtbl->End(effect);
7969 ok(cur_texture ==
texture,
"Unexpected current texture %p.\n", cur_texture);
7972 ok(refcount == 2,
"Unexpected texture refcount %lu.\n", refcount);
7974 hr = effect->lpVtbl->OnLostDevice(effect);
7975 ok(
hr ==
D3D_OK,
"OnLostDevice() failed, hr %#lx.\n",
hr);
7977 ok(refcount == 1,
"Unexpected texture refcount %lu.\n", refcount);
7980 &managed_texture,
NULL);
7981 ok(
hr ==
D3D_OK,
"Failed to create texture, hr %#lx.\n",
hr);
7982 effect->lpVtbl->SetTexture(effect,
"tex1", (IDirect3DBaseTexture9 *)managed_texture);
7985 ok(refcount == 2,
"Unexpected texture refcount %lu.\n", refcount);
7986 hr = effect->lpVtbl->OnLostDevice(effect);
7987 ok(
hr ==
D3D_OK,
"OnLostDevice() failed, hr %#lx.\n",
hr);
7989 ok(refcount == 2,
"Unexpected texture refcount %lu.\n", refcount);
7992 &sysmem_texture,
NULL);
7993 ok(
hr ==
D3D_OK,
"Failed to create texture, hr %#lx.\n",
hr);
7994 effect->lpVtbl->SetTexture(effect,
"tex1", (IDirect3DBaseTexture9 *)sysmem_texture);
7997 ok(refcount == 1,
"Unexpected texture refcount %lu.\n", refcount);
8000 ok(refcount == 2,
"Unexpected texture refcount %lu.\n", refcount);
8001 hr = effect->lpVtbl->OnLostDevice(effect);
8002 ok(
hr ==
D3D_OK,
"OnLostDevice() failed, hr %#lx.\n",
hr);
8004 ok(refcount == 2,
"Unexpected texture refcount %lu.\n", refcount);
8006 effect->lpVtbl->Release(effect);
8009 ok(refcount == 1,
"Unexpected texture refcount %lu.\n", refcount);
8013 ok(cur_texture ==
texture,
"Unexpected current texture %p.\n", cur_texture);
8016 ok(refcount == 1,
"Unexpected texture refcount %lu.\n", refcount);
8020 ok(!refcount,
"Device has %lu references left.\n", refcount);
8027 static const char include1[] =
8034 " float4 position : POSITION;\n"
8035 " float3 normal : NORMAL;\n"
8038 "struct vs_output\n"
8040 " float4 position : POSITION;\n"
8041 " float4 diffuse : COLOR;\n"
8043 static const char include2[] =
8044 "#include \"include1.h\"\n"
8046 "vs_output vs_main(const vs_input v)\n"
8049 " const float4 scaled_color = 0.5 * color;\n"
8051 " o.position = mul(v.position, mat);\n"
8052 " o.diffuse = dot((float3)light, v.normal) * scaled_color;\n"
8056 static const char effect2[] =
8057 "#include \"include\\include2.h\"\n"
8063 " VertexShader = compile vs_2_0 vs_main();\n"
8071 trace(
"parent_data %p: %s.\n", parent_data, parent_data ? (
char *)parent_data :
"(null)");
8078 *
bytes =
sizeof(effect2);
8079 ok(!parent_data,
"Unexpected parent_data value.\n");
8085 *
bytes =
sizeof(include1);
8086 ok(!
strncmp(parent_data, include2,
strlen(include2)),
"Unexpected parent_data value.\n");
8092 *
bytes =
sizeof(include2);
8094 ok(!parent_data || (parent_data && !
strncmp(parent_data, effect2,
strlen(effect2))),
8095 "unexpected parent_data value.\n");
8099 ok(0,
"Unexpected #include for file %s.\n",
filename);
8125 static const char effect1[] =
8132 " float4 position : POSITION;\n"
8133 " float3 normal : NORMAL;\n"
8136 "struct vs_output\n"
8138 " float4 position : POSITION;\n"
8139 " float4 diffuse : COLOR;\n"
8142 "vs_output vs_main(const vs_input v)\n"
8145 " const float4 scaled_color = 0.5 * color;\n"
8147 " o.position = mul(v.position, mat);\n"
8148 " o.diffuse = dot((float3)light, v.normal) * scaled_color;\n"
8157 " VertexShader = compile vs_2_0 vs_main();\n"
8160 static const char include1[] =
8167 " float4 position : POSITION;\n"
8168 " float3 normal : NORMAL;\n"
8171 "struct vs_output\n"
8173 " float4 position : POSITION;\n"
8174 " float4 diffuse : COLOR;\n"
8176 static const char include1_wrong[] =
8177 "#error \"wrong include\"\n";
8178 static const char include2[] =
8179 "#include \"include1.h\"\n"
8181 "vs_output vs_main(const vs_input v)\n"
8184 " const float4 scaled_color = 0.5 * color;\n"
8186 " o.position = mul(v.position, mat);\n"
8187 " o.diffuse = dot((float3)light, v.normal) * scaled_color;\n"
8191 static const char effect2[] =
8192 "#include \"include\\include2.h\"\n"
8198 " VertexShader = compile vs_2_0 vs_main();\n"
8204 unsigned int filename_size;
8208 ID3DXEffect *effect;
8217 skip(
"Failed to create window.\n");
8222 skip(
"Failed to create IDirect3D9 object.\n");
8232 skip(
"Failed to create IDirect3DDevice9 object, hr %#lx.\n",
hr);
8240 skip(
"Couldn't create temporary file, skipping test.\n");
8245 filename_size -=
sizeof(
"effect1.fx") - 1;
8247 effect_path[filename_size] = 0;
8252 create_file(
"include\\include1.h", include1,
sizeof(include1) - 1,
NULL);
8253 create_file(
"include\\include2.h", include2,
sizeof(include2) - 1,
NULL);
8254 create_file(
"include1.h", include1_wrong,
sizeof(include1_wrong) - 1,
NULL);
8256 lstrcpyW(filename_w, effect_path_w);
8269 effect->lpVtbl->Release(effect);
8271 lstrcpyW(filename_w, effect_path_w);
8309 ok(!refcount,
"Device has %lu references left.\n", refcount);
8319 LightEnable[0] =
FALSE;
8327 LightEnable[0] =
TRUE;
8334 0xfeff0901, 0x000000ac, 0x00000000, 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000000,
8335 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000000,
8336 0x00000000, 0x00000001, 0x00000001, 0x00000003, 0x00003070, 0x00000006, 0x68636574, 0x00000030,
8337 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
8338 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
8339 0x00000003, 0x00003070, 0x00000006, 0x68636574, 0x00000031, 0x00000000, 0x00000002, 0x00000002,
8340 0x00000001, 0x0000004c, 0x00000000, 0x00000001, 0x00000044, 0x00000000, 0x00000002, 0x00000091,
8341 0x00000000, 0x00000008, 0x00000004, 0x0000000e, 0x00000000, 0x00000028, 0x00000024, 0x000000a0,
8342 0x00000000, 0x00000001, 0x00000098, 0x00000000, 0x00000002, 0x00000091, 0x00000000, 0x0000005c,
8343 0x00000058, 0x0000000e, 0x00000000, 0x0000007c, 0x00000078, 0x00000000, 0x00000000,
8353 ID3DXEffect *effect;
8362 skip(
"Failed to create window.\n");
8367 skip(
"Failed to create IDirect3D9 object.\n");
8377 skip(
"Failed to create IDirect3DDevice9 object, hr %#lx.\n",
hr);
8394 hr = effect->lpVtbl->FindNextValidTechnique(effect,
NULL, &tech);
8396 hr = effect->lpVtbl->GetTechniqueDesc(effect, tech, &
desc);
8400 hr = effect->lpVtbl->FindNextValidTechnique(effect, tech, &tech);
8402 hr = effect->lpVtbl->GetTechniqueDesc(effect, tech, &
desc);
8407 hr = effect->lpVtbl->FindNextValidTechnique(effect, tech, &tech2);
8409 ok(!tech2,
"Unexpected technique handle %p.\n", tech2);
8411 hr = effect->lpVtbl->GetTechniqueDesc(effect, tech2, &
desc);
8415 effect->lpVtbl->Release(effect);
8421 hr = effect->lpVtbl->FindNextValidTechnique(effect,
NULL, &tech);
8423 hr = effect->lpVtbl->GetTechniqueDesc(effect, tech, &
desc);
8427 hr = effect->lpVtbl->FindNextValidTechnique(effect, tech, &tech2);
8429 ok(!tech2,
"Unexpected technique handle %p.\n", tech2);
8430 hr = effect->lpVtbl->GetTechniqueDesc(effect, tech2, &
desc);
8434 hr = effect->lpVtbl->SetInt(effect,
"i", 1);
8438 hr = effect->lpVtbl->FindNextValidTechnique(effect,
NULL, &tech);
8440 hr = effect->lpVtbl->GetTechniqueDesc(effect, tech, &
desc);
8444 hr = effect->lpVtbl->FindNextValidTechnique(effect, tech, &tech);
8447 hr = effect->lpVtbl->SetInt(effect,
"i", 0);
8450 hr = effect->lpVtbl->FindNextValidTechnique(effect, tech, &tech);
8452 hr = effect->lpVtbl->GetTechniqueDesc(effect, tech, &
desc);
8456 hr = effect->lpVtbl->FindNextValidTechnique(effect, tech, &tech2);
8458 ok(!tech2,
"Unexpected technique handle %p.\n", tech2);
8460 hr = effect->lpVtbl->FindNextValidTechnique(effect,
"nope", &tech);
8463 effect->lpVtbl->Release(effect);
8466 ok(!refcount,
"Device has %lu references left.\n", refcount);
8475 -11.0f, -12.0f, 0.0f, 0.0f,
8476 -21.0f, -22.0f, 0.0f, 0.0f,
8477 -31.0f, -32.0f, 0.0f, 0.0f,
8481 11.0f, 12.0f, 0.0f, 0.0f,
8482 21.0f, 22.0f, 0.0f, 0.0f,
8483 31.0f, 32.0f, 0.0f, 0.0f,
8486 static const float float_array_zero[4];
8487 IDirect3DTexture9 *
texture, *tex_test;
8489 ID3DXEffect *effect, *effect2;
8493 ID3DXEffectPool *
pool;
8494 float float_array[4];
8501 static const DWORD annotation_code[] =
8504 float f <
float a = 1.0;>;
8515 VertexShader = compile
vs_2_0 vs_main();
8519 0xfeff0901, 0x00000080, 0x00000000, 0x00000003, 0x00000000, 0x0000004c, 0x00000000, 0x00000000,
8520 0x00000001, 0x00000001, 0x00000000, 0x3f800000, 0x00000003, 0x00000000, 0x00000044, 0x00000000,
8521 0x00000000, 0x00000001, 0x00000001, 0x00000002, 0x00000061, 0x00000002, 0x00000066, 0x00000001,
8522 0x00000010, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x00000070, 0x00000006,
8523 0x68636574, 0x00000030, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000004, 0x00000020,
8524 0x00000000, 0x00000001, 0x00000028, 0x00000024, 0x00000074, 0x00000000, 0x00000001, 0x0000006c,
8525 0x00000000, 0x00000001, 0x00000092, 0x00000000, 0x00000058, 0x00000054, 0x00000000, 0x00000001,
8526 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000074, 0xfffe0200, 0x0014fffe,
8527 0x42415443, 0x0000001c, 0x00000023, 0xfffe0200, 0x00000000, 0x00000000, 0x20000400, 0x0000001c,
8528 0x325f7376, 0x4d00305f, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
8529 0x6d6f4320, 0x656c6970, 0x30312072, 0xab00312e, 0x0200001f, 0x80000000, 0x900f0000, 0x02000001,
8530 0xc00f0000, 0x90e40000, 0x0000ffff,
8536 skip(
"Failed to create window.\n");
8541 skip(
"Failed to create IDirect3D9 object.\n");
8551 skip(
"Failed to create IDirect3DDevice9 object, hr %#lx.\n",
hr);
8567 hr = effect->lpVtbl->BeginParameterBlock(effect);
8569 hr = effect->lpVtbl->BeginParameterBlock(effect);
8571 block = effect->lpVtbl->EndParameterBlock(effect);
8573 handle = effect->lpVtbl->EndParameterBlock(effect);
8577 effect->lpVtbl->AddRef(effect);
8578 refcount = effect->lpVtbl->Release(effect);
8579 ok(refcount == 1,
"Got unexpected refcount %lu.\n", refcount);
8581 hr = effect->lpVtbl->ApplyParameterBlock(effect,
block);
8583 hr = effect->lpVtbl->DeleteParameterBlock(effect,
block);
8586 hr = effect->lpVtbl->BeginParameterBlock(effect);
8588 hr = effect->lpVtbl->SetFloat(effect,
"vec3[0]", 1001.0f);
8590 hr = effect->lpVtbl->SetFloat(effect,
"arr1[0]", 91.0f);
8592 block = effect->lpVtbl->EndParameterBlock(effect);
8594 hr = effect->lpVtbl->ApplyParameterBlock(effect,
block);
8597 hr = effect->lpVtbl->DeleteParameterBlock(effect2,
block);
8599 hr = effect->lpVtbl->DeleteParameterBlock(effect,
block);
8602 hr = effect->lpVtbl->ApplyParameterBlock(effect,
NULL);
8604 hr = effect->lpVtbl->ApplyParameterBlock(effect,
"parameter_block");
8608 ok(
hr ==
D3D_OK,
"Got result %#lx, expected 0 (D3D_OK).\n",
hr);
8610 hr = effect->lpVtbl->BeginParameterBlock(effect);
8614 hr = effect->lpVtbl->SetTexture(effect,
"tex1", (IDirect3DBaseTexture9 *)
texture);
8617 hr = effect->lpVtbl->GetTexture(effect,
"tex1", (IDirect3DBaseTexture9 **)&tex_test);
8618 ok(
hr ==
D3D_OK && !tex_test,
"Got unexpected hr %#lx, tex_test %p.\n",
hr, tex_test);
8622 hr = effect->lpVtbl->SetFloat(effect,
"arr2[0]", 92.0f);
8624 hr = effect->lpVtbl->SetFloat(effect,
"ts1[0].fv", 28.0f);
8626 hr = effect->lpVtbl->GetFloat(effect,
"ts1[0].fv", &float_value);
8627 ok(
hr ==
D3D_OK && float_value == 12.0,
"Got unexpected hr %#lx, float_value %g.\n",
hr, float_value);
8629 float_array[0] = -29.0f;
8630 hr = effect->lpVtbl->SetFloatArray(effect,
"ts1[0].v2", float_array, 1);
8632 hr = effect->lpVtbl->GetFloatArray(effect,
"ts1[0].v2", float_array, 1);
8633 ok(
hr ==
D3D_OK && float_array[0] == 13.0,
"Got unexpected hr %#lx, float_array[0] %g.\n",
8634 hr, float_array[0]);
8637 hr = effect->lpVtbl->SetMatrix(effect,
"m3x2row", &test_mat);
8639 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2row", &
mat);
8641 ok(!
memcmp(&
mat, &effect_orig_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8642 handle = effect->lpVtbl->GetParameterByName(effect,
NULL,
"m3x2row");
8643 ok(!!
handle,
"Failed to find a parameter.\n");
8644 hr = effect->lpVtbl->GetParameterDesc(effect,
handle, &
desc);
8648 hr = effect->lpVtbl->SetMatrix(effect,
"m3x2column", &test_mat);
8650 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2column", &
mat);
8652 ok(!
memcmp(&
mat, &effect_orig_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8653 handle = effect->lpVtbl->GetParameterByName(effect,
NULL,
"m3x2column");
8654 ok(!!
handle,
"Failed to find a parameter.\n");
8655 hr = effect->lpVtbl->GetParameterDesc(effect,
handle, &
desc);
8661 hr = effect2->lpVtbl->SetFloat(effect2,
"arr2[1]", -1.0f);
8663 hr = effect->lpVtbl->GetFloat(effect,
"arr2[1]", &float_value);
8664 ok(float_value == -1.0f,
"Unexpected value %g.\n", float_value);
8668 ok(refcount == 2,
"Got unexpected refcount %lu.\n", refcount);
8670 block = effect->lpVtbl->EndParameterBlock(effect);
8675 ok(refcount == 2,
"Got unexpected refcount %lu.\n", refcount);
8677 hr = effect->lpVtbl->DeleteParameterBlock(effect2,
block);
8682 ok(refcount == 2,
"Got unexpected refcount %lu.\n", refcount);
8684 hr = effect->lpVtbl->SetFloat(effect,
"arr2[0]", 0.0f);
8686 hr = effect->lpVtbl->SetFloat(effect,
"arr2[1]", 0.0f);
8688 hr = effect->lpVtbl->SetFloatArray(effect,
"ts1[0].v1", float_array_zero, 3);
8690 hr = effect->lpVtbl->SetFloat(effect,
"ts1[0].fv", 0.0f);
8692 hr = effect->lpVtbl->SetFloatArray(effect,
"ts1[0].v2", float_array_zero, 4);
8695 hr = effect->lpVtbl->SetMatrix(effect,
"m3x2row", &
mat);
8697 hr = effect->lpVtbl->SetMatrix(effect,
"m3x2column", &
mat);
8700 hr = effect->lpVtbl->ApplyParameterBlock(effect,
block);
8705 ok(refcount == 3,
"Got unexpected refcount %lu.\n", refcount);
8707 hr = effect->lpVtbl->GetFloat(effect,
"arr2[0]", &float_value);
8708 ok(
hr ==
D3D_OK && float_value == 92.0f,
"Got unexpected hr %#lx, float_value %g.\n",
hr, float_value);
8709 hr = effect->lpVtbl->GetFloat(effect,
"arr2[1]", &float_value);
8710 ok(
hr ==
D3D_OK && float_value == 0.0f,
"Got unexpected hr %#lx, float_value %g.\n",
hr, float_value);
8712 hr = effect->lpVtbl->GetFloatArray(effect,
"ts1[0].v1", float_array, 3);
8713 ok(
hr ==
D3D_OK && !
memcmp(float_array, float_array_zero, 3 *
sizeof(*float_array)),
8714 "Got unexpected hr %#lx, ts1[0].v1 (%g, %g, %g).\n",
hr,
8715 float_array[0], float_array[1], float_array[2]);
8717 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2row", &
mat);
8719 ok(!
memcmp(&
mat, &test_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8720 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2column", &
mat);
8722 ok(!
memcmp(&
mat, &test_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8724 hr = effect->lpVtbl->GetFloat(effect,
"ts1[0].fv", &float_value);
8725 ok(
hr ==
D3D_OK && float_value == 28.0f,
"Got unexpected hr %#lx, float_value %g.\n",
hr, float_value);
8727 hr = effect->lpVtbl->GetFloatArray(effect,
"ts1[0].v2", float_array, 4);
8729 && !
memcmp(float_array + 1, float_array_zero, 3 *
sizeof(*float_array)),
8730 "Got unexpected hr %#lx, ts1[0].v2 (%g, %g, %g, %g).\n",
hr,
8731 float_array[0], float_array[1], float_array[2], float_array[3]);
8734 hr = effect->lpVtbl->SetFloat(effect,
"arr2[0]", 0.0f);
8736 hr = effect->lpVtbl->SetFloat(effect,
"arr2[1]", 0.0f);
8738 hr = effect->lpVtbl->SetFloatArray(effect,
"ts1[0].v1", float_array_zero, 3);
8740 hr = effect->lpVtbl->SetFloat(effect,
"ts1[0].fv", 0.0f);
8742 hr = effect->lpVtbl->SetFloatArray(effect,
"ts1[0].v2", float_array_zero, 4);
8745 hr = effect->lpVtbl->SetMatrix(effect,
"m3x2row", &effect_orig_mat);
8747 hr = effect->lpVtbl->SetMatrix(effect,
"m3x2column", &effect_orig_mat);
8750 hr = effect->lpVtbl->BeginParameterBlock(effect);
8752 hr = effect->lpVtbl->ApplyParameterBlock(effect,
block);
8755 hr = effect->lpVtbl->GetFloat(effect,
"arr2[0]", &float_value);
8756 ok(
hr ==
D3D_OK && float_value == 0.0f,
"Got unexpected hr %#lx, float_value %g.\n",
hr, float_value);
8757 hr = effect->lpVtbl->GetFloat(effect,
"arr2[1]", &float_value);
8758 ok(
hr ==
D3D_OK && float_value == 0.0f,
"Got unexpected hr %#lx, float_value %g.\n",
hr, float_value);
8760 hr = effect->lpVtbl->GetFloatArray(effect,
"ts1[0].v1", float_array, 3);
8761 ok(
hr ==
D3D_OK && !
memcmp(float_array, float_array_zero, 3 *
sizeof(*float_array)),
8762 "Got unexpected hr %#lx, ts1[0].v1 (%g, %g, %g).\n",
hr,
8763 float_array[0], float_array[1], float_array[2]);
8765 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2row", &
mat);
8767 ok(!
memcmp(&
mat, &effect_orig_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8768 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2column", &
mat);
8770 ok(!
memcmp(&
mat, &effect_orig_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8772 hr = effect->lpVtbl->GetFloat(effect,
"ts1[0].fv", &float_value);
8773 ok(
hr ==
D3D_OK && float_value == 0.0f,
"Got unexpected hr %#lx, float_value %g.\n",
hr, float_value);
8775 hr = effect->lpVtbl->GetFloatArray(effect,
"ts1[0].v2", float_array, 4);
8777 && !
memcmp(float_array + 1, float_array_zero, 3 *
sizeof(*float_array)),
8778 "Got unexpected hr %#lx, ts1[0].v2 (%g, %g, %g, %g).\n",
hr,
8779 float_array[0], float_array[1], float_array[2], float_array[3]);
8781 block2 = effect->lpVtbl->EndParameterBlock(effect);
8784 hr = effect->lpVtbl->ApplyParameterBlock(effect,
block2);
8787 hr = effect->lpVtbl->GetFloat(effect,
"arr2[0]", &float_value);
8788 ok(
hr ==
D3D_OK && float_value == 92.0f,
"Got unexpected hr %#lx, float_value %g.\n",
hr, float_value);
8789 hr = effect->lpVtbl->GetFloat(effect,
"arr2[1]", &float_value);
8790 ok(
hr ==
D3D_OK && float_value == 0.0f,
"Got unexpected hr %#lx, float_value %g.\n",
hr, float_value);
8792 hr = effect->lpVtbl->GetFloatArray(effect,
"ts1[0].v1", float_array, 3);
8793 ok(
hr ==
D3D_OK && !
memcmp(float_array, float_array_zero, 3 *
sizeof(*float_array)),
8794 "Got unexpected hr %#lx, ts1[0].v1 (%g, %g, %g).\n",
hr,
8795 float_array[0], float_array[1], float_array[2]);
8797 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2row", &
mat);
8799 ok(!
memcmp(&
mat, &test_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8800 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2column", &
mat);
8802 ok(!
memcmp(&
mat, &test_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8804 hr = effect->lpVtbl->GetFloat(effect,
"ts1[0].fv", &float_value);
8805 ok(
hr ==
D3D_OK && float_value == 28.0f,
"Got unexpected hr %#lx, float_value %g.\n",
hr, float_value);
8807 hr = effect->lpVtbl->GetFloatArray(effect,
"ts1[0].v2", float_array, 4);
8809 && !
memcmp(float_array + 1, float_array_zero, 3 *
sizeof(*float_array)),
8810 "Got unexpected hr %#lx, ts1[0].v2 (%g, %g, %g, %g).\n",
hr,
8811 float_array[0], float_array[1], float_array[2], float_array[3]);
8813 hr = effect->lpVtbl->DeleteParameterBlock(effect,
block);
8815 hr = effect->lpVtbl->DeleteParameterBlock(effect,
block2);
8818 hr = effect->lpVtbl->SetTexture(effect,
"tex1",
NULL);
8821 ok(!refcount,
"Got unexpected refcount %lu.\n", refcount);
8823 refcount = effect->lpVtbl->Release(effect);
8824 ok(!refcount,
"Got unexpected refcount %lu.\n", refcount);
8826 refcount = effect2->lpVtbl->Release(effect2);
8827 ok(!refcount,
"Got unexpected refcount %lu.\n", refcount);
8829 refcount =
pool->lpVtbl->Release(
pool);
8830 ok(!refcount,
"Got unexpected refcount %lu.\n", refcount);
8834 hr = effect->lpVtbl->BeginParameterBlock(effect);
8836 mat_arr[0] = mat_arr[1] = test_mat;
8837 hr = effect->lpVtbl->SetMatrixArray(effect,
"f33_2", mat_arr, 2);
8839 block = effect->lpVtbl->EndParameterBlock(effect);
8842 memset(mat_arr, 0,
sizeof(mat_arr));
8843 hr = effect->lpVtbl->SetMatrixArray(effect,
"f33_2", mat_arr, 2);
8845 hr = effect->lpVtbl->ApplyParameterBlock(effect,
block);
8848 hr = effect->lpVtbl->GetMatrixArray(effect,
"f33_2", mat_arr, 2);
8850 ok(!
memcmp(&mat_arr[0], &test_mat,
sizeof(test_mat))
8851 && !
memcmp(&mat_arr[1], &test_mat,
sizeof(test_mat)),
"Got unexpected matrix array.\n");
8853 refcount = effect->lpVtbl->Release(effect);
8854 ok(!refcount,
"Got unexpected refcount %lu.\n", refcount);
8860 hr = effect->lpVtbl->GetFloat(effect,
"f@a", &float_value);
8862 ok(float_value == 1.0f,
"Got float %.8e.\n", float_value);
8863 hr = effect->lpVtbl->SetFloat(effect,
"f@a", 2.0f);
8865 hr = effect->lpVtbl->GetFloat(effect,
"f@a", &float_value);
8867 ok(float_value == 2.0f,
"Got float %.8e.\n", float_value);
8869 hr = effect->lpVtbl->BeginParameterBlock(effect);
8871 hr = effect->lpVtbl->SetFloat(effect,
"f@a", 3.0f);
8873 hr = effect->lpVtbl->GetFloat(effect,
"f@a", &float_value);
8875 ok(float_value == 2.0f,
"Got float %.8e.\n", float_value);
8876 block = effect->lpVtbl->EndParameterBlock(effect);
8878 hr = effect->lpVtbl->ApplyParameterBlock(effect,
block);
8880 hr = effect->lpVtbl->GetFloat(effect,
"f@a", &float_value);
8882 ok(float_value == 3.0f,
"Got float %.8e.\n", float_value);
8884 refcount = effect->lpVtbl->Release(effect);
8885 ok(!refcount,
"Got unexpected refcount %lu.\n", refcount);
8888 ok(!refcount,
"Device has %lu references left.\n", refcount);
8923 ok(!refcount,
"Device has %lu references left.\n", refcount);
static unsigned char bytes[4]
#define InterlockedIncrement
#define InterlockedDecrement
#define D3DERR_INVALIDCALL
enum _D3DTEXTURESTAGESTATETYPE D3DTEXTURESTAGESTATETYPE
#define D3DPS_VERSION(major, minor)
enum _D3DTRANSFORMSTATETYPE D3DTRANSFORMSTATETYPE
#define D3DVS_VERSION(major, minor)
#define D3DTS_WORLDMATRIX(index)
IDirect3D9 *WINAPI Direct3DCreate9(UINT SDKVersion)
#define IDirect3DDevice9_GetLight(p, a, b)
#define IDirect3DDevice9_GetTexture(p, a, b)
#define IDirect3DDevice9_GetPixelShaderConstantB(p, a, b, c)
#define IDirect3DDevice9_SetLight(p, a, b)
#define IDirect3DDevice9_LightEnable(p, a, b)
#define IDirect3DDevice9_GetPixelShaderConstantI(p, a, b, c)
#define IDirect3DTexture9_AddRef(p)
#define IDirect3DDevice9_GetVertexShader(p, a)
#define IDirect3D9_CreateDevice(p, a, b, c, d, e, f)
#define IDirect3DDevice9_CreateTexture(p, a, b, c, d, e, f, g, h)
#define IDirect3DDevice9_SetRenderState(p, a, b)
#define IDirect3DDevice9_GetPixelShaderConstantF(p, a, b, c)
#define IDirect3DDevice9_GetDeviceCaps(p, a)
#define IDirect3DDevice9_SetPixelShaderConstantI(p, a, b, c)
#define IDirect3DVertexShader9_GetFunction(p, a, b)
#define IDirect3DDevice9_SetVertexShaderConstantF(p, a, b, c)
#define IDirect3DDevice9_SetTransform(p, a, b)
#define IDirect3D9_Release(p)
#define IDirect3DVertexShader9_Release(p)
#define IDirect3DDevice9_SetPixelShaderConstantF(p, a, b, c)
#define IDirect3DDevice9_SetVertexShader(p, a)
#define IDirect3DDevice9_Release(p)
#define IDirect3DBaseTexture9_Release(p)
#define IDirect3DDevice9_GetRenderState(p, a, b)
#define IDirect3DDevice9_SetPixelShaderConstantB(p, a, b, c)
#define IDirect3DDevice9_GetVertexShaderConstantF(p, a, b, c)
#define IDirect3DDevice9_GetSamplerState(p, a, b, c)
#define IDirect3DDevice9_GetTransform(p, a, b)
#define IDirect3DDevice9_GetLightEnable(p, a, b)
#define IDirect3DDevice9_GetTextureStageState(p, a, b, c)
#define IDirect3DDevice9_SetTexture(p, a, b)
#define IDirect3DTexture9_Release(p)
#define IDirect3DDevice9_AddRef(p)
#define IDirect3DDevice9_QueryInterface(p, a, b)
#define IDirect3DDevice9_SetSamplerState(p, a, b, c)
#define D3DVERTEXTEXTURESAMPLER2
enum _D3DSAMPLERSTATETYPE D3DSAMPLERSTATETYPE
#define D3DVERTEXTEXTURESAMPLER0
#define D3DVERTEXTEXTURESAMPLER1
static SIZE_T const char const D3D_SHADER_MACRO ID3DInclude * include
static const DWORD vs_2_0[]
struct ID3DXBuffer ID3DXBuffer
static void set_number(void *outdata, D3DXPARAMETER_TYPE outtype, const void *indata, D3DXPARAMETER_TYPE intype)
HRESULT WINAPI D3DXCreateEffectFromFileExW(struct IDirect3DDevice9 *device, const WCHAR *srcfile, const D3DXMACRO *defines, struct ID3DXInclude *include, const char *skipconstants, DWORD flags, struct ID3DXEffectPool *pool, struct ID3DXEffect **effect, struct ID3DXBuffer **messages)
#define INT_FLOAT_MULTI_INVERSE
HRESULT WINAPI D3DXCreateEffectCompiler(const char *data, UINT data_size, const D3DXMACRO *defines, ID3DXInclude *include, DWORD flags, ID3DXEffectCompiler **compiler, ID3DXBuffer **messages)
HRESULT WINAPI D3DXCreateEffectPool(ID3DXEffectPool **pool)
HRESULT WINAPI D3DXCreateEffect(struct IDirect3DDevice9 *device, const void *data, UINT data_size, const D3DXMACRO *defines, struct ID3DXInclude *include, DWORD flags, struct ID3DXEffectPool *pool, struct ID3DXEffect **effect, struct ID3DXBuffer **messages)
HRESULT WINAPI D3DXCreateEffectEx(struct IDirect3DDevice9 *device, const void *srcdata, UINT srcdatalen, const D3DXMACRO *defines, struct ID3DXInclude *include, const char *skip_constants, DWORD flags, struct ID3DXEffectPool *pool, struct ID3DXEffect **effect, struct ID3DXBuffer **compilation_errors)
HRESULT WINAPI D3DXCreateTexture(struct IDirect3DDevice9 *device, UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format, D3DPOOL pool, struct IDirect3DTexture9 **texture)
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
#define INVALID_HANDLE_VALUE
#define CreateFileA(a, b, c, d, e, f, g)
#define FILE_ATTRIBUTE_NORMAL
#define MultiByteToWideChar
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
BOOL WINAPI RemoveDirectoryA(IN LPCSTR lpPathName)
BOOL WINAPI CreateDirectoryA(IN LPCSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
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 GetTempPathA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
_ACRTIMP double __cdecl atan(double)
_ACRTIMP double __cdecl sin(double)
_ACRTIMP double __cdecl asin(double)
_ACRTIMP double __cdecl cos(double)
_ACRTIMP double __cdecl atan2(double, double)
_ACRTIMP double __cdecl acos(double)
_ACRTIMP void __cdecl qsort(void *, size_t, size_t, int(__cdecl *)(const void *, const void *))
_ACRTIMP size_t __cdecl strlen(const char *)
_ACRTIMP int __cdecl strcmp(const char *, const char *)
_ACRTIMP int __cdecl strncmp(const char *, const char *, size_t)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
#define ID3DXBuffer_GetBufferPointer(p)
#define ID3DXBuffer_Release(p)
#define D3DXFX_DONOTSAVESTATE
#define D3DXFX_NOT_CLONEABLE
#define D3DXFX_LARGEADDRESSAWARE
struct _D3DMATRIX D3DXMATRIX
enum _D3DXINCLUDE_TYPE D3DXINCLUDE_TYPE
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLboolean GLboolean GLboolean b
GLfloat GLfloat GLfloat GLfloat v3
GLboolean GLboolean GLboolean GLboolean a
GLfloat GLfloat GLfloat v2
GLfloat GLfloat GLfloat GLfloat h
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
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 GLint GLint j
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 light
static ID3D11Device * create_device(void)
REFIID LPVOID DWORD_PTR dw
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define todo_wine_if(is_todo)
void __cdecl void __cdecl void __cdecl void __cdecl void __cdecl void winetest_pop_context(void)
void __cdecl void __cdecl void __cdecl void __cdecl void __cdecl winetest_push_context(const char *fmt,...) __WINE_PRINTF_ATTR(1
#define memcpy(s1, s2, n)
D3D11_SHADER_VARIABLE_DESC desc
static const DWORD test_effect_parameter_value_blob_object[]
static void test_effect_parameter_value_GetMatrixTransposeArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
static void test_effect_parameter_value_GetBoolArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
static HRESULT WINAPI test_manager_SetTextureStageState(ID3DXEffectStateManager *iface, DWORD stage, D3DTEXTURESTAGESTATETYPE type, DWORD value)
#define EFFECT_PARAMETER_VALUE_ARRAY_SIZE
static void test_isparameterused_param_with_children_(unsigned int line, ID3DXEffect *effect, ID3DXEffect *effect2, D3DXHANDLE tech, const char *name, BOOL expected_result)
static HRESULT WINAPI test_manager_SetLight(ID3DXEffectStateManager *iface, DWORD index, const D3DLIGHT9 *light)
static HRESULT WINAPI test_manager_LightEnable(ID3DXEffectStateManager *iface, DWORD index, BOOL enable)
#define ADD_PARAMETER_VALUE(x)
static const struct @1913 test_effect_preshader_op_expected[]
static void test_effect_parameter_value_GetInt(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
static void test_effect_preshader_compare_pbool_consts_(unsigned int line, IDirect3DDevice9 *device, const unsigned int *const_updated_mask, const char *updated_param)
static void test_effect_parameter_value_GetMatrixTransposePointerArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
static void test_effect_get_pass_desc(IDirect3DDevice9 *device)
static const DWORD test_effect_parameter_value_blob_special[]
#define INITIAL_UPDATE_RECORD_SIZE
static const struct test_effect_parameter_value_result test_effect_parameter_value_result_special[]
#define test_effect_shared_vs_arr_compare_helper(...)
static void test_effect_parameter_value_GetBool(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
static void test_effect_isparameterused(IDirect3DDevice9 *device)
static void test_effect_parameter_value_GetMatrixArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
static HRESULT WINAPI test_manager_SetNPatchMode(ID3DXEffectStateManager *iface, FLOAT num_segments)
static void test_effect_compilation_errors(IDirect3DDevice9 *device)
static void test_effect_parameter_value_reset(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
@ EXPECTED_STATE_ANYTHING
static HRESULT WINAPI test_manager_SetVertexShader(ID3DXEffectStateManager *iface, struct IDirect3DVertexShader9 *shader)
static void test_effect_state_manager_init(struct test_manager *state_manager, IDirect3DDevice9 *device)
static HRESULT WINAPI test_manager_SetRenderState(ID3DXEffectStateManager *iface, D3DRENDERSTATETYPE state, DWORD value)
static void test_effect_parameter_value(IDirect3DDevice9 *device)
static const DWORD test_effect_preshader_ops_blob[]
static void test_effect_unsupported_shader(void)
static HRESULT WINAPI test_manager_SetMaterial(ID3DXEffectStateManager *iface, const D3DMATERIAL9 *material)
static const DWORD test_effect_states_effect_blob[]
static INT get_int(D3DXPARAMETER_TYPE type, const void *data)
static ULONG WINAPI test_manager_Release(ID3DXEffectStateManager *iface)
static int compare_update_record(const void *a, const void *b)
static float get_float(D3DXPARAMETER_TYPE type, const void *data)
static BOOL create_directory(const char *name)
static void test_create_effect_from_file(void)
static const D3DXVECTOR4 fvect_filler
static void test_effect_shared_parameters(IDirect3DDevice9 *device)
static HRESULT WINAPI test_manager_SetPixelShaderConstantI(ID3DXEffectStateManager *iface, UINT register_index, const INT *constant_data, UINT register_count)
#define test_effect_preshader_compare_pbool_consts(a, b, c)
static void test_effect_parameter_value_GetMatrixPointerArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
static void test_effect_shared_parameters_compare_vconst_(unsigned int line, IDirect3DDevice9 *device, unsigned int index, const D3DXVECTOR4 *expected_fvect, BOOL todo)
static void free_test_effect_state_manager(struct test_manager *state_manager)
static BOOL compare_uint(unsigned int x, unsigned int y, unsigned int max_diff)
static char temp_path[MAX_PATH]
static const DWORD test_effect_preshader_effect_blob[]
static void test_effect_null_shader(void)
#define TEST_EFFECT_BITMASK_BLOCK_SIZE
static const BOOL test_effect_preshader_bconsts[]
static void test_effect_state_manager(IDirect3DDevice9 *device)
static void test_effect_parameter_value_GetFloat(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
static const struct test_effect_parameter_value_result test_effect_parameter_value_result_object[]
#define test_isparameterused_param_with_children(...)
static const struct @1912 test_effect_parameter_value_data[]
static void test_effect_skip_constants(IDirect3DDevice9 *device)
static const DWORD test_effect_parameter_value_blob_int[]
static void test_effect_preshader_op_results_(unsigned int line, IDirect3DDevice9 *device, const enum expected_state_update *expected_state, const char *updated_param)
static void test_effect_states(IDirect3DDevice9 *device)
#define TEST_EFFECT_UNSUPPORTED_SHADER_BYTECODE_VS_3_0_LEN
static void test_effect_parameter_block(void)
static const char effect_desc[]
static HRESULT WINAPI test_manager_SetTransform(ID3DXEffectStateManager *iface, D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix)
static void test_effect_preshader_ops(IDirect3DDevice9 *device)
#define TEST_EFFECT_PRESHADER_VSHADER_LEN
#define TEST_EFFECT_PRESHADER_VSHADER_POS
static HRESULT WINAPI test_manager_SetVertexShaderConstantI(ID3DXEffectStateManager *iface, UINT register_index, const INT *constant_data, UINT register_count)
static void test_effect_preshader_clear_pbool_consts(IDirect3DDevice9 *device)
#define TEST_EFFECT_STATES_VSHADER_POS
static void test_effect_preshader_compare_shader_bytecode_(unsigned int line, const DWORD *bytecode, unsigned int bytecode_size, int expected_shader_index, BOOL todo)
static HRESULT WINAPI d3dxinclude_close(ID3DXInclude *iface, const void *data)
static void test_isparameterused_children(unsigned int line, ID3DXEffect *effect, D3DXHANDLE tech, D3DXHANDLE param)
static void test_effect_large_address_aware_flag(IDirect3DDevice9 *device)
static void test_effect_parameter_value_GetVectorArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
static void delete_directory(const char *name)
static const struct ID3DXIncludeVtbl d3dxinclude_vtbl
static void test_effect_clone(void)
static BOOL get_bool(const void *data)
static void test_effect_preshader(IDirect3DDevice9 *device)
static void test_effect_preshader_relative_addressing(IDirect3DDevice9 *device)
static void test_effect_parameter_value_GetIntArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
static void test_refcount(void)
#define TEST_EFFECT_UNSUPPORTED_SHADER_BYTECODE_VS_3_0_POS
static void test_effect_parameter_value_GetFloatArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
#define test_effect_preshader_compare_vconsts(a, b, c)
static struct test_manager * impl_from_ID3DXEffectStateManager(ID3DXEffectStateManager *iface)
static HRESULT WINAPI test_manager_SetPixelShaderConstantF(ID3DXEffectStateManager *iface, UINT register_index, const FLOAT *constant_data, UINT register_count)
static void test_effect_parameter_value_GetMatrix(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
static void test_effect_parameter_values(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
static void test_effect_commitchanges(IDirect3DDevice9 *device)
static HRESULT WINAPI d3dxinclude_open(ID3DXInclude *iface, D3DXINCLUDE_TYPE include_type, const char *filename, const void *parent_data, const void **data, UINT *bytes)
static void test_effect_out_of_bounds_selector(IDirect3DDevice9 *device)
static void test_effect_preshader_compare_vconsts_(unsigned int line, IDirect3DDevice9 *device, const unsigned int *const_updated_mask, const char *updated_param)
#define test_effect_shared_parameters_compare_vconst(...)
const struct test_effect_parameter_value_result * res
static void test_create_effect_and_pool(IDirect3DDevice9 *device)
static const DWORD test_effect_variable_names_blob[]
static const DWORD test_effect_unsupported_shader_blob[]
static void test_effect_parameter_value_GetValue(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
static ULONG WINAPI test_manager_AddRef(ID3DXEffectStateManager *iface)
static void test_cross_effect_handle(IDirect3DDevice9 *device)
static HRESULT WINAPI test_manager_SetFVF(ID3DXEffectStateManager *iface, DWORD format)
static void test_effect_parameter_value_GetMatrixTranspose(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
static void test_effect_preshader_compare_shader_(unsigned int line, IDirect3DDevice9 *device, int expected_shader_index, BOOL todo)
static HRESULT test_process_set_state(ID3DXEffectStateManager *iface, unsigned int state_op, DWORD param1, DWORD param2)
static HRESULT WINAPI test_manager_SetPixelShaderConstantB(ID3DXEffectStateManager *iface, UINT register_index, const BOOL *constant_data, UINT register_count)
static void test_effect_setvalue_object(IDirect3DDevice9 *device)
static void test_effect_variable_names(IDirect3DDevice9 *device)
static HRESULT WINAPI test_manager_SetVertexShaderConstantB(ID3DXEffectStateManager *iface, UINT register_index, const BOOL *constant_data, UINT register_count)
static const char * test_effect_state_manager_state_names[]
static const DWORD test_effect_parameter_value_blob_float[]
static const DWORD test_effect_skip_constants_blob[]
#define test_effect_preshader_op_results(a, b, c)
static void test_effect_parameter_value_GetVector(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter)
#define test_effect_preshader_compare_shader_bytecode(a, b, c, d)
static const struct test_effect_parameter_value_result test_effect_parameter_value_result_int[]
static HRESULT WINAPI test_manager_SetSamplerState(ID3DXEffectStateManager *iface, DWORD sampler, D3DSAMPLERSTATETYPE type, DWORD value)
static const DWORD test_effect_null_shader_blob[]
static HRESULT WINAPI test_manager_SetTexture(ID3DXEffectStateManager *iface, DWORD stage, struct IDirect3DBaseTexture9 *texture)
static void test_effect_clear_vconsts(IDirect3DDevice9 *device)
static HRESULT WINAPI test_manager_SetPixelShader(ID3DXEffectStateManager *iface, struct IDirect3DPixelShader9 *shader)
static HRESULT WINAPI test_manager_SetVertexShaderConstantF(ID3DXEffectStateManager *iface, UINT register_index, const FLOAT *constant_data, UINT register_count)
static void test_effect_shared_vs_arr_compare_helper_(unsigned int line, ID3DXEffect *effect, D3DXHANDLE param_child, struct IDirect3DVertexShader9 *vshader1, unsigned int element, BOOL todo)
static const DWORD test_two_techniques_blob[]
static unsigned int get_texture_refcount(IDirect3DTexture9 *iface)
static const D3DXVECTOR4 test_effect_preshader_fvect_v[]
#define test_effect_preshader_compare_shader(a, b, c)
static void test_create_effect_compiler(void)
static const DWORD test_effect_shared_parameters_blob[]
static void test_effect_find_next_valid_technique(void)
static const struct test_effect_parameter_value_result test_effect_parameter_value_result_float[]
#define compare_float(got, exp)
#define create_file(name, size)
const WCHAR * expected_result
static IHTMLWindow2 * window
static CHAR string2[MAX_PATH]
#define cmp(status, error)
static float(__cdecl *square_half_float)(float x
#define WS_OVERLAPPEDWINDOW
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI DestroyWindow(_In_ HWND)
#define D3DADAPTER_DEFAULT
#define D3DCREATE_HARDWARE_VERTEXPROCESSING
DWORD VertexShaderVersion
D3DXPARAMETER_CLASS Class
ID3DXInclude ID3DXInclude_iface
union test_effect_parameter_value_result::@1914 value
struct test_state_manager_update * update_record
IDirect3DDevice9 * device
ID3DXEffectStateManager ID3DXEffectStateManager_iface
unsigned int update_record_size
unsigned int update_record_count
#define CONTAINING_RECORD(address, type, field)
static unsigned int block