62 ok(0,
"Unhandled type %x.\n",
type);
89 ok(0,
"Unhandled type %x.\n",
type);
121 *(
INT *)outdata = 0x12345678;
125 ok(0,
"Unhandled type %x.\n", outtype);
144 skip(
"Couldn't create application window.\n");
150 skip(
"Couldn't create IDirect3D9 object.\n");
158 &present_parameters, &
device);
162 skip(
"Failed to create IDirect3DDevice9 object %#x.\n",
hr);
237 ID3DXBaseEffect *
base;
239 IDirect3DDevice9 *device2;
240 ID3DXEffectStateManager *manager = (ID3DXEffectStateManager *)0xdeadbeef;
241 ID3DXEffectPool *
pool = (ID3DXEffectPool *)0xdeadbeef, *pool2;
253 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK)\n",
hr);
259 skip(
"Failed to compile effect, skipping test.\n");
266 hr = effect->lpVtbl->GetStateManager(effect,
NULL);
269 hr = effect->lpVtbl->GetStateManager(effect, &manager);
270 ok(
hr ==
D3D_OK,
"GetStateManager failed, got %x, expected 0 (D3D_OK)\n",
hr);
271 ok(!manager,
"GetStateManager failed, got %p\n", manager);
274 hr = effect->lpVtbl->SetStateManager(effect, (ID3DXEffectStateManager *)
device);
275 ok(
hr ==
D3D_OK,
"SetStateManager failed, got %x, expected 0 (D3D_OK)\n",
hr);
277 hr = effect->lpVtbl->GetStateManager(effect, &manager);
278 ok(
hr ==
D3D_OK,
"GetStateManager failed, got %x, expected 0 (D3D_OK)\n",
hr);
279 ok(manager !=
NULL,
"GetStateManager failed\n");
283 ok(
count == 4,
"Release failed, got %u, expected 4\n",
count);
285 count = IUnknown_Release(manager);
286 ok(
count == 3,
"Release failed, got %u, expected 3\n",
count);
288 hr = effect->lpVtbl->SetStateManager(effect,
NULL);
289 ok(
hr ==
D3D_OK,
"SetStateManager failed, got %x, expected 0 (D3D_OK)\n",
hr);
291 hr = effect->lpVtbl->GetPool(effect, &
pool);
292 ok(
hr ==
D3D_OK,
"GetPool failed, got %x, expected 0 (D3D_OK)\n",
hr);
295 hr = effect->lpVtbl->GetPool(effect,
NULL);
298 hr = effect->lpVtbl->GetDevice(effect, &device2);
299 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK)\n",
hr);
301 hr = effect->lpVtbl->GetDevice(effect,
NULL);
305 ok(
count == 2,
"Release failed, got %u, expected 2\n",
count);
307 count = effect->lpVtbl->Release(effect);
314 ok(
hr ==
S_OK,
"Got result %x, expected 0 (S_OK)\n",
hr);
320 ok(
hr ==
S_OK,
"Got result %x, expected 0 (S_OK)\n",
hr);
323 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK)\n",
hr);
325 hr =
pool->lpVtbl->QueryInterface(
pool, &IID_ID3DXEffectPool, (
void **)&pool2);
326 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK)\n",
hr);
327 ok(
pool == pool2,
"Got effect pool %p, expected %p.\n", pool2,
pool);
330 ok(
count == 1,
"Release failed, got %u, expected 1\n",
count);
333 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK)\n",
hr);
336 ok(
count == 1,
"Release failed, got %u, expected 1\n",
count);
339 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK)\n",
hr);
341 hr = effect->lpVtbl->GetPool(effect, &
pool);
342 ok(
hr ==
D3D_OK,
"GetPool failed, got %x, expected 0 (D3D_OK)\n",
hr);
343 ok(
pool == pool2,
"Got effect pool %p, expected %p.\n", pool2,
pool);
346 ok(
count == 2,
"Release failed, got %u, expected 2\n",
count);
348 count = effect->lpVtbl->Release(effect);
358 ID3DXEffectCompiler *compiler, *compiler2;
359 ID3DXBaseEffect *
base;
373 skip(
"D3DXCreateEffectCompiler failed, skipping test.\n");
377 count = compiler->lpVtbl->Release(compiler);
398 hr = compiler->lpVtbl->
QueryInterface(compiler, &IID_ID3DXEffectCompiler, (
void **)&compiler2);
399 ok(
hr ==
D3D_OK,
"QueryInterface failed, got %x, expected %x (D3D_OK)\n",
hr,
D3D_OK);
402 ok(
hr ==
D3D_OK,
"QueryInterface failed, got %x, expected %x (D3D_OK)\n",
hr,
D3D_OK);
405 ok(
count == 2,
"Release failed, got %u, expected %u\n",
count, 2);
407 count = compiler2->lpVtbl->Release(compiler2);
408 ok(
count == 1,
"Release failed, got %u, expected %u\n",
count, 1);
410 count = compiler->lpVtbl->Release(compiler);
430float2
f2 = {2.1, 2.2};
431float3
f3 = {3.1, 3.2, 3.3};
432float4
f4 = {4.1, 4.2, 4.3, 4.4};
433float1x1 f11 = {11.1};
434float1x2 f12 = {12.1, 12.2};
435float1x3 f13 = {13.1, 13.2, 13.3};
436float1x4 f14 = {14.1, 14.2, 14.3, 14.4};
437float2x1 f21 = {{21.11, 21.21}};
438float2x2 f22 = {{22.11, 22.21}, {22.12, 22.22}};
439float2x3 f23 = {{23.11, 23.21}, {23.12, 23.22}, {23.13, 23.23}};
440float2x4 f24 = {{24.11, 24.21}, {24.12, 24.22}, {24.13, 24.23}, {24.14, 24.24}};
441float3x1 f31 = {{31.11, 31.21, 31.31}};
442float3x2 f32 = {{32.11, 32.21, 32.31}, {32.12, 32.22, 32.32}};
443float3x3 f33 = {{33.11, 33.21, 33.31}, {33.12, 33.22, 33.32},
444 {33.13, 33.23, 33.33}};
445float3x4 f34 = {{34.11, 34.21, 34.31}, {34.12, 34.22, 34.32},
446 {34.13, 34.23, 34.33}, {34.14, 34.24, 34.34}};
447float4x1 f41 = {{41.11, 41.21, 41.31, 41.41}};
448float4x2 f42 = {{42.11, 42.21, 42.31, 42.41}, {42.12, 42.22, 42.32, 42.42}};
449float4x3 f43 = {{43.11, 43.21, 43.31, 43.41}, {43.12, 43.22, 43.32, 43.42},
450 {43.13, 43.23, 43.33, 43.43}};
451float4x4 f44 = {{44.11, 44.21, 44.31, 44.41}, {44.12, 44.22, 44.32, 44.42},
452 {44.13, 44.23, 44.33, 44.43}, {44.14, 44.24, 44.34, 44.44}};
453float f_2[2] = {0.101, 0.102};
454float1 f1_2[2] = {{1.101}, {1.102}};
455float2 f2_2[2] = {{2.101, 2.201}, {2.102, 2.202}};
456float3 f3_2[2] = {{3.101, 3.201, 3.301}, {3.102, 3.202, 3.302}};
457float4 f4_2[2] = {{4.101, 4.201, 4.301, 4.401}, {4.102, 4.202, 4.302, 4.402}};
458float1x1 f11_2[2] = {{11.101}, {11.102}};
459float1x2 f12_2[2] = {{12.101, 12.201}, {12.102, 12.202}};
460float1x3 f13_2[2] = {{13.101, 13.201, 13.301}, {13.102, 13.202, 13.302}};
461float1x4 f14_2[2] = {{14.101, 14.201, 14.301, 14.401}, {14.102, 14.202, 14.302, 14.402}};
462float2x1 f21_2[2] = {{{21.1101, 21.2101}}, {{21.1102, 21.2102}}};
463float2x2 f22_2[2] = {{{22.1101, 22.2101}, {22.1201, 22.2201}}, {{22.1102, 22.2102}, {22.1202, 22.2202}}};
464float2x3 f23_2[2] = {{{23.1101, 23.2101}, {23.1201, 23.2201}, {23.1301, 23.2301}}, {{23.1102, 23.2102},
465 {23.1202, 23.2202}, {23.1302, 23.2302}}};
466float2x4 f24_2[2] = {{{24.1101, 24.2101}, {24.1201, 24.2201}, {24.1301, 24.2301}, {24.1401, 24.2401}},
467 {{24.1102, 24.2102}, {24.1202, 24.2202}, {24.1302, 24.2302}, {24.1402, 24.2402}}};
468float3x1 f31_2[2] = {{{31.1101, 31.2101, 31.3101}}, {{31.1102, 31.2102, 31.3102}}};
469float3x2 f32_2[2] = {{{32.1101, 32.2101, 32.3101}, {32.1201, 32.2201, 32.3201}},
470 {{32.1102, 32.2102, 32.3102}, {32.1202, 32.2202, 32.3202}}};
471float3x3 f33_2[2] = {{{33.1101, 33.2101, 33.3101}, {33.1201, 33.2201, 33.3201},
472 {33.1301, 33.2301, 33.3301}}, {{33.1102, 33.2102, 33.3102}, {33.1202, 33.2202, 33.3202},
473 {33.1302, 33.2302, 33.3302}}};
474float3x4 f34_2[2] = {{{34.1101, 34.2101, 34.3101}, {34.1201, 34.2201, 34.3201},
475 {34.1301, 34.2301, 34.3301}, {34.1401, 34.2401, 34.3401}}, {{34.1102, 34.2102, 34.3102},
476 {34.1202, 34.2202, 34.3202}, {34.1302, 34.2302, 34.3302}, {34.1402, 34.2402, 34.3402}}};
477float4x1 f41_2[2] = {{{41.1101, 41.2101, 41.3101, 41.4101}}, {{41.1102, 41.2102, 41.3102, 41.4102}}};
478float4x2 f42_2[2] = {{{42.1101, 42.2101, 42.3101, 42.4101}, {42.1201, 42.2201, 42.3201, 42.4201}},
479 {{42.1102, 42.2102, 42.3102, 42.4102}, {42.1202, 42.2202, 42.3202, 42.4202}}};
480float4x3 f43_2[2] = {{{43.1101, 43.2101, 43.3101, 43.4101}, {43.1201, 43.2201, 43.3201, 43.4201},
481 {43.1301, 43.2301, 43.3301, 43.4301}}, {{43.1102, 43.2102, 43.3102, 43.4102},
482 {43.1202, 43.2202, 43.3202, 43.4202}, {43.1302, 43.2302, 43.3302, 43.4302}}};
483float4x4 f44_2[2] = {{{44.1101, 44.2101, 44.3101, 44.4101}, {44.1201, 44.2201, 44.3201, 44.4201},
484 {44.1301, 44.2301, 44.3301, 44.4301}, {44.1401, 44.2401, 44.3401, 44.4401}},
485 {{44.1102, 44.2102, 44.3102, 44.4102}, {44.1202, 44.2202, 44.3202, 44.4202},
486 {44.1302, 44.2302, 44.3302, 44.4302}, {44.1402, 44.2402, 44.3402, 44.4402}}};
4910xfeff0901, 0x00000b80, 0x00000000, 0x00000003, 0x00000000, 0x00000024, 0x00000000, 0x00000000,
4920x00000001, 0x00000001, 0x3dcccccd, 0x00000002, 0x00000066, 0x00000003, 0x00000001, 0x0000004c,
4930x00000000, 0x00000000, 0x00000001, 0x00000001, 0x3f8ccccd, 0x00000003, 0x00003166, 0x00000003,
4940x00000001, 0x00000078, 0x00000000, 0x00000000, 0x00000002, 0x00000001, 0x40066666, 0x400ccccd,
4950x00000003, 0x00003266, 0x00000003, 0x00000001, 0x000000a8, 0x00000000, 0x00000000, 0x00000003,
4960x00000001, 0x40466666, 0x404ccccd, 0x40533333, 0x00000003, 0x00003366, 0x00000003, 0x00000001,
4970x000000dc, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x40833333, 0x40866666, 0x4089999a,
4980x408ccccd, 0x00000003, 0x00003466, 0x00000003, 0x00000002, 0x00000104, 0x00000000, 0x00000000,
4990x00000001, 0x00000001, 0x4131999a, 0x00000004, 0x00313166, 0x00000003, 0x00000002, 0x00000130,
5000x00000000, 0x00000000, 0x00000001, 0x00000002, 0x4141999a, 0x41433333, 0x00000004, 0x00323166,
5010x00000003, 0x00000002, 0x00000160, 0x00000000, 0x00000000, 0x00000001, 0x00000003, 0x4151999a,
5020x41533333, 0x4154cccd, 0x00000004, 0x00333166, 0x00000003, 0x00000002, 0x00000194, 0x00000000,
5030x00000000, 0x00000001, 0x00000004, 0x4161999a, 0x41633333, 0x4164cccd, 0x41666666, 0x00000004,
5040x00343166, 0x00000003, 0x00000002, 0x000001c0, 0x00000000, 0x00000000, 0x00000002, 0x00000001,
5050x41a8e148, 0x41a9ae14, 0x00000004, 0x00313266, 0x00000003, 0x00000002, 0x000001f4, 0x00000000,
5060x00000000, 0x00000002, 0x00000002, 0x41b0e148, 0x41b1ae14, 0x41b0f5c3, 0x41b1c28f, 0x00000004,
5070x00323266, 0x00000003, 0x00000002, 0x00000230, 0x00000000, 0x00000000, 0x00000002, 0x00000003,
5080x41b8e148, 0x41b9ae14, 0x41b8f5c3, 0x41b9c28f, 0x41b90a3d, 0x41b9d70a, 0x00000004, 0x00333266,
5090x00000003, 0x00000002, 0x00000274, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x41c0e148,
5100x41c1ae14, 0x41c0f5c3, 0x41c1c28f, 0x41c10a3d, 0x41c1d70a, 0x41c11eb8, 0x41c1eb85, 0x00000004,
5110x00343266, 0x00000003, 0x00000002, 0x000002a4, 0x00000000, 0x00000000, 0x00000003, 0x00000001,
5120x41f8e148, 0x41f9ae14, 0x41fa7ae1, 0x00000004, 0x00313366, 0x00000003, 0x00000002, 0x000002e0,
5130x00000000, 0x00000000, 0x00000003, 0x00000002, 0x420070a4, 0x4200d70a, 0x42013d71, 0x42007ae1,
5140x4200e148, 0x420147ae, 0x00000004, 0x00323366, 0x00000003, 0x00000002, 0x00000328, 0x00000000,
5150x00000000, 0x00000003, 0x00000003, 0x420470a4, 0x4204d70a, 0x42053d71, 0x42047ae1, 0x4204e148,
5160x420547ae, 0x4204851f, 0x4204eb85, 0x420551ec, 0x00000004, 0x00333366, 0x00000003, 0x00000002,
5170x0000037c, 0x00000000, 0x00000000, 0x00000003, 0x00000004, 0x420870a4, 0x4208d70a, 0x42093d71,
5180x42087ae1, 0x4208e148, 0x420947ae, 0x4208851f, 0x4208eb85, 0x420951ec, 0x42088f5c, 0x4208f5c3,
5190x42095c29, 0x00000004, 0x00343366, 0x00000003, 0x00000002, 0x000003b0, 0x00000000, 0x00000000,
5200x00000004, 0x00000001, 0x422470a4, 0x4224d70a, 0x42253d71, 0x4225a3d7, 0x00000004, 0x00313466,
5210x00000003, 0x00000002, 0x000003f4, 0x00000000, 0x00000000, 0x00000004, 0x00000002, 0x422870a4,
5220x4228d70a, 0x42293d71, 0x4229a3d7, 0x42287ae1, 0x4228e148, 0x422947ae, 0x4229ae14, 0x00000004,
5230x00323466, 0x00000003, 0x00000002, 0x00000448, 0x00000000, 0x00000000, 0x00000004, 0x00000003,
5240x422c70a4, 0x422cd70a, 0x422d3d71, 0x422da3d7, 0x422c7ae1, 0x422ce148, 0x422d47ae, 0x422dae14,
5250x422c851f, 0x422ceb85, 0x422d51ec, 0x422db852, 0x00000004, 0x00333466, 0x00000003, 0x00000002,
5260x000004ac, 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x423070a4, 0x4230d70a, 0x42313d71,
5270x4231a3d7, 0x42307ae1, 0x4230e148, 0x423147ae, 0x4231ae14, 0x4230851f, 0x4230eb85, 0x423151ec,
5280x4231b852, 0x42308f5c, 0x4230f5c3, 0x42315c29, 0x4231c28f, 0x00000004, 0x00343466, 0x00000003,
5290x00000000, 0x000004d8, 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x3dced917, 0x3dd0e560,
5300x00000004, 0x00325f66, 0x00000003, 0x00000001, 0x00000504, 0x00000000, 0x00000002, 0x00000001,
5310x00000001, 0x3f8ced91, 0x3f8d0e56, 0x00000005, 0x325f3166, 0x00000000, 0x00000003, 0x00000001,
5320x0000053c, 0x00000000, 0x00000002, 0x00000002, 0x00000001, 0x400676c9, 0x400cdd2f, 0x4006872b,
5330x400ced91, 0x00000005, 0x325f3266, 0x00000000, 0x00000003, 0x00000001, 0x0000057c, 0x00000000,
5340x00000002, 0x00000003, 0x00000001, 0x404676c9, 0x404cdd2f, 0x40534396, 0x4046872b, 0x404ced91,
5350x405353f8, 0x00000005, 0x325f3366, 0x00000000, 0x00000003, 0x00000001, 0x000005c4, 0x00000000,
5360x00000002, 0x00000004, 0x00000001, 0x40833b64, 0x40866e98, 0x4089a1cb, 0x408cd4fe, 0x40834396,
5370x408676c9, 0x4089a9fc, 0x408cdd2f, 0x00000005, 0x325f3466, 0x00000000, 0x00000003, 0x00000002,
5380x000005f4, 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x41319db2, 0x4131a1cb, 0x00000006,
5390x5f313166, 0x00000032, 0x00000003, 0x00000002, 0x0000062c, 0x00000000, 0x00000002, 0x00000001,
5400x00000002, 0x41419db2, 0x4143374c, 0x4141a1cb, 0x41433b64, 0x00000006, 0x5f323166, 0x00000032,
5410x00000003, 0x00000002, 0x0000066c, 0x00000000, 0x00000002, 0x00000001, 0x00000003, 0x41519db2,
5420x4153374c, 0x4154d0e5, 0x4151a1cb, 0x41533b64, 0x4154d4fe, 0x00000006, 0x5f333166, 0x00000032,
5430x00000003, 0x00000002, 0x000006b4, 0x00000000, 0x00000002, 0x00000001, 0x00000004, 0x41619db2,
5440x4163374c, 0x4164d0e5, 0x41666a7f, 0x4161a1cb, 0x41633b64, 0x4164d4fe, 0x41666e98, 0x00000006,
5450x5f343166, 0x00000032, 0x00000003, 0x00000002, 0x000006ec, 0x00000000, 0x00000002, 0x00000002,
5460x00000001, 0x41a8e17c, 0x41a9ae49, 0x41a8e1b1, 0x41a9ae7d, 0x00000006, 0x5f313266, 0x00000032,
5470x00000003, 0x00000002, 0x00000734, 0x00000000, 0x00000002, 0x00000002, 0x00000002, 0x41b0e17c,
5480x41b1ae49, 0x41b0f5f7, 0x41b1c2c4, 0x41b0e1b1, 0x41b1ae7d, 0x41b0f62b, 0x41b1c2f8, 0x00000006,
5490x5f323266, 0x00000032, 0x00000003, 0x00000002, 0x0000078c, 0x00000000, 0x00000002, 0x00000002,
5500x00000003, 0x41b8e17c, 0x41b9ae49, 0x41b8f5f7, 0x41b9c2c4, 0x41b90a72, 0x41b9d73f, 0x41b8e1b1,
5510x41b9ae7d, 0x41b8f62b, 0x41b9c2f8, 0x41b90aa6, 0x41b9d773, 0x00000006, 0x5f333266, 0x00000032,
5520x00000003, 0x00000002, 0x000007f4, 0x00000000, 0x00000002, 0x00000002, 0x00000004, 0x41c0e17c,
5530x41c1ae49, 0x41c0f5f7, 0x41c1c2c4, 0x41c10a72, 0x41c1d73f, 0x41c11eed, 0x41c1ebba, 0x41c0e1b1,
5540x41c1ae7d, 0x41c0f62b, 0x41c1c2f8, 0x41c10aa6, 0x41c1d773, 0x41c11f21, 0x41c1ebee, 0x00000006,
5550x5f343266, 0x00000032, 0x00000003, 0x00000002, 0x00000834, 0x00000000, 0x00000002, 0x00000003,
5560x00000001, 0x41f8e17c, 0x41f9ae49, 0x41fa7b16, 0x41f8e1b1, 0x41f9ae7d, 0x41fa7b4a, 0x00000006,
5570x5f313366, 0x00000032, 0x00000003, 0x00000002, 0x0000088c, 0x00000000, 0x00000002, 0x00000003,
5580x00000002, 0x420070be, 0x4200d724, 0x42013d8b, 0x42007afb, 0x4200e162, 0x420147c8, 0x420070d8,
5590x4200d73f, 0x42013da5, 0x42007b16, 0x4200e17c, 0x420147e3, 0x00000006, 0x5f323366, 0x00000032,
5600x00000003, 0x00000002, 0x000008fc, 0x00000000, 0x00000002, 0x00000003, 0x00000003, 0x420470be,
5610x4204d724, 0x42053d8b, 0x42047afb, 0x4204e162, 0x420547c8, 0x42048539, 0x4204eb9f, 0x42055206,
5620x420470d8, 0x4204d73f, 0x42053da5, 0x42047b16, 0x4204e17c, 0x420547e3, 0x42048553, 0x4204ebba,
5630x42055220, 0x00000006, 0x5f333366, 0x00000032, 0x00000003, 0x00000002, 0x00000984, 0x00000000,
5640x00000002, 0x00000003, 0x00000004, 0x420870be, 0x4208d724, 0x42093d8b, 0x42087afb, 0x4208e162,
5650x420947c8, 0x42088539, 0x4208eb9f, 0x42095206, 0x42088f76, 0x4208f5dd, 0x42095c43, 0x420870d8,
5660x4208d73f, 0x42093da5, 0x42087b16, 0x4208e17c, 0x420947e3, 0x42088553, 0x4208ebba, 0x42095220,
5670x42088f91, 0x4208f5f7, 0x42095c5d, 0x00000006, 0x5f343366, 0x00000032, 0x00000003, 0x00000002,
5680x000009cc, 0x00000000, 0x00000002, 0x00000004, 0x00000001, 0x422470be, 0x4224d724, 0x42253d8b,
5690x4225a3f1, 0x422470d8, 0x4224d73f, 0x42253da5, 0x4225a40b, 0x00000006, 0x5f313466, 0x00000032,
5700x00000003, 0x00000002, 0x00000a34, 0x00000000, 0x00000002, 0x00000004, 0x00000002, 0x422870be,
5710x4228d724, 0x42293d8b, 0x4229a3f1, 0x42287afb, 0x4228e162, 0x422947c8, 0x4229ae2f, 0x422870d8,
5720x4228d73f, 0x42293da5, 0x4229a40b, 0x42287b16, 0x4228e17c, 0x422947e3, 0x4229ae49, 0x00000006,
5730x5f323466, 0x00000032, 0x00000003, 0x00000002, 0x00000abc, 0x00000000, 0x00000002, 0x00000004,
5740x00000003, 0x422c70be, 0x422cd724, 0x422d3d8b, 0x422da3f1, 0x422c7afb, 0x422ce162, 0x422d47c8,
5750x422dae2f, 0x422c8539, 0x422ceb9f, 0x422d5206, 0x422db86c, 0x422c70d8, 0x422cd73f, 0x422d3da5,
5760x422da40b, 0x422c7b16, 0x422ce17c, 0x422d47e3, 0x422dae49, 0x422c8553, 0x422cebba, 0x422d5220,
5770x422db886, 0x00000006, 0x5f333466, 0x00000032, 0x00000003, 0x00000002, 0x00000b64, 0x00000000,
5780x00000002, 0x00000004, 0x00000004, 0x423070be, 0x4230d724, 0x42313d8b, 0x4231a3f1, 0x42307afb,
5790x4230e162, 0x423147c8, 0x4231ae2f, 0x42308539, 0x4230eb9f, 0x42315206, 0x4231b86c, 0x42308f76,
5800x4230f5dd, 0x42315c43, 0x4231c2aa, 0x423070d8, 0x4230d73f, 0x42313da5, 0x4231a40b, 0x42307b16,
5810x4230e17c, 0x423147e3, 0x4231ae49, 0x42308553, 0x4230ebba, 0x42315220, 0x4231b886, 0x42308f91,
5820x4230f5f7, 0x42315c5d, 0x4231c2c4, 0x00000006, 0x5f343466, 0x00000032, 0x00000002, 0x00000070,
5830x00000002, 0x00000074, 0x0000002a, 0x00000001, 0x00000001, 0x00000001, 0x00000004, 0x00000020,
5840x00000000, 0x00000000, 0x0000002c, 0x00000048, 0x00000000, 0x00000000, 0x00000054, 0x00000070,
5850x00000000, 0x00000000, 0x00000080, 0x0000009c, 0x00000000, 0x00000000, 0x000000b0, 0x000000cc,
5860x00000000, 0x00000000, 0x000000e4, 0x00000100, 0x00000000, 0x00000000, 0x0000010c, 0x00000128,
5870x00000000, 0x00000000, 0x00000138, 0x00000154, 0x00000000, 0x00000000, 0x00000168, 0x00000184,
5880x00000000, 0x00000000, 0x0000019c, 0x000001b8, 0x00000000, 0x00000000, 0x000001c8, 0x000001e4,
5890x00000000, 0x00000000, 0x000001fc, 0x00000218, 0x00000000, 0x00000000, 0x00000238, 0x00000254,
5900x00000000, 0x00000000, 0x0000027c, 0x00000298, 0x00000000, 0x00000000, 0x000002ac, 0x000002c8,
5910x00000000, 0x00000000, 0x000002e8, 0x00000304, 0x00000000, 0x00000000, 0x00000330, 0x0000034c,
5920x00000000, 0x00000000, 0x00000384, 0x000003a0, 0x00000000, 0x00000000, 0x000003b8, 0x000003d4,
5930x00000000, 0x00000000, 0x000003fc, 0x00000418, 0x00000000, 0x00000000, 0x00000450, 0x0000046c,
5940x00000000, 0x00000000, 0x000004b4, 0x000004d0, 0x00000000, 0x00000000, 0x000004e0, 0x000004fc,
5950x00000000, 0x00000000, 0x00000510, 0x0000052c, 0x00000000, 0x00000000, 0x00000548, 0x00000564,
5960x00000000, 0x00000000, 0x00000588, 0x000005a4, 0x00000000, 0x00000000, 0x000005d0, 0x000005ec,
5970x00000000, 0x00000000, 0x00000600, 0x0000061c, 0x00000000, 0x00000000, 0x00000638, 0x00000654,
5980x00000000, 0x00000000, 0x00000678, 0x00000694, 0x00000000, 0x00000000, 0x000006c0, 0x000006dc,
5990x00000000, 0x00000000, 0x000006f8, 0x00000714, 0x00000000, 0x00000000, 0x00000740, 0x0000075c,
6000x00000000, 0x00000000, 0x00000798, 0x000007b4, 0x00000000, 0x00000000, 0x00000800, 0x0000081c,
6010x00000000, 0x00000000, 0x00000840, 0x0000085c, 0x00000000, 0x00000000, 0x00000898, 0x000008b4,
6020x00000000, 0x00000000, 0x00000908, 0x00000924, 0x00000000, 0x00000000, 0x00000990, 0x000009ac,
6030x00000000, 0x00000000, 0x000009d8, 0x000009f4, 0x00000000, 0x00000000, 0x00000a40, 0x00000a5c,
6040x00000000, 0x00000000, 0x00000ac8, 0x00000ae4, 0x00000000, 0x00000000, 0x00000b78, 0x00000000,
6050x00000001, 0x00000b70, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
610 {
"f", {
"f",
NULL,
D3DXPC_SCALAR,
D3DXPT_FLOAT, 1, 1, 0, 0, 0, 0, 4}, 10},
611 {
"f1", {
"f1",
NULL,
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 1, 0, 0, 0, 0, 4}, 20},
612 {
"f2", {
"f2",
NULL,
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 2, 0, 0, 0, 0, 8}, 30},
613 {
"f3", {
"f3",
NULL,
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 3, 0, 0, 0, 0, 12}, 41},
614 {
"f4", {
"f4",
NULL,
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 4, 0, 0, 0, 0, 16}, 53},
615 {
"f11", {
"f11",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 1, 1, 0, 0, 0, 0, 4}, 66},
616 {
"f12", {
"f12",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 1, 2, 0, 0, 0, 0, 8}, 76},
617 {
"f13", {
"f13",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 1, 3, 0, 0, 0, 0, 12}, 87},
618 {
"f14", {
"f14",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 1, 4, 0, 0, 0, 0, 16}, 99},
619 {
"f21", {
"f21",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 2, 1, 0, 0, 0, 0, 8}, 112},
620 {
"f22", {
"f22",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 2, 2, 0, 0, 0, 0, 16}, 123},
621 {
"f23", {
"f23",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 2, 3, 0, 0, 0, 0, 24}, 136},
622 {
"f24", {
"f24",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 2, 4, 0, 0, 0, 0, 32}, 151},
623 {
"f31", {
"f31",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 3, 1, 0, 0, 0, 0, 12}, 168},
624 {
"f32", {
"f32",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 3, 2, 0, 0, 0, 0, 24}, 180},
625 {
"f33", {
"f33",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 3, 3, 0, 0, 0, 0, 36}, 195},
626 {
"f34", {
"f34",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 3, 4, 0, 0, 0, 0, 48}, 213},
627 {
"f41", {
"f41",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 4, 1, 0, 0, 0, 0, 16}, 234},
628 {
"f42", {
"f42",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 4, 2, 0, 0, 0, 0, 32}, 247},
629 {
"f43", {
"f43",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 4, 3, 0, 0, 0, 0, 48}, 264},
630 {
"f44", {
"f44",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 4, 4, 0, 0, 0, 0, 64}, 285},
631 {
"f_2", {
"f_2",
NULL,
D3DXPC_SCALAR,
D3DXPT_FLOAT, 1, 1, 2, 0, 0, 0, 8}, 310},
632 {
"f1_2", {
"f1_2",
NULL,
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 1, 2, 0, 0, 0, 8}, 321},
633 {
"f2_2", {
"f2_2",
NULL,
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 2, 2, 0, 0, 0, 16}, 333},
634 {
"f3_2", {
"f3_2",
NULL,
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 3, 2, 0, 0, 0, 24}, 347},
635 {
"f4_2", {
"f4_2",
NULL,
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 4, 2, 0, 0, 0, 32}, 363},
636 {
"f11_2", {
"f11_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 1, 1, 2, 0, 0, 0, 8}, 381},
637 {
"f12_2", {
"f12_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 1, 2, 2, 0, 0, 0, 16}, 393},
638 {
"f13_2", {
"f13_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 1, 3, 2, 0, 0, 0, 24}, 407},
639 {
"f14_2", {
"f14_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 1, 4, 2, 0, 0, 0, 32}, 423},
640 {
"f21_2", {
"f21_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 2, 1, 2, 0, 0, 0, 16}, 441},
641 {
"f22_2", {
"f22_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 2, 2, 2, 0, 0, 0, 32}, 455},
642 {
"f23_2", {
"f23_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 2, 3, 2, 0, 0, 0, 48}, 473},
643 {
"f24_2", {
"f24_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 2, 4, 2, 0, 0, 0, 64}, 495},
644 {
"f31_2", {
"f31_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 3, 1, 2, 0, 0, 0, 24}, 521},
645 {
"f32_2", {
"f32_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 3, 2, 2, 0, 0, 0, 48}, 537},
646 {
"f33_2", {
"f33_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 3, 3, 2, 0, 0, 0, 72}, 559},
647 {
"f34_2", {
"f34_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 3, 4, 2, 0, 0, 0, 96}, 587},
648 {
"f41_2", {
"f41_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 4, 1, 2, 0, 0, 0, 32}, 621},
649 {
"f42_2", {
"f42_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 4, 2, 2, 0, 0, 0, 64}, 639},
650 {
"f43_2", {
"f43_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 4, 3, 2, 0, 0, 0, 96}, 665},
651 {
"f44_2", {
"f44_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_FLOAT, 4, 4, 2, 0, 0, 0, 128}, 699},
661int3 i3 = {31, 32, 33};
662int4 i4 = {41, 42, 43, 44};
664int1x2 i12 = {121, 122};
665int1x3 i13 = {131, 132, 133};
666int1x4 i14 = {141, 142, 143, 144};
667int2x1 i21 = {{2111, 2121}};
668int2x2 i22 = {{2211, 2221}, {2212, 2222}};
669int2x3 i23 = {{2311, 2321}, {2312, 2322}, {2313, 2323}};
670int2x4 i24 = {{2411, 2421}, {2412, 2422}, {2413, 2423}, {2414, 2424}};
671int3x1 i31 = {{3111, 3121, 3131}};
672int3x2 i32 = {{3211, 3221, 3231}, {3212, 3222, 3232}};
673int3x3 i33 = {{3311, 3321, 3331}, {3312, 3322, 3332},
675int3x4 i34 = {{3411, 3421, 3431}, {3412, 3422, 3432},
676 {3413, 3423, 3433}, {3414, 3424, 3434}};
677int4x1 i41 = {{4111, 4121, 4131, 4141}};
678int4x2 i42 = {{4211, 4221, 4231, 4241}, {4212, 4222, 4232, 4242}};
679int4x3 i43 = {{4311, 4321, 4331, 4341}, {4312, 4322, 4332, 4342},
680 {4313, 4323, 4333, 4343}};
681int4x4 i44 = {{4411, 4421, 4431, 4441}, {4412, 4422, 4432, 4442},
682 {4413, 4423, 4433, 4443}, {4414, 4424, 4434, 4444}};
683int i_2[2] = {0101, 0102};
684int1 i1_2[2] = {{1101}, {1102}};
685int2 i2_2[2] = {{2101, 2201}, {2102, 2202}};
686int3 i3_2[2] = {{3101, 3201, 3301}, {3102, 3202, 3302}};
687int4 i4_2[2] = {{4101, 4201, 4301, 4401}, {4102, 4202, 4302, 4402}};
688int1x1 i11_2[2] = {{11101}, {11102}};
689int1x2 i12_2[2] = {{12101, 12201}, {12102, 12202}};
690int1x3 i13_2[2] = {{13101, 13201, 13301}, {13102, 13202, 13302}};
691int1x4 i14_2[2] = {{14101, 14201, 14301, 14401}, {14102, 14202, 14302, 14402}};
692int2x1 i21_2[2] = {{{211101, 212101}}, {{211102, 212102}}};
693int2x2 i22_2[2] = {{{221101, 222101}, {221201, 222201}}, {{221102, 222102}, {221202, 222202}}};
694int2x3 i23_2[2] = {{{231101, 232101}, {231201, 232201}, {231301, 232301}}, {{231102, 232102},
695 {231202, 232202}, {231302, 232302}}};
696int2x4 i24_2[2] = {{{241101, 242101}, {241201, 242201}, {241301, 242301}, {241401, 242401}},
697 {{241102, 242102}, {241202, 242202}, {241302, 242302}, {241402, 242402}}};
698int3x1 i31_2[2] = {{{311101, 312101, 313101}}, {{311102, 312102, 313102}}};
699int3x2 i32_2[2] = {{{321101, 322101, 323101}, {321201, 322201, 323201}},
700 {{321102, 322102, 323102}, {321202, 322202, 323202}}};
701int3x3 i33_2[2] = {{{331101, 332101, 333101}, {331201, 332201, 333201},
702 {331301, 332301, 333301}}, {{331102, 332102, 333102}, {331202, 332202, 333202},
703 {331302, 332302, 333302}}};
704int3x4 i34_2[2] = {{{341101, 342101, 343101}, {341201, 342201, 343201},
705 {341301, 342301, 343301}, {341401, 342401, 343401}}, {{341102, 342102, 343102},
706 {341202, 342202, 343202}, {341302, 342302, 343302}, {341402, 342402, 343402}}};
707int4x1 i41_2[2] = {{{411101, 412101, 413101, 414101}}, {{411102, 412102, 413102, 414102}}};
708int4x2 i42_2[2] = {{{421101, 422101, 423101, 424101}, {421201, 422201, 423201, 424201}},
709 {{421102, 422102, 423102, 424102}, {421202, 422202, 423202, 424202}}};
710int4x3 i43_2[2] = {{{431101, 432101, 433101, 434101}, {431201, 432201, 433201, 434201},
711 {431301, 432301, 433301, 434301}}, {{431102, 432102, 433102, 434102},
712 {431202, 432202, 433202, 434202}, {431302, 432302, 433302, 434302}}};
713int4x4 i44_2[2] = {{{441101, 442101, 443101, 444101}, {441201, 442201, 443201, 444201},
714 {441301, 442301, 443301, 444301}, {441401, 442401, 443401, 444401}},
715 {{441102, 442102, 443102, 444102}, {441202, 442202, 443202, 444202},
716 {441302, 442302, 443302, 444302}, {441402, 442402, 443402, 444402}}};
7210xfeff0901, 0x00000b80, 0x00000000, 0x00000002, 0x00000000, 0x00000024, 0x00000000, 0x00000000,
7220x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000069, 0x00000002, 0x00000001, 0x0000004c,
7230x00000000, 0x00000000, 0x00000001, 0x00000001, 0x0000000b, 0x00000003, 0x00003169, 0x00000002,
7240x00000001, 0x00000078, 0x00000000, 0x00000000, 0x00000002, 0x00000001, 0x00000015, 0x00000016,
7250x00000003, 0x00003269, 0x00000002, 0x00000001, 0x000000a8, 0x00000000, 0x00000000, 0x00000003,
7260x00000001, 0x0000001f, 0x00000020, 0x00000021, 0x00000003, 0x00003369, 0x00000002, 0x00000001,
7270x000000dc, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000029, 0x0000002a, 0x0000002b,
7280x0000002c, 0x00000003, 0x00003469, 0x00000002, 0x00000002, 0x00000104, 0x00000000, 0x00000000,
7290x00000001, 0x00000001, 0x0000006f, 0x00000004, 0x00313169, 0x00000002, 0x00000002, 0x00000130,
7300x00000000, 0x00000000, 0x00000001, 0x00000002, 0x00000079, 0x0000007a, 0x00000004, 0x00323169,
7310x00000002, 0x00000002, 0x00000160, 0x00000000, 0x00000000, 0x00000001, 0x00000003, 0x00000083,
7320x00000084, 0x00000085, 0x00000004, 0x00333169, 0x00000002, 0x00000002, 0x00000194, 0x00000000,
7330x00000000, 0x00000001, 0x00000004, 0x0000008d, 0x0000008e, 0x0000008f, 0x00000090, 0x00000004,
7340x00343169, 0x00000002, 0x00000002, 0x000001c0, 0x00000000, 0x00000000, 0x00000002, 0x00000001,
7350x0000083f, 0x00000849, 0x00000004, 0x00313269, 0x00000002, 0x00000002, 0x000001f4, 0x00000000,
7360x00000000, 0x00000002, 0x00000002, 0x000008a3, 0x000008ad, 0x000008a4, 0x000008ae, 0x00000004,
7370x00323269, 0x00000002, 0x00000002, 0x00000230, 0x00000000, 0x00000000, 0x00000002, 0x00000003,
7380x00000907, 0x00000911, 0x00000908, 0x00000912, 0x00000909, 0x00000913, 0x00000004, 0x00333269,
7390x00000002, 0x00000002, 0x00000274, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x0000096b,
7400x00000975, 0x0000096c, 0x00000976, 0x0000096d, 0x00000977, 0x0000096e, 0x00000978, 0x00000004,
7410x00343269, 0x00000002, 0x00000002, 0x000002a4, 0x00000000, 0x00000000, 0x00000003, 0x00000001,
7420x00000c27, 0x00000c31, 0x00000c3b, 0x00000004, 0x00313369, 0x00000002, 0x00000002, 0x000002e0,
7430x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000c8b, 0x00000c95, 0x00000c9f, 0x00000c8c,
7440x00000c96, 0x00000ca0, 0x00000004, 0x00323369, 0x00000002, 0x00000002, 0x00000328, 0x00000000,
7450x00000000, 0x00000003, 0x00000003, 0x00000cef, 0x00000cf9, 0x00000d03, 0x00000cf0, 0x00000cfa,
7460x00000d04, 0x00000cf1, 0x00000cfb, 0x00000d05, 0x00000004, 0x00333369, 0x00000002, 0x00000002,
7470x0000037c, 0x00000000, 0x00000000, 0x00000003, 0x00000004, 0x00000d53, 0x00000d5d, 0x00000d67,
7480x00000d54, 0x00000d5e, 0x00000d68, 0x00000d55, 0x00000d5f, 0x00000d69, 0x00000d56, 0x00000d60,
7490x00000d6a, 0x00000004, 0x00343369, 0x00000002, 0x00000002, 0x000003b0, 0x00000000, 0x00000000,
7500x00000004, 0x00000001, 0x0000100f, 0x00001019, 0x00001023, 0x0000102d, 0x00000004, 0x00313469,
7510x00000002, 0x00000002, 0x000003f4, 0x00000000, 0x00000000, 0x00000004, 0x00000002, 0x00001073,
7520x0000107d, 0x00001087, 0x00001091, 0x00001074, 0x0000107e, 0x00001088, 0x00001092, 0x00000004,
7530x00323469, 0x00000002, 0x00000002, 0x00000448, 0x00000000, 0x00000000, 0x00000004, 0x00000003,
7540x000010d7, 0x000010e1, 0x000010eb, 0x000010f5, 0x000010d8, 0x000010e2, 0x000010ec, 0x000010f6,
7550x000010d9, 0x000010e3, 0x000010ed, 0x000010f7, 0x00000004, 0x00333469, 0x00000002, 0x00000002,
7560x000004ac, 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x0000113b, 0x00001145, 0x0000114f,
7570x00001159, 0x0000113c, 0x00001146, 0x00001150, 0x0000115a, 0x0000113d, 0x00001147, 0x00001151,
7580x0000115b, 0x0000113e, 0x00001148, 0x00001152, 0x0000115c, 0x00000004, 0x00343469, 0x00000002,
7590x00000000, 0x000004d8, 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x00000041, 0x00000042,
7600x00000004, 0x00325f69, 0x00000002, 0x00000001, 0x00000504, 0x00000000, 0x00000002, 0x00000001,
7610x00000001, 0x0000044d, 0x0000044e, 0x00000005, 0x325f3169, 0x00000000, 0x00000002, 0x00000001,
7620x0000053c, 0x00000000, 0x00000002, 0x00000002, 0x00000001, 0x00000835, 0x00000899, 0x00000836,
7630x0000089a, 0x00000005, 0x325f3269, 0x00000000, 0x00000002, 0x00000001, 0x0000057c, 0x00000000,
7640x00000002, 0x00000003, 0x00000001, 0x00000c1d, 0x00000c81, 0x00000ce5, 0x00000c1e, 0x00000c82,
7650x00000ce6, 0x00000005, 0x325f3369, 0x00000000, 0x00000002, 0x00000001, 0x000005c4, 0x00000000,
7660x00000002, 0x00000004, 0x00000001, 0x00001005, 0x00001069, 0x000010cd, 0x00001131, 0x00001006,
7670x0000106a, 0x000010ce, 0x00001132, 0x00000005, 0x325f3469, 0x00000000, 0x00000002, 0x00000002,
7680x000005f4, 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x00002b5d, 0x00002b5e, 0x00000006,
7690x5f313169, 0x00000032, 0x00000002, 0x00000002, 0x0000062c, 0x00000000, 0x00000002, 0x00000001,
7700x00000002, 0x00002f45, 0x00002fa9, 0x00002f46, 0x00002faa, 0x00000006, 0x5f323169, 0x00000032,
7710x00000002, 0x00000002, 0x0000066c, 0x00000000, 0x00000002, 0x00000001, 0x00000003, 0x0000332d,
7720x00003391, 0x000033f5, 0x0000332e, 0x00003392, 0x000033f6, 0x00000006, 0x5f333169, 0x00000032,
7730x00000002, 0x00000002, 0x000006b4, 0x00000000, 0x00000002, 0x00000001, 0x00000004, 0x00003715,
7740x00003779, 0x000037dd, 0x00003841, 0x00003716, 0x0000377a, 0x000037de, 0x00003842, 0x00000006,
7750x5f343169, 0x00000032, 0x00000002, 0x00000002, 0x000006ec, 0x00000000, 0x00000002, 0x00000002,
7760x00000001, 0x0003389d, 0x00033c85, 0x0003389e, 0x00033c86, 0x00000006, 0x5f313269, 0x00000032,
7770x00000002, 0x00000002, 0x00000734, 0x00000000, 0x00000002, 0x00000002, 0x00000002, 0x00035fad,
7780x00036395, 0x00036011, 0x000363f9, 0x00035fae, 0x00036396, 0x00036012, 0x000363fa, 0x00000006,
7790x5f323269, 0x00000032, 0x00000002, 0x00000002, 0x0000078c, 0x00000000, 0x00000002, 0x00000002,
7800x00000003, 0x000386bd, 0x00038aa5, 0x00038721, 0x00038b09, 0x00038785, 0x00038b6d, 0x000386be,
7810x00038aa6, 0x00038722, 0x00038b0a, 0x00038786, 0x00038b6e, 0x00000006, 0x5f333269, 0x00000032,
7820x00000002, 0x00000002, 0x000007f4, 0x00000000, 0x00000002, 0x00000002, 0x00000004, 0x0003adcd,
7830x0003b1b5, 0x0003ae31, 0x0003b219, 0x0003ae95, 0x0003b27d, 0x0003aef9, 0x0003b2e1, 0x0003adce,
7840x0003b1b6, 0x0003ae32, 0x0003b21a, 0x0003ae96, 0x0003b27e, 0x0003aefa, 0x0003b2e2, 0x00000006,
7850x5f343269, 0x00000032, 0x00000002, 0x00000002, 0x00000834, 0x00000000, 0x00000002, 0x00000003,
7860x00000001, 0x0004bf3d, 0x0004c325, 0x0004c70d, 0x0004bf3e, 0x0004c326, 0x0004c70e, 0x00000006,
7870x5f313369, 0x00000032, 0x00000002, 0x00000002, 0x0000088c, 0x00000000, 0x00000002, 0x00000003,
7880x00000002, 0x0004e64d, 0x0004ea35, 0x0004ee1d, 0x0004e6b1, 0x0004ea99, 0x0004ee81, 0x0004e64e,
7890x0004ea36, 0x0004ee1e, 0x0004e6b2, 0x0004ea9a, 0x0004ee82, 0x00000006, 0x5f323369, 0x00000032,
7900x00000002, 0x00000002, 0x000008fc, 0x00000000, 0x00000002, 0x00000003, 0x00000003, 0x00050d5d,
7910x00051145, 0x0005152d, 0x00050dc1, 0x000511a9, 0x00051591, 0x00050e25, 0x0005120d, 0x000515f5,
7920x00050d5e, 0x00051146, 0x0005152e, 0x00050dc2, 0x000511aa, 0x00051592, 0x00050e26, 0x0005120e,
7930x000515f6, 0x00000006, 0x5f333369, 0x00000032, 0x00000002, 0x00000002, 0x00000984, 0x00000000,
7940x00000002, 0x00000003, 0x00000004, 0x0005346d, 0x00053855, 0x00053c3d, 0x000534d1, 0x000538b9,
7950x00053ca1, 0x00053535, 0x0005391d, 0x00053d05, 0x00053599, 0x00053981, 0x00053d69, 0x0005346e,
7960x00053856, 0x00053c3e, 0x000534d2, 0x000538ba, 0x00053ca2, 0x00053536, 0x0005391e, 0x00053d06,
7970x0005359a, 0x00053982, 0x00053d6a, 0x00000006, 0x5f343369, 0x00000032, 0x00000002, 0x00000002,
7980x000009cc, 0x00000000, 0x00000002, 0x00000004, 0x00000001, 0x000645dd, 0x000649c5, 0x00064dad,
7990x00065195, 0x000645de, 0x000649c6, 0x00064dae, 0x00065196, 0x00000006, 0x5f313469, 0x00000032,
8000x00000002, 0x00000002, 0x00000a34, 0x00000000, 0x00000002, 0x00000004, 0x00000002, 0x00066ced,
8010x000670d5, 0x000674bd, 0x000678a5, 0x00066d51, 0x00067139, 0x00067521, 0x00067909, 0x00066cee,
8020x000670d6, 0x000674be, 0x000678a6, 0x00066d52, 0x0006713a, 0x00067522, 0x0006790a, 0x00000006,
8030x5f323469, 0x00000032, 0x00000002, 0x00000002, 0x00000abc, 0x00000000, 0x00000002, 0x00000004,
8040x00000003, 0x000693fd, 0x000697e5, 0x00069bcd, 0x00069fb5, 0x00069461, 0x00069849, 0x00069c31,
8050x0006a019, 0x000694c5, 0x000698ad, 0x00069c95, 0x0006a07d, 0x000693fe, 0x000697e6, 0x00069bce,
8060x00069fb6, 0x00069462, 0x0006984a, 0x00069c32, 0x0006a01a, 0x000694c6, 0x000698ae, 0x00069c96,
8070x0006a07e, 0x00000006, 0x5f333469, 0x00000032, 0x00000002, 0x00000002, 0x00000b64, 0x00000000,
8080x00000002, 0x00000004, 0x00000004, 0x0006bb0d, 0x0006bef5, 0x0006c2dd, 0x0006c6c5, 0x0006bb71,
8090x0006bf59, 0x0006c341, 0x0006c729, 0x0006bbd5, 0x0006bfbd, 0x0006c3a5, 0x0006c78d, 0x0006bc39,
8100x0006c021, 0x0006c409, 0x0006c7f1, 0x0006bb0e, 0x0006bef6, 0x0006c2de, 0x0006c6c6, 0x0006bb72,
8110x0006bf5a, 0x0006c342, 0x0006c72a, 0x0006bbd6, 0x0006bfbe, 0x0006c3a6, 0x0006c78e, 0x0006bc3a,
8120x0006c022, 0x0006c40a, 0x0006c7f2, 0x00000006, 0x5f343469, 0x00000032, 0x00000002, 0x00000070,
8130x00000002, 0x00000074, 0x0000002a, 0x00000001, 0x00000001, 0x00000001, 0x00000004, 0x00000020,
8140x00000000, 0x00000000, 0x0000002c, 0x00000048, 0x00000000, 0x00000000, 0x00000054, 0x00000070,
8150x00000000, 0x00000000, 0x00000080, 0x0000009c, 0x00000000, 0x00000000, 0x000000b0, 0x000000cc,
8160x00000000, 0x00000000, 0x000000e4, 0x00000100, 0x00000000, 0x00000000, 0x0000010c, 0x00000128,
8170x00000000, 0x00000000, 0x00000138, 0x00000154, 0x00000000, 0x00000000, 0x00000168, 0x00000184,
8180x00000000, 0x00000000, 0x0000019c, 0x000001b8, 0x00000000, 0x00000000, 0x000001c8, 0x000001e4,
8190x00000000, 0x00000000, 0x000001fc, 0x00000218, 0x00000000, 0x00000000, 0x00000238, 0x00000254,
8200x00000000, 0x00000000, 0x0000027c, 0x00000298, 0x00000000, 0x00000000, 0x000002ac, 0x000002c8,
8210x00000000, 0x00000000, 0x000002e8, 0x00000304, 0x00000000, 0x00000000, 0x00000330, 0x0000034c,
8220x00000000, 0x00000000, 0x00000384, 0x000003a0, 0x00000000, 0x00000000, 0x000003b8, 0x000003d4,
8230x00000000, 0x00000000, 0x000003fc, 0x00000418, 0x00000000, 0x00000000, 0x00000450, 0x0000046c,
8240x00000000, 0x00000000, 0x000004b4, 0x000004d0, 0x00000000, 0x00000000, 0x000004e0, 0x000004fc,
8250x00000000, 0x00000000, 0x00000510, 0x0000052c, 0x00000000, 0x00000000, 0x00000548, 0x00000564,
8260x00000000, 0x00000000, 0x00000588, 0x000005a4, 0x00000000, 0x00000000, 0x000005d0, 0x000005ec,
8270x00000000, 0x00000000, 0x00000600, 0x0000061c, 0x00000000, 0x00000000, 0x00000638, 0x00000654,
8280x00000000, 0x00000000, 0x00000678, 0x00000694, 0x00000000, 0x00000000, 0x000006c0, 0x000006dc,
8290x00000000, 0x00000000, 0x000006f8, 0x00000714, 0x00000000, 0x00000000, 0x00000740, 0x0000075c,
8300x00000000, 0x00000000, 0x00000798, 0x000007b4, 0x00000000, 0x00000000, 0x00000800, 0x0000081c,
8310x00000000, 0x00000000, 0x00000840, 0x0000085c, 0x00000000, 0x00000000, 0x00000898, 0x000008b4,
8320x00000000, 0x00000000, 0x00000908, 0x00000924, 0x00000000, 0x00000000, 0x00000990, 0x000009ac,
8330x00000000, 0x00000000, 0x000009d8, 0x000009f4, 0x00000000, 0x00000000, 0x00000a40, 0x00000a5c,
8340x00000000, 0x00000000, 0x00000ac8, 0x00000ae4, 0x00000000, 0x00000000, 0x00000b78, 0x00000000,
8350x00000001, 0x00000b70, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
840 {
"i", {
"i",
NULL,
D3DXPC_SCALAR,
D3DXPT_INT, 1, 1, 0, 0, 0, 0, 4}, 10},
841 {
"i1", {
"i1",
NULL,
D3DXPC_VECTOR,
D3DXPT_INT, 1, 1, 0, 0, 0, 0, 4}, 20},
842 {
"i2", {
"i2",
NULL,
D3DXPC_VECTOR,
D3DXPT_INT, 1, 2, 0, 0, 0, 0, 8}, 30},
843 {
"i3", {
"i3",
NULL,
D3DXPC_VECTOR,
D3DXPT_INT, 1, 3, 0, 0, 0, 0, 12}, 41},
844 {
"i4", {
"i4",
NULL,
D3DXPC_VECTOR,
D3DXPT_INT, 1, 4, 0, 0, 0, 0, 16}, 53},
845 {
"i11", {
"i11",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 1, 1, 0, 0, 0, 0, 4}, 66},
846 {
"i12", {
"i12",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 1, 2, 0, 0, 0, 0, 8}, 76},
847 {
"i13", {
"i13",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 1, 3, 0, 0, 0, 0, 12}, 87},
848 {
"i14", {
"i14",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 1, 4, 0, 0, 0, 0, 16}, 99},
849 {
"i21", {
"i21",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 2, 1, 0, 0, 0, 0, 8}, 112},
850 {
"i22", {
"i22",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 2, 2, 0, 0, 0, 0, 16}, 123},
851 {
"i23", {
"i23",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 2, 3, 0, 0, 0, 0, 24}, 136},
852 {
"i24", {
"i24",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 2, 4, 0, 0, 0, 0, 32}, 151},
853 {
"i31", {
"i31",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 3, 1, 0, 0, 0, 0, 12}, 168},
854 {
"i32", {
"i32",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 3, 2, 0, 0, 0, 0, 24}, 180},
855 {
"i33", {
"i33",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 3, 3, 0, 0, 0, 0, 36}, 195},
856 {
"i34", {
"i34",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 3, 4, 0, 0, 0, 0, 48}, 213},
857 {
"i41", {
"i41",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 4, 1, 0, 0, 0, 0, 16}, 234},
858 {
"i42", {
"i42",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 4, 2, 0, 0, 0, 0, 32}, 247},
859 {
"i43", {
"i43",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 4, 3, 0, 0, 0, 0, 48}, 264},
860 {
"i44", {
"i44",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 4, 4, 0, 0, 0, 0, 64}, 285},
861 {
"i_2", {
"i_2",
NULL,
D3DXPC_SCALAR,
D3DXPT_INT, 1, 1, 2, 0, 0, 0, 8}, 310},
862 {
"i1_2", {
"i1_2",
NULL,
D3DXPC_VECTOR,
D3DXPT_INT, 1, 1, 2, 0, 0, 0, 8}, 321},
863 {
"i2_2", {
"i2_2",
NULL,
D3DXPC_VECTOR,
D3DXPT_INT, 1, 2, 2, 0, 0, 0, 16}, 333},
864 {
"i3_2", {
"i3_2",
NULL,
D3DXPC_VECTOR,
D3DXPT_INT, 1, 3, 2, 0, 0, 0, 24}, 347},
865 {
"i4_2", {
"i4_2",
NULL,
D3DXPC_VECTOR,
D3DXPT_INT, 1, 4, 2, 0, 0, 0, 32}, 363},
866 {
"i11_2", {
"i11_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 1, 1, 2, 0, 0, 0, 8}, 381},
867 {
"i12_2", {
"i12_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 1, 2, 2, 0, 0, 0, 16}, 393},
868 {
"i13_2", {
"i13_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 1, 3, 2, 0, 0, 0, 24}, 407},
869 {
"i14_2", {
"i14_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 1, 4, 2, 0, 0, 0, 32}, 423},
870 {
"i21_2", {
"i21_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 2, 1, 2, 0, 0, 0, 16}, 441},
871 {
"i22_2", {
"i22_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 2, 2, 2, 0, 0, 0, 32}, 455},
872 {
"i23_2", {
"i23_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 2, 3, 2, 0, 0, 0, 48}, 473},
873 {
"i24_2", {
"i24_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 2, 4, 2, 0, 0, 0, 64}, 495},
874 {
"i31_2", {
"i31_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 3, 1, 2, 0, 0, 0, 24}, 521},
875 {
"i32_2", {
"i32_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 3, 2, 2, 0, 0, 0, 48}, 537},
876 {
"i33_2", {
"i33_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 3, 3, 2, 0, 0, 0, 72}, 559},
877 {
"i34_2", {
"i34_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 3, 4, 2, 0, 0, 0, 96}, 587},
878 {
"i41_2", {
"i41_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 4, 1, 2, 0, 0, 0, 32}, 621},
879 {
"i42_2", {
"i42_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 4, 2, 2, 0, 0, 0, 64}, 639},
880 {
"i43_2", {
"i43_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 4, 3, 2, 0, 0, 0, 96}, 665},
881 {
"i44_2", {
"i44_2",
NULL,
D3DXPC_MATRIX_ROWS,
D3DXPT_INT, 4, 4, 2, 0, 0, 0, 128}, 699},
889string s_2[2] = {
"test1",
"test2"};
8990xfeff0901, 0x00000100, 0x00000000, 0x00000004, 0x00000004, 0x0000001c, 0x00000000, 0x00000000,
9000x00000001, 0x00000002, 0x00000073, 0x00000004, 0x00000004, 0x00000040, 0x00000000, 0x00000002,
9010x00000002, 0x00000003, 0x00000004, 0x00325f73, 0x00000007, 0x00000004, 0x00000060, 0x00000000,
9020x00000000, 0x00000004, 0x00000004, 0x00786574, 0x00000010, 0x00000004, 0x00000080, 0x00000000,
9030x00000000, 0x00000005, 0x00000002, 0x00000076, 0x00000010, 0x00000004, 0x000000a4, 0x00000000,
9040x00000002, 0x00000006, 0x00000007, 0x00000004, 0x00325f76, 0x0000000f, 0x00000004, 0x000000c4,
9050x00000000, 0x00000000, 0x00000008, 0x00000002, 0x00000070, 0x0000000f, 0x00000004, 0x000000e8,
9060x00000000, 0x00000002, 0x00000009, 0x0000000a, 0x00000004, 0x00325f70, 0x00000002, 0x00000070,
9070x00000002, 0x00000074, 0x00000007, 0x00000001, 0x00000007, 0x0000000b, 0x00000004, 0x00000018,
9080x00000000, 0x00000000, 0x00000024, 0x00000038, 0x00000000, 0x00000000, 0x00000048, 0x0000005c,
9090x00000000, 0x00000000, 0x00000068, 0x0000007c, 0x00000000, 0x00000000, 0x00000088, 0x0000009c,
9100x00000000, 0x00000000, 0x000000ac, 0x000000c0, 0x00000000, 0x00000000, 0x000000cc, 0x000000e0,
9110x00000000, 0x00000000, 0x000000f8, 0x00000000, 0x00000001, 0x000000f0, 0x00000000, 0x00000000,
9120x0000000a, 0x00000000, 0x00000009, 0x00000000, 0x0000000a, 0x00000000, 0x00000008, 0x00000000,
9130x00000006, 0x00000000, 0x00000007, 0x00000000, 0x00000005, 0x00000000, 0x00000004, 0x00000000,
9140x00000002, 0x00000006, 0x74736574, 0x00000031, 0x00000003, 0x00000006, 0x74736574, 0x00000032,
9150x00000001, 0x00000005, 0x74736574, 0x00000000,
920 {
"s", {
"s",
NULL,
D3DXPC_OBJECT,
D3DXPT_STRING, 0, 0, 0, 0, 0, 0,
sizeof(
void *)}, 0},
921 {
"s_2", {
"s_2",
NULL,
D3DXPC_OBJECT,
D3DXPT_STRING, 0, 0, 2, 0, 0, 0, 2 *
sizeof(
void *)}, 0},
922 {
"tex", {
"tex",
NULL,
D3DXPC_OBJECT,
D3DXPT_TEXTURE2D, 0, 0, 0, 0, 0, 0,
sizeof(
void *)}, 0},
923 {
"v", {
"v",
NULL,
D3DXPC_OBJECT,
D3DXPT_VERTEXSHADER, 0, 0, 0, 0, 0, 0,
sizeof(
void *)}, 0},
924 {
"v_2", {
"v_2",
NULL,
D3DXPC_OBJECT,
D3DXPT_VERTEXSHADER, 0, 0, 2, 0, 0, 0, 2 *
sizeof(
void *)}, 0},
925 {
"p", {
"p",
NULL,
D3DXPC_OBJECT,
D3DXPT_PIXELSHADER, 0, 0, 0, 0, 0, 0,
sizeof(
void *)}, 0},
926 {
"p_2", {
"p_2",
NULL,
D3DXPC_OBJECT,
D3DXPT_PIXELSHADER, 0, 0, 2, 0, 0, 0, 2 *
sizeof(
void *)}, 0},
933float3
f3 = {-3.1, 153.2, 283.3};
934float3 f3min = {-31.1, -31.2, -31.3};
935float3 f3max = {320.1, 320.2, 320.3};
936float4
f4 = {-4.1, 154.2, 284.3, 34.4};
937float4 f4min = {-41.1, -41.2, -41.3, -41.4};
938float4 f4max = {420.1, 42.20, 420.3, 420.4};
9430xfeff0901, 0x00000150, 0x00000000, 0x00000003, 0x00000001, 0x0000002c, 0x00000000, 0x00000000,
9440x00000003, 0x00000001, 0xc0466666, 0x43193333, 0x438da666, 0x00000003, 0x00003366, 0x00000003,
9450x00000001, 0x0000005c, 0x00000000, 0x00000000, 0x00000003, 0x00000001, 0xc1f8cccd, 0xc1f9999a,
9460xc1fa6666, 0x00000006, 0x696d3366, 0x0000006e, 0x00000003, 0x00000001, 0x00000090, 0x00000000,
9470x00000000, 0x00000003, 0x00000001, 0x43a00ccd, 0x43a0199a, 0x43a02666, 0x00000006, 0x616d3366,
9480x00000078, 0x00000003, 0x00000001, 0x000000c8, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
9490xc0833333, 0x431a3333, 0x438e2666, 0x4209999a, 0x00000003, 0x00003466, 0x00000003, 0x00000001,
9500x000000fc, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0xc2246666, 0xc224cccd, 0xc2253333,
9510xc225999a, 0x00000006, 0x696d3466, 0x0000006e, 0x00000003, 0x00000001, 0x00000134, 0x00000000,
9520x00000000, 0x00000004, 0x00000001, 0x43d20ccd, 0x4228cccd, 0x43d22666, 0x43d23333, 0x00000006,
9530x616d3466, 0x00000078, 0x00000002, 0x00000070, 0x00000002, 0x00000074, 0x00000006, 0x00000001,
9540x00000001, 0x00000001, 0x00000004, 0x00000020, 0x00000000, 0x00000000, 0x00000034, 0x00000050,
9550x00000000, 0x00000000, 0x00000068, 0x00000084, 0x00000000, 0x00000000, 0x0000009c, 0x000000b8,
9560x00000000, 0x00000000, 0x000000d0, 0x000000ec, 0x00000000, 0x00000000, 0x00000108, 0x00000124,
9570x00000000, 0x00000000, 0x00000148, 0x00000000, 0x00000001, 0x00000140, 0x00000000, 0x00000000,
9580x00000000, 0x00000000,
963 {
"f3", {
"f3",
NULL,
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 3, 0, 0, 0, 0, 12}, 10},
964 {
"f3min", {
"f3min",
NULL,
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 3, 0, 0, 0, 0, 12}, 22},
965 {
"f3max", {
"f3max",
NULL,
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 3, 0, 0, 0, 0, 12}, 35},
966 {
"f4", {
"f4",
NULL,
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 4, 0, 0, 0, 0, 16}, 48},
967 {
"f4min", {
"f4min",
NULL,
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 4, 0, 0, 0, 0, 16}, 61},
968 {
"f4max", {
"f4max",
NULL,
D3DXPC_VECTOR,
D3DXPT_FLOAT, 1, 4, 0, 0, 0, 0, 16}, 75},
971#define ADD_PARAMETER_VALUE(x) {\
972 test_effect_parameter_value_blob_ ## x,\
973 sizeof(test_effect_parameter_value_blob_ ## x),\
974 test_effect_parameter_value_result_ ## x,\
975 ARRAY_SIZE(test_effect_parameter_value_result_ ## x),\
993#undef ADD_PARAMETER_VALUE
996#define EFFECT_PARAMETER_VALUE_ARRAY_SIZE 48
998#define INT_FLOAT_MULTI 255.0f
999#define INT_FLOAT_MULTI_INVERSE (1/INT_FLOAT_MULTI)
1005 const char *res_full_name =
res->full_name;
1011 hr = effect->lpVtbl->GetValue(effect, parameter,
value, res_desc->
Bytes);
1016 ok(
hr ==
D3D_OK,
"%u - %s: GetValue failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
1018 for (
l = 0;
l < res_desc->
Bytes /
sizeof(*value); ++
l)
1020 ok(
value[
l] == res_value[
l],
"%u - %s: GetValue value[%u] failed, got %#x, expected %#x\n",
1021 i, res_full_name,
l,
value[
l], res_value[
l]);
1026 ok(
value[
l] == 0xabababab,
"%u - %s: GetValue value[%u] failed, got %#x, expected %#x\n",
1027 i, res_full_name,
l,
value[
l], 0xabababab);
1032 switch (res_desc->
Type)
1037 ok(
hr ==
D3D_OK,
"%u - %s: GetValue failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
1042 if (unk) IUnknown_Release(unk);
1047 ok(
hr ==
D3D_OK,
"%u - %s: GetValue failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
1051 ok(0,
"Type is %u, this should not happen!\n", res_desc->
Type);
1062 ok(
value[
l] == 0xabababab,
"%u - %s: GetValue value[%u] failed, got %#x, expected %#x\n",
1063 i, res_full_name,
l,
value[
l], 0xabababab);
1072 const char *res_full_name =
res->full_name;
1073 BOOL bvalue = 0xabababab;
1076 hr = effect->lpVtbl->GetBool(effect, parameter, &bvalue);
1079 ok(
hr ==
D3D_OK,
"%u - %s: GetBool failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
1080 ok(bvalue ==
get_bool(res_value),
"%u - %s: GetBool bvalue failed, got %#x, expected %#x\n",
1081 i, res_full_name, bvalue,
get_bool(res_value));
1087 ok(bvalue == 0xabababab,
"%u - %s: GetBool bvalue failed, got %#x, expected %#x\n",
1088 i, res_full_name, bvalue, 0xabababab);
1096 const char *res_full_name =
res->full_name;
1101 memset(bavalue, 0xab,
sizeof(bavalue));
1102 hr = effect->lpVtbl->GetBoolArray(effect, parameter, bavalue, res_desc->
Bytes /
sizeof(*bavalue));
1107 ok(
hr ==
D3D_OK,
"%u - %s: GetBoolArray failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
1109 for (
l = 0;
l < res_desc->
Bytes /
sizeof(*bavalue); ++
l)
1116 if (bavalue[
l] != 0xabababab) ++
err;
1126 ok(!
err,
"%u - %s: GetBoolArray failed with %u errors\n",
i, res_full_name,
err);
1133 const char *res_full_name =
res->full_name;
1134 INT ivalue = 0xabababab;
1137 hr = effect->lpVtbl->GetInt(effect, parameter, &ivalue);
1140 ok(
hr ==
D3D_OK,
"%u - %s: GetInt failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
1141 ok(ivalue ==
get_int(res_desc->
Type, res_value),
"%u - %s: GetInt ivalue failed, got %i, expected %i\n",
1142 i, res_full_name, ivalue,
get_int(res_desc->
Type, res_value));
1150 ok(
hr ==
D3D_OK,
"%u - %s: GetInt failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
1160 ok(ivalue == tmp,
"%u - %s: GetInt ivalue failed, got %x, expected %x\n",
1161 i, res_full_name, ivalue, tmp);
1167 ok(ivalue == 0xabababab,
"%u - %s: GetInt ivalue failed, got %i, expected %i\n",
1168 i, res_full_name, ivalue, 0xabababab);
1176 const char *res_full_name =
res->full_name;
1181 memset(iavalue, 0xab,
sizeof(iavalue));
1182 hr = effect->lpVtbl->GetIntArray(effect, parameter, iavalue, res_desc->
Bytes /
sizeof(*iavalue));
1187 ok(
hr ==
D3D_OK,
"%u - %s: GetIntArray failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
1189 for (
l = 0;
l < res_desc->
Bytes /
sizeof(*iavalue); ++
l)
1196 if (iavalue[
l] != 0xabababab) ++
err;
1206 ok(!
err,
"%u - %s: GetIntArray failed with %u errors\n",
i, res_full_name,
err);
1213 const char *res_full_name =
res->full_name;
1218 hr = effect->lpVtbl->GetFloat(effect, parameter, &fvalue);
1221 ok(
hr ==
D3D_OK,
"%u - %s: GetFloat failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
1229 ok(fvalue == *(
FLOAT *)&
cmp,
"%u - %s: GetFloat fvalue failed, got %f, expected %f\n",
1230 i, res_full_name, fvalue, *(
FLOAT *)&
cmp);
1238 const char *res_full_name =
res->full_name;
1244 memset(favalue, 0xab,
sizeof(favalue));
1245 hr = effect->lpVtbl->GetFloatArray(effect, parameter, favalue, res_desc->
Bytes /
sizeof(*favalue));
1250 ok(
hr ==
D3D_OK,
"%u - %s: GetFloatArray failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
1252 for (
l = 0;
l < res_desc->
Bytes /
sizeof(*favalue); ++
l)
1269 ok(!
err,
"%u - %s: GetFloatArray failed with %u errors\n",
i, res_full_name,
err);
1276 const char *res_full_name =
res->full_name;
1282 memset(fvalue, 0xab,
sizeof(fvalue));
1283 hr = effect->lpVtbl->GetVector(effect, parameter, (
D3DXVECTOR4 *)&fvalue);
1290 ok(
hr ==
D3D_OK,
"%u - %s: GetVector failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
1297 if (*res_value != tmp) ++
err;
1301 ok(
hr ==
D3D_OK,
"%u - %s: GetVector failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
1308 for (
l = res_desc->
Columns;
l < 4; ++
l)
if (fvalue[
l] != 0.0f) ++
err;
1317 ok(!
err,
"%u - %s: GetVector failed with %u errors\n",
i, res_full_name,
err);
1324 const char *res_full_name =
res->full_name;
1332 memset(fvalue, 0xab,
sizeof(fvalue));
1349 &res_value[
l +
k * res_desc->
Columns]), 512))
1353 for (
l = res_desc->
Columns;
l < 4; ++
l)
if (fvalue[
l +
k * 4] != 0.0f) ++
err;
1365 ok(!
err,
"%u - %s[%u]: GetVectorArray failed with %u errors\n",
i, res_full_name,
element,
err);
1373 const char *res_full_name =
res->full_name;
1384 memset(fvalue, 0xab,
sizeof(fvalue));
1385 hr = effect->lpVtbl->GetMatrix(effect, parameter, (
D3DXMATRIX *)&fvalue);
1388 ok(
hr ==
D3D_OK,
"%u - %s: GetMatrix failed, got %#x, expected %#x.\n",
i, res_full_name,
hr,
D3D_OK);
1390 for (
k = 0;
k < 4; ++
k)
1392 for (
l = 0;
l < 4; ++
l)
1397 &res_value[
l * res_desc->
Columns +
k]), 512))
1400 else if (fvalue[
l * 4 +
k] != 0.0f) ++
err;
1410 if (fvalue[
l] !=
cmp.f)
1413 ok(!
err,
"%u - %s: GetMatrix failed with %u errors.\n",
i, res_full_name,
err);
1420 const char *res_full_name =
res->full_name;
1428 memset(fvalue, 0xab,
sizeof(fvalue));
1442 for (
k = 0;
k < 4; ++
k)
1444 for (
l = 0;
l < 4; ++
l)
1452 else if (fvalue[
m * 16 +
l * 4 +
k] != 0.0f) ++
err;
1466 ok(!
err,
"%u - %s[%u]: GetMatrixArray failed with %u errors\n",
i, res_full_name,
element,
err);
1474 const char *res_full_name =
res->full_name;
1483 memset(fvalue, 0xab,
sizeof(fvalue));
1486 matrix_pointer_array[
l] = (
D3DXMATRIX *)&fvalue[
l *
sizeof(**matrix_pointer_array) /
sizeof(
FLOAT)];
1488 hr = effect->lpVtbl->GetMatrixPointerArray(effect, parameter, matrix_pointer_array,
element);
1491 ok(
hr ==
D3D_OK,
"%u - %s[%u]: GetMatrixPointerArray failed, got %#x, expected %#x\n",
1498 ok(
hr ==
D3D_OK,
"%u - %s[%u]: GetMatrixPointerArray failed, got %#x, expected %#x\n",
1503 for (
k = 0;
k < 4; ++
k)
1505 for (
l = 0;
l < 4; ++
l)
1513 else if (fvalue[
m * 16 +
l * 4 +
k] != 0.0f) ++
err;
1527 ok(!
err,
"%u - %s[%u]: GetMatrixPointerArray failed with %u errors\n",
i, res_full_name,
element,
err);
1535 const char *res_full_name =
res->full_name;
1546 memset(fvalue, 0xab,
sizeof(fvalue));
1547 hr = effect->lpVtbl->GetMatrixTranspose(effect, parameter, (
D3DXMATRIX *)&fvalue);
1550 ok(
hr ==
D3D_OK,
"%u - %s: GetMatrixTranspose failed, got %#x, expected %#x.\n",
i, res_full_name,
hr,
D3D_OK);
1552 for (
k = 0;
k < 4; ++
k)
1554 for (
l = 0;
l < 4; ++
l)
1559 &res_value[
l * res_desc->
Columns +
k]), 512))
1562 else if (fvalue[
l +
k * 4] != 0.0f) ++
err;
1568 ok(
hr ==
D3D_OK,
"%u - %s: GetMatrixTranspose failed, got %#x, expected %#x.\n",
i, res_full_name,
hr,
D3D_OK);
1570 for (
k = 0;
k < 4; ++
k)
1572 for (
l = 0;
l < 4; ++
l)
1577 &res_value[
l * res_desc->
Columns +
k]), 512))
1580 else if (fvalue[
l * 4 +
k] != 0.0f) ++
err;
1590 if (fvalue[
l] !=
cmp.f)
1593 ok(!
err,
"%u - %s: GetMatrixTranspose failed with %u errors.\n",
i, res_full_name,
err);
1600 const char *res_full_name =
res->full_name;
1608 memset(fvalue, 0xab,
sizeof(fvalue));
1609 hr = effect->lpVtbl->GetMatrixTransposeArray(effect, parameter, (
D3DXMATRIX *)&fvalue,
element);
1612 ok(
hr ==
D3D_OK,
"%u - %s[%u]: GetMatrixTransposeArray failed, got %#x, expected %#x\n",
1619 ok(
hr ==
D3D_OK,
"%u - %s[%u]: GetMatrixTransposeArray failed, got %#x, expected %#x\n",
1624 for (
k = 0;
k < 4; ++
k)
1626 for (
l = 0;
l < 4; ++
l)
1634 else if (fvalue[
m * 16 +
l +
k * 4] != 0.0f) ++
err;
1648 ok(!
err,
"%u - %s[%u]: GetMatrixTransposeArray failed with %u errors\n",
i, res_full_name,
element,
err);
1656 const char *res_full_name =
res->full_name;
1665 memset(fvalue, 0xab,
sizeof(fvalue));
1668 matrix_pointer_array[
l] = (
D3DXMATRIX *)&fvalue[
l *
sizeof(**matrix_pointer_array) /
sizeof(
FLOAT)];
1670 hr = effect->lpVtbl->GetMatrixTransposePointerArray(effect, parameter, matrix_pointer_array,
element);
1673 ok(
hr ==
D3D_OK,
"%u - %s[%u]: GetMatrixTransposePointerArray failed, got %#x, expected %#x\n",
1680 ok(
hr ==
D3D_OK,
"%u - %s[%u]: GetMatrixTransposePointerArray failed, got %#x, expected %#x\n",
1685 for (
k = 0;
k < 4; ++
k)
1687 for (
l = 0;
l < 4; ++
l)
1695 else if (fvalue[
m * 16 +
l +
k * 4] != 0.0f) ++
err;
1704 ok(
hr ==
D3DERR_INVALIDCALL,
"%u - %s[%u]: GetMatrixTransposePointerArray failed, got %#x, expected %#x\n",
1709 ok(!
err,
"%u - %s[%u]: GetMatrixTransposePointerArray failed with %u errors\n",
i, res_full_name,
element,
err);
1737 const char *res_full_name =
res->full_name;
1744 hr = effect->lpVtbl->SetValue(effect, parameter, res_value, res_desc->
Bytes);
1745 ok(
hr ==
D3D_OK,
"%u - %s: SetValue failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
1750 switch (res_desc->
Type)
1759 ok(0,
"Type is %u, this should not happen!\n", res_desc->
Type);
1769 for (
i = 0;
i < effect_count; ++
i)
1776 ID3DXEffect *effect;
1784 hr = effect->lpVtbl->GetDesc(effect, &edesc);
1792 const char *res_full_name =
res[
k].full_name;
1793 UINT res_value_offset =
res[
k].value_offset;
1798 FLOAT fvalue = 2.71828f;
1804 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL, res_full_name);
1805 ok(parameter !=
NULL,
"%u - %s: GetParameterByName failed\n",
i, res_full_name);
1807 hr = effect->lpVtbl->GetParameterDesc(effect, parameter, &pdesc);
1808 ok(
hr ==
D3D_OK,
"%u - %s: GetParameterDesc failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
1811 "%u - %s: GetParameterDesc Name failed, got \"%s\", expected \"%s\"\n",
1812 i, res_full_name, pdesc.
Name, res_desc->
Name);
1814 "%u - %s: GetParameterDesc Semantic failed, got \"%s\", expected \"%s\"\n",
1816 ok(res_desc->
Class == pdesc.
Class,
"%u - %s: GetParameterDesc Class failed, got %#x, expected %#x\n",
1818 ok(res_desc->
Type == pdesc.
Type,
"%u - %s: GetParameterDesc Type failed, got %#x, expected %#x\n",
1819 i, res_full_name, pdesc.
Type, res_desc->
Type);
1820 ok(res_desc->
Rows == pdesc.
Rows,
"%u - %s: GetParameterDesc Rows failed, got %u, expected %u\n",
1821 i, res_full_name, pdesc.
Rows, res_desc->
Rows);
1822 ok(res_desc->
Columns == pdesc.
Columns,
"%u - %s: GetParameterDesc Columns failed, got %u, expected %u\n",
1824 ok(res_desc->
Elements == pdesc.
Elements,
"%u - %s: GetParameterDesc Elements failed, got %u, expected %u\n",
1826 ok(res_desc->
Annotations == pdesc.
Annotations,
"%u - %s: GetParameterDesc Annotations failed, got %u, expected %u\n",
1830 ok(res_desc->
Flags == pdesc.
Flags,
"%u - %s: GetParameterDesc Flags failed, got %u, expected %u\n",
1832 ok(res_desc->
Bytes == pdesc.
Bytes,
"%u - %s: GetParameterDesc Bytes, got %u, expected %u\n",
1838 "%u - %s: Warning: Array size too small\n",
i, res_full_name);
1862 hr = effect->lpVtbl->SetBool(effect,
NULL, bvalue);
1866 hr = effect->lpVtbl->GetBool(effect,
NULL, &bvalue);
1870 hr = effect->lpVtbl->GetBool(effect, parameter,
NULL);
1874 hr = effect->lpVtbl->SetBoolArray(effect,
NULL, (
BOOL *)input_value, res_desc->
Bytes /
sizeof(
BOOL));
1878 hr = effect->lpVtbl->GetBoolArray(effect,
NULL, (
BOOL *)input_value, res_desc->
Bytes /
sizeof(
BOOL));
1882 hr = effect->lpVtbl->GetBoolArray(effect, parameter,
NULL, res_desc->
Bytes /
sizeof(
BOOL));
1886 hr = effect->lpVtbl->SetInt(effect,
NULL, ivalue);
1890 hr = effect->lpVtbl->GetInt(effect,
NULL, &ivalue);
1894 hr = effect->lpVtbl->GetInt(effect, parameter,
NULL);
1898 hr = effect->lpVtbl->SetIntArray(effect,
NULL, (
INT *)input_value, res_desc->
Bytes /
sizeof(
INT));
1902 hr = effect->lpVtbl->GetIntArray(effect,
NULL, (
INT *)input_value, res_desc->
Bytes /
sizeof(
INT));
1906 hr = effect->lpVtbl->GetIntArray(effect, parameter,
NULL, res_desc->
Bytes /
sizeof(
INT));
1910 hr = effect->lpVtbl->SetFloat(effect,
NULL, fvalue);
1914 hr = effect->lpVtbl->GetFloat(effect,
NULL, &fvalue);
1918 hr = effect->lpVtbl->GetFloat(effect, parameter,
NULL);
1922 hr = effect->lpVtbl->SetFloatArray(effect,
NULL, (
FLOAT *)input_value, res_desc->
Bytes /
sizeof(
FLOAT));
1926 hr = effect->lpVtbl->GetFloatArray(effect,
NULL, (
FLOAT *)input_value, res_desc->
Bytes /
sizeof(
FLOAT));
1930 hr = effect->lpVtbl->GetFloatArray(effect, parameter,
NULL, res_desc->
Bytes /
sizeof(
FLOAT));
1942 hr = effect->lpVtbl->GetVector(effect, parameter,
NULL);
1954 hr = effect->lpVtbl->GetVectorArray(effect, parameter,
NULL, res_desc->
Elements ? res_desc->
Elements : 1);
1974 hr = effect->lpVtbl->GetMatrixArray(effect, parameter,
NULL, res_desc->
Elements ? res_desc->
Elements : 1);
1978 hr = effect->lpVtbl->SetMatrixPointerArray(effect,
NULL, matrix_pointer_array, res_desc->
Elements ? res_desc->
Elements : 1);
1982 hr = effect->lpVtbl->SetMatrixPointerArray(effect,
NULL, matrix_pointer_array, 0);
1986 hr = effect->lpVtbl->GetMatrixPointerArray(effect,
NULL,
NULL, 0);
1987 ok(
hr ==
D3D_OK,
"%u - %s: GetMatrixPointerArray failed, got %#x, expected %#x\n",
1994 hr = effect->lpVtbl->GetMatrixPointerArray(effect, parameter,
NULL, res_desc->
Elements ? res_desc->
Elements : 1);
1998 hr = effect->lpVtbl->SetMatrixTranspose(effect,
NULL, (
D3DXMATRIX *)input_value);
2002 hr = effect->lpVtbl->GetMatrixTranspose(effect,
NULL, (
D3DXMATRIX *)input_value);
2006 hr = effect->lpVtbl->GetMatrixTranspose(effect, parameter,
NULL);
2018 hr = effect->lpVtbl->GetMatrixTransposeArray(effect, parameter,
NULL, res_desc->
Elements ? res_desc->
Elements : 1);
2022 hr = effect->lpVtbl->SetMatrixTransposePointerArray(effect,
NULL, matrix_pointer_array, res_desc->
Elements ? res_desc->
Elements : 1);
2026 hr = effect->lpVtbl->SetMatrixTransposePointerArray(effect,
NULL, matrix_pointer_array, 0);
2030 hr = effect->lpVtbl->GetMatrixTransposePointerArray(effect,
NULL,
NULL, 0);
2031 ok(
hr ==
D3D_OK,
"%u - %s: GetMatrixTransposePointerArray failed, got %#x, expected %#x\n",
2038 hr = effect->lpVtbl->GetMatrixTransposePointerArray(effect, parameter,
NULL, res_desc->
Elements ? res_desc->
Elements : 1);
2042 hr = effect->lpVtbl->SetValue(effect,
NULL, input_value, res_desc->
Bytes);
2046 hr = effect->lpVtbl->SetValue(effect, parameter, input_value, res_desc->
Bytes - 1);
2050 hr = effect->lpVtbl->GetValue(effect,
NULL, input_value, res_desc->
Bytes);
2054 hr = effect->lpVtbl->GetValue(effect, parameter, input_value, res_desc->
Bytes - 1);
2063 hr = effect->lpVtbl->SetBool(effect, parameter, bvalue);
2068 ok(
hr ==
D3D_OK,
"%u - %s: SetBool failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
2080 for (
l = 1;
l < res_desc->
Bytes /
sizeof(*input_value); ++
l)
2082 *(input_value +
l) = *(input_value +
l - 1) + 1;
2085 hr = effect->lpVtbl->SetBoolArray(effect, parameter, (
BOOL *)input_value, res_desc->
Bytes /
sizeof(*input_value));
2090 for (
l = 0;
l < res_desc->
Bytes /
sizeof(*input_value); ++
l)
2094 ok(
hr ==
D3D_OK,
"%u - %s: SetBoolArray failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
2105 ivalue = 0x1fbf02ff;
2107 hr = effect->lpVtbl->SetInt(effect, parameter, ivalue);
2111 ok(
hr ==
D3D_OK,
"%u - %s: SetInt failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
2126 ok(
hr ==
D3D_OK,
"%u - %s: SetInt failed, got %#x, expected %#x\n",
2138 *input_value = 123456;
2139 for (
l = 0;
l < res_desc->
Bytes /
sizeof(*input_value); ++
l)
2141 *(input_value +
l) = *(input_value +
l - 1) + 23;
2144 hr = effect->lpVtbl->SetIntArray(effect, parameter, (
INT *)input_value, res_desc->
Bytes /
sizeof(*input_value));
2149 for (
l = 0;
l < res_desc->
Bytes /
sizeof(*input_value); ++
l)
2153 ok(
hr ==
D3D_OK,
"%u - %s: SetIntArray failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
2166 hr = effect->lpVtbl->SetFloat(effect, parameter, fvalue);
2170 ok(
hr ==
D3D_OK,
"%u - %s: SetFloat failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
2182 for (
l = 0;
l < res_desc->
Bytes /
sizeof(fvalue); ++
l)
2184 *(input_value +
l) = *(
DWORD *)&fvalue;
2188 hr = effect->lpVtbl->SetFloatArray(effect, parameter, (
FLOAT *)input_value, res_desc->
Bytes /
sizeof(*input_value));
2193 for (
l = 0;
l < res_desc->
Bytes /
sizeof(*input_value); ++
l)
2197 ok(
hr ==
D3D_OK,
"%u - %s: SetFloatArray failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
2209 for (
l = 0;
l < 4; ++
l)
2211 *(input_value +
l) = *(
DWORD *)&fvalue;
2215 hr = effect->lpVtbl->SetVector(effect, parameter, (
D3DXVECTOR4 *)input_value);
2230 for (
l = 0;
l < 4; ++
l)
2235 ok(
hr ==
D3D_OK,
"%u - %s: SetVector failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
2251 *(input_value +
l) = *(
DWORD *)&fvalue;
2265 ok(
hr ==
D3D_OK,
"%u - %s: SetVectorArray failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
2278 for (
l = 0;
l < 16; ++
l)
2280 *(input_value +
l) = *(
DWORD *)&fvalue;
2284 hr = effect->lpVtbl->SetMatrix(effect, parameter, (
D3DXMATRIX *)input_value);
2287 for (
l = 0;
l < 4; ++
l)
2289 for (
m = 0;
m < 4; ++
m)
2297 ok(
hr ==
D3D_OK,
"%u - %s: SetMatrix failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
2313 *(input_value +
l) = *(
DWORD *)&fvalue;
2317 hr = effect->lpVtbl->SetMatrixArray(effect, parameter, (
D3DXMATRIX *)input_value,
element);
2322 for (
l = 0;
l < 4; ++
l)
2324 for (
m = 0;
m < 4; ++
m)
2333 ok(
hr ==
D3D_OK,
"%u - %s: SetMatrixArray failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
2350 *(input_value +
l) = *(
DWORD *)&fvalue;
2356 matrix_pointer_array[
l] = (
D3DXMATRIX *)&input_value[
l *
sizeof(**matrix_pointer_array) /
sizeof(
FLOAT)];
2358 hr = effect->lpVtbl->SetMatrixPointerArray(effect, parameter, matrix_pointer_array,
element);
2363 for (
l = 0;
l < 4; ++
l)
2365 for (
m = 0;
m < 4; ++
m)
2374 ok(
hr ==
D3D_OK,
"%u - %s: SetMatrixPointerArray failed, got %#x, expected %#x\n",
2388 for (
l = 0;
l < 16; ++
l)
2390 *(input_value +
l) = *(
DWORD *)&fvalue;
2394 hr = effect->lpVtbl->SetMatrixTranspose(effect, parameter, (
D3DXMATRIX *)input_value);
2397 for (
l = 0;
l < 4; ++
l)
2399 for (
m = 0;
m < 4; ++
m)
2407 ok(
hr ==
D3D_OK,
"%u - %s: SetMatrixTranspose failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
2423 *(input_value +
l) = *(
DWORD *)&fvalue;
2427 hr = effect->lpVtbl->SetMatrixTransposeArray(effect, parameter, (
D3DXMATRIX *)input_value,
element);
2432 for (
l = 0;
l < 4; ++
l)
2434 for (
m = 0;
m < 4; ++
m)
2443 ok(
hr ==
D3D_OK,
"%u - %s: SetMatrixTransposeArray failed, got %#x, expected %#x\n",
i, res_full_name,
hr,
D3D_OK);
2460 *(input_value +
l) = *(
DWORD *)&fvalue;
2466 matrix_pointer_array[
l] = (
D3DXMATRIX *)&input_value[
l *
sizeof(**matrix_pointer_array) /
sizeof(
FLOAT)];
2468 hr = effect->lpVtbl->SetMatrixTransposePointerArray(effect, parameter, matrix_pointer_array,
element);
2473 for (
l = 0;
l < 4; ++
l)
2475 for (
m = 0;
m < 4; ++
m)
2484 ok(
hr ==
D3D_OK,
"%u - %s: SetMatrixTransposePointerArray failed, got %#x, expected %#x\n",
2497 count = effect->lpVtbl->Release(effect);
2504 static const char expected_string[] =
"test_string_1";
2505 static const char expected_string2[] =
"test_longer_string_2";
2506 static const char *expected_string_array[] = {expected_string, expected_string2};
2507 const char *string_array[
ARRAY_SIZE(expected_string_array)];
2509 IDirect3DTexture9 *texture_set;
2512 ID3DXEffect *effect;
2519 ok(
hr ==
D3D_OK,
"Got result %#x, expected 0 (D3D_OK).\n",
hr);
2521 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"tex");
2522 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2526 ok(
hr ==
D3D_OK,
"Got result %#x, expected 0 (D3D_OK).\n",
hr);
2527 hr = effect->lpVtbl->SetValue(effect, parameter, &
texture,
sizeof(
texture));
2528 ok(
hr ==
D3D_OK,
"Got result %#x, expected 0 (D3D_OK).\n",
hr);
2530 hr = effect->lpVtbl->GetValue(effect, parameter, &texture_set,
sizeof(texture_set));
2531 ok(
hr ==
D3D_OK,
"Got result %#x, expected 0 (D3D_OK).\n",
hr);
2532 ok(
texture == texture_set,
"Texture does not match.\n");
2535 ok(
count == 2,
"Got reference count %u, expected 2.\n",
count);
2537 hr = effect->lpVtbl->SetValue(effect, parameter, &texture_set,
sizeof(texture_set));
2538 ok(
hr ==
D3D_OK,
"Got result %#x, expected 0 (D3D_OK).\n",
hr);
2540 ok(!
count,
"Got reference count %u, expected 0.\n",
count);
2542 hr = effect->lpVtbl->SetString(effect,
"s", expected_string);
2545 hr = effect->lpVtbl->GetString(effect,
"s", &
string);
2547 hr = effect->lpVtbl->GetString(effect,
"s", &
string2);
2550 ok(
string != expected_string,
"String pointers are the same.\n");
2551 ok(
string ==
string2,
"String pointers differ.\n");
2552 ok(!
strcmp(
string, expected_string),
"Unexpected string '%s'.\n",
string);
2554 string = expected_string2;
2555 hr = effect->lpVtbl->SetValue(effect,
"s", &
string,
sizeof(
string) - 1);
2557 hr = effect->lpVtbl->SetValue(effect,
"s", &
string,
sizeof(
string));
2559 hr = effect->lpVtbl->SetValue(effect,
"s", &
string,
sizeof(
string) * 2);
2562 hr = effect->lpVtbl->GetValue(effect,
"s", &
string,
sizeof(
string));
2565 ok(
string != expected_string2,
"String pointers are the same.\n");
2566 ok(!
strcmp(
string, expected_string2),
"Unexpected string '%s'.\n",
string);
2568 hr = effect->lpVtbl->SetValue(effect,
"s_2", expected_string_array,
2569 sizeof(expected_string_array));
2571 hr = effect->lpVtbl->GetValue(effect,
"s_2", string_array,
2572 sizeof(string_array));
2576 ok(!
strcmp(string_array[
i], expected_string_array[
i]),
"Unexpected string '%s', i %u.\n",
2577 string_array[
i],
i);
2579 effect->lpVtbl->Release(effect);
2588float c <float d = 3;>;
2590float g <
float h[1] = {3};>;
2592float i <
s k[1] = {4};>;
2593technique
t <
s l[1] = {5};> {
pass p <
s m[1] = {6};> { } }
25970xfeff0901, 0x0000024c, 0x00000000, 0x00000003, 0x00000000, 0x00000024, 0x00000000, 0x00000000,
25980x00000001, 0x00000001, 0x40066666, 0x00000002, 0x00000061, 0x00000003, 0x00000000, 0x0000004c,
25990x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0x00000002, 0x00000062, 0x00000003,
26000x00000000, 0x0000009c, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x40400000,
26010x00000003, 0x00000000, 0x00000094, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000002,
26020x00000064, 0x00000002, 0x00000063, 0x00000000, 0x00000005, 0x000000dc, 0x00000000, 0x00000000,
26030x00000001, 0x00000003, 0x00000000, 0x000000e4, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
26040x00000000, 0x00000002, 0x00000066, 0x00000002, 0x00000065, 0x00000003, 0x00000000, 0x00000134,
26050x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x40400000, 0x00000003, 0x00000000,
26060x0000012c, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000068, 0x00000002,
26070x00000067, 0x00000003, 0x00000000, 0x000001a4, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
26080x00000000, 0x40800000, 0x00000000, 0x00000005, 0x00000194, 0x00000000, 0x00000001, 0x00000001,
26090x00000003, 0x00000000, 0x0000019c, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000002,
26100x0000006b, 0x00000002, 0x0000006a, 0x00000002, 0x00000069, 0x40a00000, 0x00000000, 0x00000005,
26110x000001e4, 0x00000000, 0x00000001, 0x00000001, 0x00000003, 0x00000000, 0x000001ec, 0x00000000,
26120x00000000, 0x00000001, 0x00000001, 0x00000002, 0x0000006c, 0x00000002, 0x0000006a, 0x40c00000,
26130x00000000, 0x00000005, 0x0000022c, 0x00000000, 0x00000001, 0x00000001, 0x00000003, 0x00000000,
26140x00000234, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000002, 0x0000006d, 0x00000002,
26150x0000006a, 0x00000002, 0x00000070, 0x00000002, 0x00000074, 0x00000006, 0x00000001, 0x00000001,
26160x00000001, 0x00000004, 0x00000020, 0x00000000, 0x00000000, 0x0000002c, 0x00000048, 0x00000000,
26170x00000000, 0x00000054, 0x00000070, 0x00000000, 0x00000001, 0x00000078, 0x00000074, 0x000000a4,
26180x000000d8, 0x00000000, 0x00000000, 0x000000ec, 0x00000108, 0x00000000, 0x00000001, 0x00000110,
26190x0000010c, 0x0000013c, 0x00000158, 0x00000000, 0x00000001, 0x00000160, 0x0000015c, 0x00000244,
26200x00000001, 0x00000001, 0x000001b0, 0x000001ac, 0x0000023c, 0x00000001, 0x00000000, 0x000001f8,
26210x000001f4, 0x00000000, 0x00000000,
2626 ID3DXEffect *effect;
2640 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
NULL);
2641 ok(
p ==
NULL,
"GetParameterByName failed, got %p, expected %p\n",
p,
NULL);
2643 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"invalid1");
2644 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2646 p = effect->lpVtbl->GetParameterByName(effect,
"invalid1",
NULL);
2647 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2649 p = effect->lpVtbl->GetParameterByName(effect,
"invalid1",
"invalid2");
2650 ok(
p ==
NULL,
"GetParameterByName failed, got %p, expected %p\n",
p,
NULL);
2653 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"a");
2654 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2656 p = effect->lpVtbl->GetParameterByName(effect,
"a",
NULL);
2657 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2660 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"a.");
2661 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2663 p = effect->lpVtbl->GetParameterByName(effect,
"a.",
NULL);
2664 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2666 p = effect->lpVtbl->GetParameterByName(effect,
"a",
".");
2667 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2669 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"a.invalid");
2670 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2672 p = effect->lpVtbl->GetParameterByName(effect,
"a.invalid",
NULL);
2673 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2675 p = effect->lpVtbl->GetParameterByName(effect,
"a",
".invalid");
2676 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2678 p = effect->lpVtbl->GetParameterByName(effect,
"a.",
"invalid");
2679 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2681 p = effect->lpVtbl->GetParameterByName(effect,
"a",
"invalid");
2682 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2685 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"a[]");
2686 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2688 p = effect->lpVtbl->GetParameterByName(effect,
"a[]",
NULL);
2689 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2691 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"a[0]");
2692 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2694 p = effect->lpVtbl->GetParameterByName(effect,
"a[0]",
NULL);
2695 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2697 p = effect->lpVtbl->GetParameterByName(effect,
"a",
"[0]");
2698 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2700 p = effect->lpVtbl->GetParameterElement(effect,
"a", 0);
2701 ok(
p ==
NULL,
"GetParameterElement failed, got %p\n",
p);
2704 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"a@");
2705 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2707 p = effect->lpVtbl->GetParameterByName(effect,
"a@",
NULL);
2708 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2710 p = effect->lpVtbl->GetParameterByName(effect,
"a",
"@invalid");
2711 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2713 p = effect->lpVtbl->GetParameterByName(effect,
"a@",
"invalid");
2714 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2716 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"a@invalid");
2717 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2719 p = effect->lpVtbl->GetParameterByName(effect,
"a@invalid",
NULL);
2720 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2722 p = effect->lpVtbl->GetAnnotationByName(effect,
"a",
NULL);
2723 ok(
p ==
NULL,
"GetAnnotationByName failed, got %p\n",
p);
2725 p = effect->lpVtbl->GetAnnotationByName(effect,
"a",
"invalid");
2726 ok(
p ==
NULL,
"GetAnnotationByName failed, got %p\n",
p);
2728 p = effect->lpVtbl->GetAnnotation(effect,
"a", 0);
2729 ok(
p ==
NULL,
"GetAnnotation failed, got %p\n",
p);
2732 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"b");
2733 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2735 p = effect->lpVtbl->GetParameterByName(effect,
"b",
NULL);
2736 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2739 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"b[]");
2740 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2742 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"b[0]");
2743 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2745 p = effect->lpVtbl->GetParameterByName(effect,
"b[0]",
NULL);
2746 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2748 p = effect->lpVtbl->GetParameterElement(effect,
"b", 0);
2749 ok(parameter ==
p,
"GetParameterElement failed, got %p, expected %p\n",
p, parameter);
2751 p = effect->lpVtbl->GetParameterByName(effect,
"b",
"[0]");
2752 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2754 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"b[1]");
2755 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2757 p = effect->lpVtbl->GetParameterElement(effect,
"b", 1);
2758 ok(
p ==
NULL,
"GetParameterElement failed, got %p\n",
p);
2761 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"c");
2762 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2764 p = effect->lpVtbl->GetParameterByName(effect,
"c",
NULL);
2765 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2768 p = effect->lpVtbl->GetParameterByName(effect,
"c",
"@d");
2769 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2771 p = effect->lpVtbl->GetParameterByName(effect,
"c@",
"d");
2772 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2774 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"c@invalid");
2775 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2777 p = effect->lpVtbl->GetParameterByName(effect,
"c@invalid",
NULL);
2778 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2780 p = effect->lpVtbl->GetAnnotationByName(effect,
"c",
NULL);
2781 ok(
p ==
NULL,
"GetAnnotationByName failed, got %p\n",
p);
2783 p = effect->lpVtbl->GetAnnotationByName(effect,
"c",
"invalid");
2784 ok(
p ==
NULL,
"GetAnnotationByName failed, got %p\n",
p);
2786 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"c@d");
2787 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2789 p = effect->lpVtbl->GetParameterByName(effect,
"c@d",
NULL);
2790 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2792 p = effect->lpVtbl->GetAnnotationByName(effect,
"c",
"d");
2793 ok(parameter ==
p,
"GetAnnotationByName failed, got %p, expected %p\n",
p, parameter);
2795 p = effect->lpVtbl->GetAnnotation(effect,
"c", 0);
2796 ok(parameter ==
p,
"GetAnnotation failed, got %p, expected %p\n",
p, parameter);
2798 p = effect->lpVtbl->GetAnnotation(effect,
"c", 1);
2799 ok(
p ==
NULL,
"GetAnnotation failed, got %p\n",
p);
2802 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"f");
2803 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2805 p = effect->lpVtbl->GetParameterByName(effect,
"f",
NULL);
2806 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2809 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"f.e");
2810 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2812 p = effect->lpVtbl->GetParameterByName(effect,
"f.e",
NULL);
2813 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2815 p = effect->lpVtbl->GetParameterByName(effect,
"f",
"e");
2816 ok(parameter ==
p,
"GetParameterByName failed, got %p, expected %p\n",
p, parameter);
2818 p = effect->lpVtbl->GetParameterByName(effect,
"f",
".e");
2819 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2821 p = effect->lpVtbl->GetParameterByName(effect,
"f.",
"e");
2822 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2824 p = effect->lpVtbl->GetParameterByName(effect,
"f.invalid",
NULL);
2825 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2827 p = effect->lpVtbl->GetParameterByName(effect,
NULL,
"f.invalid");
2828 ok(
p ==
NULL,
"GetParameterByName failed, got %p\n",
p);
2831 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g@h[0]");
2832 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2834 p = effect->lpVtbl->GetAnnotationByName(effect,
"g",
"h[0]");
2835 ok(parameter ==
p,
"GetAnnotationByName failed, got %p, expected %p\n",
p, parameter);
2837 p = effect->lpVtbl->GetParameterElement(effect,
"g@h", 0);
2838 ok(parameter ==
p,
"GetParameterElement failed, got %p, expected %p\n",
p, parameter);
2840 p = effect->lpVtbl->GetParameterElement(effect, effect->lpVtbl->GetAnnotation(effect,
"g", 0), 0);
2841 ok(parameter ==
p,
"GetParameterElement failed, got %p, expected %p\n",
p, parameter);
2844 parameter = effect->lpVtbl->GetParameterByName(effect,
NULL,
"i@k[0].j");
2845 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2847 p = effect->lpVtbl->GetAnnotationByName(effect,
"i",
"k[0].j");
2848 ok(parameter ==
p,
"GetAnnotationByName failed, got %p, expected %p\n",
p, parameter);
2850 p = effect->lpVtbl->GetParameterByName(effect, effect->lpVtbl->GetParameterElement(effect,
"i@k", 0),
"j");
2851 ok(parameter ==
p,
"GetParameterElement failed, got %p, expected %p\n",
p, parameter);
2854 parameter = effect->lpVtbl->GetAnnotationByName(effect,
"t",
"l[0].j");
2855 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2858 parameter = effect->lpVtbl->GetAnnotationByName(effect, effect->lpVtbl->GetPassByName(effect,
"t",
"p"),
"m[0].j");
2859 ok(parameter !=
NULL,
"GetParameterByName failed, got %p\n", parameter);
2861 count = effect->lpVtbl->Release(effect);
2867 ID3DXEffect *effect;
2875 ok(!compilation_errors,
"Returned %p\n", compilation_errors);
2881 ok(!compilation_errors,
"Returned %p\n", compilation_errors);
2882 effect->lpVtbl->Release(effect);
2911float4x4 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};
2917 VertexShaderConstant1[1] = 3.0f;
2918 VertexShaderConstant4[2] = 1;
2919 VertexShaderConstant1[3] = {2, 2, 2, 2};
2920 VertexShaderConstant4[4] = {4, 4, 4, 4, 5, 5, 5, 5, 6};
2924 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};
2925 ViewTransform=(camera);
2926 LightEnable[2] =
TRUE;
2927 LightType[2] =
POINT;
2928 LightPosition[2] = {4.0f, 5.0f, 6.0f};
2929 Sampler[1] = sampler1;
2935 0xfeff0901, 0x00000368, 0x00000000, 0x00000010, 0x00000004, 0x00000020, 0x00000000, 0x00000002,
2936 0x00000001, 0x00000002, 0x00000008, 0x615f7376, 0x00317272, 0x0000000a, 0x00000004, 0x00000074,
2937 0x00000000, 0x00000000, 0x00000002, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000,
2938 0x00000001, 0x00000001, 0x00000001, 0x000000ab, 0x00000100, 0x00000044, 0x00000040, 0x00000009,
2939 0x706d6173, 0x3172656c, 0x00000000, 0x00000003, 0x00000002, 0x000000e0, 0x000000ec, 0x00000000,
2940 0x00000004, 0x00000004, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2941 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2942 0x00000000, 0x40c00000, 0x00000007, 0x656d6163, 0x00006172, 0x00000005, 0x57454956, 0x00000000,
2943 0x00000003, 0x00000010, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x40400000, 0x00000003,
2944 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x3f800000, 0x00000003,
2945 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x40000000, 0x40000000,
2946 0x40000000, 0x40000000, 0x00000003, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000004,
2947 0x00000001, 0x40800000, 0x40800000, 0x40800000, 0x40800000, 0x40a00000, 0x40a00000, 0x40a00000,
2948 0x40a00000, 0x40c00000, 0x00000003, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000009,
2949 0x00000001, 0x00000002, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
2950 0x00000001, 0x00000004, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
2951 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
2952 0x00000001, 0x40000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2953 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2954 0x40800000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00000001,
2955 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2956 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2957 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x00000001,
2958 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001,
2959 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x40800000,
2960 0x40a00000, 0x40c00000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
2961 0x00000001, 0x00000000, 0x0000000a, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
2962 0x00003070, 0x00000006, 0x68636574, 0x00000030, 0x00000003, 0x00000001, 0x00000005, 0x00000004,
2963 0x00000004, 0x00000018, 0x00000000, 0x00000000, 0x0000002c, 0x00000060, 0x00000000, 0x00000000,
2964 0x00000084, 0x000000a0, 0x00000000, 0x00000000, 0x0000035c, 0x00000000, 0x00000001, 0x00000354,
2965 0x00000000, 0x0000000e, 0x00000092, 0x00000000, 0x000000fc, 0x000000f8, 0x00000098, 0x00000001,
2966 0x00000114, 0x00000110, 0x0000009b, 0x00000002, 0x00000134, 0x00000130, 0x00000098, 0x00000003,
2967 0x00000160, 0x00000150, 0x0000009b, 0x00000004, 0x000001a0, 0x0000017c, 0x0000004b, 0x00000000,
2968 0x000001c0, 0x000001bc, 0x0000006b, 0x00000003, 0x000001e0, 0x000001dc, 0x00000000, 0x00000000,
2969 0x00000200, 0x000001fc, 0x0000007d, 0x00000001, 0x0000025c, 0x0000021c, 0x0000007c, 0x00000000,
2970 0x000002b8, 0x00000278, 0x00000091, 0x00000002, 0x000002d8, 0x000002d4, 0x00000084, 0x00000002,
2971 0x000002f8, 0x000002f4, 0x00000088, 0x00000002, 0x00000320, 0x00000314, 0x000000b2, 0x00000001,
2972 0x00000340, 0x0000033c, 0x00000002, 0x00000003, 0x00000001, 0x0000002c, 0xfffe0101, 0x00000051,
2973 0xa00f0000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x00000001, 0xc00f0000, 0xa0e40000,
2974 0x0000ffff, 0x00000002, 0x0000002c, 0xfffe0200, 0x05000051, 0xa00f0000, 0x40000000, 0x40000000,
2975 0x40000000, 0x40000000, 0x02000001, 0xc00f0000, 0xa0e40000, 0x0000ffff, 0x00000000, 0x00000000,
2976 0xffffffff, 0x0000000d, 0x00000001, 0x00000009, 0x706d6173, 0x3172656c, 0x00000000, 0x00000000,
2977 0x00000000, 0xffffffff, 0x00000009, 0x00000000, 0x0000016c, 0x46580200, 0x0030fffe, 0x42415443,
2978 0x0000001c, 0x0000008b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000088, 0x00000030,
2979 0x00000002, 0x00000004, 0x00000038, 0x00000048, 0x656d6163, 0xab006172, 0x00030003, 0x00040004,
2980 0x00000001, 0x00000000, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2981 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2982 0x00000000, 0x40c00000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c,
2983 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe,
2984 0x54494c43, 0x00000000, 0x0024fffe, 0x434c5846, 0x00000004, 0x10000004, 0x00000001, 0x00000000,
2985 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x10000004, 0x00000001, 0x00000000,
2986 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000004, 0x10000004, 0x00000001, 0x00000000,
2987 0x00000002, 0x00000008, 0x00000000, 0x00000004, 0x00000008, 0x10000004, 0x00000001, 0x00000000,
2988 0x00000002, 0x0000000c, 0x00000000, 0x00000004, 0x0000000c, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
2989 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000001, 0x0000000b, 0x615f7376, 0x5b317272,
2992#define TEST_EFFECT_STATES_VSHADER_POS 315
3001 for (
i = 0;
i < 256; ++
i)
3012 -1.0f, 0.0f, 0.0f, 0.0f,
3013 0.0f, 0.0f, 0.0f, 0.0f,
3014 0.0f, 0.0f, 0.0f, 0.0f,
3015 0.0f, 0.0f, 0.0f, 0.0f
3017 static const D3DMATRIX test_mat_camera =
3019 4.0f, 0.0f, 0.0f, 0.0f,
3020 0.0f, 0.0f, 0.0f, 0.0f,
3021 0.0f, 0.0f, 0.0f, 0.0f,
3022 0.0f, 0.0f, 0.0f, 6.0f
3024 static const D3DMATRIX test_mat_world1 =
3026 2.0f, 0.0f, 0.0f, 0.0f,
3027 0.0f, 0.0f, 0.0f, 0.0f,
3028 0.0f, 0.0f, 0.0f, 0.0f,
3029 0.0f, 0.0f, 0.0f, 4.0f
3032 IDirect3DVertexShader9 *vshader;
3033 ID3DXEffect *effect;
3034 UINT byte_code_size;
3046 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3052 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3054 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3056 hr = effect->lpVtbl->Begin(effect, &npasses, 0);
3057 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3058 ok(npasses == 1,
"Expected 1 pass, got %u\n", npasses);
3061 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3063 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3065 hr = effect->lpVtbl->End(effect);
3066 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3069 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3070 ok(
value == 1,
"Got result %u, expected %u.\n",
value, 1);
3072 ok(
value == 2,
"Got result %u, expected %u.\n",
value, 2);
3077 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3079 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3082 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3084 ok(!
bval,
"Got result %u, expected 0.\n",
bval);
3087 hr = effect->lpVtbl->Begin(effect,
NULL, 0);
3088 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3091 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3092 ok(!
memcmp(
mat.m, test_mat.
m,
sizeof(
mat)),
"World matrix does not match.\n");
3096 hr = effect->lpVtbl->BeginPass(effect, 0);
3097 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3100 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3101 ok(!
memcmp(
mat.m, test_mat_world1.
m,
sizeof(
mat)),
"World matrix does not match.\n");
3104 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3105 ok(!
memcmp(
mat.m, test_mat_camera.
m,
sizeof(
mat)),
"View matrix does not match.\n");
3108 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3109 ok(
value == 2,
"Got result %u, expected %u\n",
value, 2);
3112 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3113 ok(vshader !=
NULL,
"Got NULL vshader.\n");
3117 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3120 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3121 ok(byte_code_size > 1,
"Got unexpected byte code size %u.\n", byte_code_size);
3123 "Incorrect shader selected.\n");
3129 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3131 ok(
bval,
"Got result %u, expected TRUE.\n",
bval);
3133 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3135 ok(
light.Position.x == 4.0f &&
light.Position.y == 5.0f &&
light.Position.z == 6.0f,
3136 "Got unexpected light position (%f, %f, %f).\n",
light.Position.x,
light.Position.y,
light.Position.z);
3141 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3142 ok(fvect.
x == 3.0f,
"Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3143 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3145 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3146 ok(fvect.
x == 1.0f,
"Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3147 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3150 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3151 ok(fvect.
x == 2.0f && fvect.
y == 2.0f && fvect.
z == 2.0f && fvect.
w == 2.0f,
3152 "Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3153 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3156 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3157 ok(fvect.
x == 4.0f && fvect.
y == 4.0f && fvect.
z == 4.0f && fvect.
w == 4.0f,
3158 "Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3159 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3161 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3162 ok(fvect.
x == 0.0f && fvect.
y == 0.0f && fvect.
z == 0.0f && fvect.
w == 0.0f,
3163 "Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3164 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3166 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3167 ok(fvect.
x == 0.0f && fvect.
y == 0.0f && fvect.
z == 0.0f && fvect.
w == 0.0f,
3168 "Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3169 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3171 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3173 "Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3174 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3176 hr = effect->lpVtbl->EndPass(effect);
3177 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3179 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3180 ok(
value == 2,
"Got result %u, expected %u\n",
value, 2);
3183 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3187 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3191 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3192 ok(
value == 4,
"Unexpected texture stage 3 AlphaOp %u.\n",
value);
3194 hr = effect->lpVtbl->End(effect);
3195 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3198 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3199 ok(!
memcmp(
mat.m, test_mat.
m,
sizeof(
mat)),
"World matrix not restored.\n");
3202 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3204 ok(!
bval,
"Got result %u, expected 0.\n",
bval);
3208 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3210 hr = effect->lpVtbl->Begin(effect, &npasses, 0);
3211 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3214 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3216 effect->lpVtbl->Release(effect);
3219 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3220 ok(
value == 3,
"Got result %u, expected %u.\n",
value, 1);
3229float4 g_Selector[3] = {{0, 0, 0, 0}, {10, 10, 10, 10}, {5001, 5002, 5003, 5004}};
3231float4 opvect1 = {0.0, -0.0, -2.2, 3.402823466e+38F};
3232float4 opvect2 = {1.0, 2.0, -3.0, 4.0};
3233float4 opvect3 = {0.0, -0.0, -2.2, 3.402823466e+38F};
3235float4 vect_sampler = {1, 2, 3, 4};
3237float3 vec3 = {1001, 1002, 1003};
3239int4 g_iVect = {4, 3, 2, 1};
3263float4x4 m4x4 = {{11, 12, 13, 14}, {21, 22, 23, 24}, {31, 32, 33, 34}, {41, 42, 43, 44}};
3265row_major float4x3 m4x3row = {{11, 12, 13}, {21, 22, 23}, {31, 32, 33}, {41, 42, 43}};
3266row_major float3x4 m3x4row = {{11, 12, 13, 14}, {21, 22, 23, 24}, {31, 32, 33, 34}};
3267column_major float4x3 m4x3column = {{11, 12, 13},{21, 22, 23},{31, 32, 33},{41, 42, 43}};
3268column_major float3x4 m3x4column = {{11, 12, 13, 14}, {21, 22, 23, 24}, {31, 32, 33, 34}};
3269row_major float2x2 m2x2row = {{11, 12}, {21, 22}};
3270column_major float2x2 m2x2column = {{11, 12}, {21, 22}};
3271row_major float2x3 m2x3row = {{11, 12, 13}, {21, 22, 23}};
3272column_major float2x3 m2x3column = {{11, 12, 13}, {21, 22, 23}};
3273row_major float3x2 m3x2row = {{11, 12}, {21, 22}, {31, 32}};
3274column_major float3x2 m3x2column = {{11, 12}, {21, 22}, {31, 32}};
3276row_major bool2x3 mb2x3row = {{
true,
false,
true}, {
false,
true,
true}};
3277column_major bool2x3 mb2x3column = {{
true,
false,
true}, {
false,
true,
true}};
3291test_struct ts1[1] = {{{9, 10, 11}, 12, {13, 14, 15, 16}}};
3292shared test_struct ts2[2] = {{{0, 0, 0}, 0, {0, 0, 0, 0}}, {{1, 2, 3}, 4, {5, 6, 7, 8}}};
3293struct_array ts3 = {{{1, 2, 3}, 4, {5, 6, 7, 8}}, {{9, 10, 11}, 12, {13, 14, 15, 16}}};
3295float arr1[1] = {91};
3296shared
float arr2[2] = {92, 93};
3304 MinFilter = g_iVect.y;
3305 MagFilter = vect_sampler.x + vect_sampler.y;
3313 MagFilter = vect_sampler.x;
3318 MagFilter = vect_sampler.y;
3325 float2 TextureUV : TEXCOORD0;
3326 float4 Diffuse : COLOR0;
3328VS_OUTPUT RenderSceneVS(float4 vPos :
POSITION,
3330 float2 vTexCoord0 : TEXCOORD0,
3331 uniform
int nNumLights,
3332 uniform
bool bTexture)
3336 if (g_Selector[1].
y > float4(0.5, 0.5, 0.5, 0.5).
y)
3337 Output.Position = -g_Pos1 * 2 - float4(-4, -5, -6, -7);
3339 Output.Position = -g_Pos2 * 3 - float4(-4, -5, -6, -7);
3340 Output.TextureUV = float2(0, 0);
3342 Output.Diffuse.xyz =
mul(vPos, m4x3column);
3343 Output.Diffuse +=
mul(vPos, m3x4column);
3345 Output.Diffuse.xyz +=
mul(vPos, m4x3row);
3352 Output.Diffuse +=
mul(vPos, ts3.ts[1].fv);
3353 Output.Diffuse +=
mul(vPos, ts3.ts[1].v2);
3354 Output.Diffuse += tex2Dlod(sampler1, g_Pos1);
3355 Output.Diffuse += tex2Dlod(samplers_array[1], g_Pos1);
3359VS_OUTPUT RenderSceneVS2(float4 vPos :
POSITION)
3363 Output.Position = g_Pos1;
3364 Output.TextureUV = float2(0, 0);
3371 float4 RGBColor : COLOR0;
3373PS_OUTPUT RenderScenePS( VS_OUTPUT
In, uniform bool2x3 mb)
3380 Output.RGBColor.xy +=
mul(
In.Diffuse, m2x2column);
3382 Output.RGBColor.xy +=
mul(
In.Diffuse, m3x2column);
3384 Output.RGBColor.xyz +=
mul(
In.Diffuse, m2x3column);
3385 for (
i = 0;
i < g_iVect.x; ++
i)
3386 Output.RGBColor.xyz +=
mul(
In.Diffuse, m2x3column);
3396 if (mb2x3column[0][0])
3405 Output.RGBColor += tex2D(sampler1,
In.TextureUV);
3406 Output.RGBColor += tex2D(samplers_array[0],
In.TextureUV);
3410shared
vertexshader vs_arr2[2] = {compile vs_3_0 RenderSceneVS(1,
true), compile vs_3_0 RenderSceneVS2()};
3411pixelshader ps_arr[1] = {compile ps_3_0 RenderScenePS(mb2x3row)};
3417 VertexShader = vs_arr2[g_iVect.w - 1];
3418 PixelShader = ps_arr[g_iVect.w - 1];
3420 LightEnable[0] =
TRUE;
3421 LightEnable[1] =
TRUE;
3422 LightEnable[2] =
TRUE;
3423 LightEnable[3] =
TRUE;
3424 LightEnable[4] =
TRUE;
3425 LightEnable[5] =
TRUE;
3426 LightEnable[6] =
TRUE;
3427 LightEnable[7] =
TRUE;
3428 LightType[0] =
POINT;
3429 LightType[1] =
POINT;
3430 LightType[2] =
POINT;
3431 LightType[3] =
POINT;
3432 LightType[4] =
POINT;
3433 LightType[5] =
POINT;
3434 LightType[6] =
POINT;
3435 LightType[7] =
POINT;
3436 LightDiffuse[0] = 1 / opvect1;
3437 LightDiffuse[1] = rsqrt(opvect1);
3438 LightDiffuse[2] = opvect1 * opvect2;
3439 LightDiffuse[3] = opvect1 + opvect2;
3440 LightDiffuse[4] = float4(opvect1 < opvect2);
3441 LightDiffuse[5] = float4(opvect1 >= opvect2);
3442 LightDiffuse[6] = -opvect1;
3443 LightDiffuse[7] = rcp(opvect1);
3445 LightAmbient[0] =
frac(opvect1);
3446 LightAmbient[1] =
min(opvect1, opvect2);
3447 LightAmbient[2] =
max(opvect1, opvect2);
3448 LightAmbient[3] =
sin(opvect1);
3449 LightAmbient[4] =
cos(opvect1);
3450 LightAmbient[5] = 1
e-2 / opvect1;
3451 LightAmbient[6] = float4(0,
dot(opvect1, opvect2),
dot(opvect2, opvect2), 0);
3452 LightAmbient[7] = opvect1 + 1
e-12 * opvect2 - opvect3;
3454 LightSpecular[0] = float4(
dot(opvect1.zx, opvect2.xy),
dot(opvect1.zzx, opvect2.xyz),
3455 dot(opvect1.zzzx, opvect2.xxyy), 0);
3456 LightSpecular[1] = float4(opvect1[g_iVect.z], g_iVect[opvect2.y + 1],
3457 g_Selector[4 + g_iVect.w].x + g_Selector[7 + g_iVect.w].y,
3458 g_Selector[g_iVect.w].x + g_Selector[g_iVect.x].y);
3459 LightSpecular[2] = float4(
dot(m4x4[3 + g_iVect.z], m4x4[g_iVect.w * 2]), ts3.ts[g_iVect.x].fv,
3460 vec3[g_iVect.z], float3(1, 2, 3)[g_iVect.w]);
3463 FogDensity = ts2[0].fv;
3464 FogStart = ts2[1].fv;
3465 PointScale_A = ts3.ts[0].fv;
3466 PointScale_B = ts3.ts[1].fv;
3470 VertexShader = vs_arr[g_iVect.z];
3476 0xfeff0901, 0x00001160, 0x00000000, 0x00000003, 0x00000001, 0x00000030, 0x00000000, 0x00000000,
3477 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x6f505f67,
3478 0x00003173, 0x00000003, 0x00000001, 0x00000068, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
3479 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x6f505f67, 0x00003273, 0x00000003,
3480 0x00000001, 0x000000c0, 0x00000000, 0x00000003, 0x00000004, 0x00000001, 0x00000000, 0x00000000,
3481 0x00000000, 0x00000000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x459c4800, 0x459c5000,
3482 0x459c5800, 0x459c6000, 0x0000000b, 0x65535f67, 0x7463656c, 0x0000726f, 0x00000003, 0x00000001,
3483 0x000000fc, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x80000000, 0xc00ccccd,
3484 0x7f7fffff, 0x00000008, 0x6576706f, 0x00317463, 0x00000003, 0x00000001, 0x00000134, 0x00000000,
3485 0x00000000, 0x00000004, 0x00000001, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x00000008,
3486 0x6576706f, 0x00327463, 0x00000003, 0x00000001, 0x0000016c, 0x00000000, 0x00000000, 0x00000004,
3487 0x00000001, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x00000008, 0x6576706f, 0x00337463,
3488 0x00000003, 0x00000001, 0x000001a4, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x3f800000,
3489 0x40000000, 0x40400000, 0x40800000, 0x0000000d, 0x74636576, 0x6d61735f, 0x72656c70, 0x00000000,
3490 0x00000003, 0x00000001, 0x000001e0, 0x00000000, 0x00000000, 0x00000003, 0x00000001, 0x447a4000,
3491 0x447a8000, 0x447ac000, 0x00000005, 0x33636576, 0x00000000, 0x00000002, 0x00000001, 0x00000218,
3492 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000004, 0x00000003, 0x00000002, 0x00000001,
3493 0x00000008, 0x56695f67, 0x00746365, 0x00000010, 0x00000004, 0x00000244, 0x00000000, 0x00000003,
3494 0x00000001, 0x00000002, 0x00000003, 0x00000007, 0x615f7376, 0x00007272, 0x00000003, 0x00000002,
3495 0x000002ac, 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x41300000, 0x41400000, 0x41500000,
3496 0x41600000, 0x41a80000, 0x41b00000, 0x41b80000, 0x41c00000, 0x41f80000, 0x42000000, 0x42040000,
3497 0x42080000, 0x42240000, 0x42280000, 0x422c0000, 0x42300000, 0x00000005, 0x3478346d, 0x00000000,
3498 0x00000003, 0x00000002, 0x00000304, 0x00000000, 0x00000000, 0x00000004, 0x00000003, 0x41300000,
3499 0x41400000, 0x41500000, 0x41a80000, 0x41b00000, 0x41b80000, 0x41f80000, 0x42000000, 0x42040000,
3500 0x42240000, 0x42280000, 0x422c0000, 0x00000008, 0x3378346d, 0x00776f72, 0x00000003, 0x00000002,
3501 0x0000035c, 0x00000000, 0x00000000, 0x00000003, 0x00000004, 0x41300000, 0x41400000, 0x41500000,
3502 0x41600000, 0x41a80000, 0x41b00000, 0x41b80000, 0x41c00000, 0x41f80000, 0x42000000, 0x42040000,
3503 0x42080000, 0x00000008, 0x3478336d, 0x00776f72, 0x00000003, 0x00000002, 0x000003b4, 0x00000000,
3504 0x00000000, 0x00000004, 0x00000003, 0x41300000, 0x41400000, 0x41500000, 0x41a80000, 0x41b00000,
3505 0x41b80000, 0x41f80000, 0x42000000, 0x42040000, 0x42240000, 0x42280000, 0x422c0000, 0x0000000b,
3506 0x3378346d, 0x756c6f63, 0x00006e6d, 0x00000003, 0x00000002, 0x00000410, 0x00000000, 0x00000000,
3507 0x00000003, 0x00000004, 0x41300000, 0x41400000, 0x41500000, 0x41600000, 0x41a80000, 0x41b00000,
3508 0x41b80000, 0x41c00000, 0x41f80000, 0x42000000, 0x42040000, 0x42080000, 0x0000000b, 0x3478336d,
3509 0x756c6f63, 0x00006e6d, 0x00000003, 0x00000002, 0x0000044c, 0x00000000, 0x00000000, 0x00000002,
3510 0x00000002, 0x41300000, 0x41400000, 0x41a80000, 0x41b00000, 0x00000008, 0x3278326d, 0x00776f72,
3511 0x00000003, 0x00000002, 0x00000484, 0x00000000, 0x00000000, 0x00000002, 0x00000002, 0x41300000,
3512 0x41400000, 0x41a80000, 0x41b00000, 0x0000000b, 0x3278326d, 0x756c6f63, 0x00006e6d, 0x00000003,
3513 0x00000002, 0x000004c8, 0x00000000, 0x00000000, 0x00000002, 0x00000003, 0x41300000, 0x41400000,
3514 0x41500000, 0x41a80000, 0x41b00000, 0x41b80000, 0x00000008, 0x3378326d, 0x00776f72, 0x00000003,
3515 0x00000002, 0x00000508, 0x00000000, 0x00000000, 0x00000002, 0x00000003, 0x41300000, 0x41400000,
3516 0x41500000, 0x41a80000, 0x41b00000, 0x41b80000, 0x0000000b, 0x3378326d, 0x756c6f63, 0x00006e6d,
3517 0x00000003, 0x00000002, 0x0000054c, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x41300000,
3518 0x41400000, 0x41a80000, 0x41b00000, 0x41f80000, 0x42000000, 0x00000008, 0x3278336d, 0x00776f72,
3519 0x00000003, 0x00000002, 0x0000058c, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x41300000,
3520 0x41400000, 0x41a80000, 0x41b00000, 0x41f80000, 0x42000000, 0x0000000b, 0x3278336d, 0x756c6f63,
3521 0x00006e6d, 0x00000001, 0x00000002, 0x000005d0, 0x00000000, 0x00000000, 0x00000002, 0x00000003,
3522 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000001, 0x00000009, 0x7832626d,
3523 0x776f7233, 0x00000000, 0x00000001, 0x00000002, 0x00000614, 0x00000000, 0x00000000, 0x00000002,
3524 0x00000003, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000001, 0x0000000c,
3525 0x7832626d, 0x6c6f6333, 0x006e6d75, 0x00000000, 0x00000005, 0x000006b0, 0x00000000, 0x00000001,
3526 0x00000003, 0x00000003, 0x00000001, 0x000006b8, 0x00000000, 0x00000000, 0x00000003, 0x00000001,
3527 0x00000003, 0x00000000, 0x000006c0, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000003,
3528 0x00000001, 0x000006c8, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x41100000, 0x41200000,
3529 0x41300000, 0x41400000, 0x41500000, 0x41600000, 0x41700000, 0x41800000, 0x00000004, 0x00317374,
3530 0x00000003, 0x00003176, 0x00000003, 0x00007666, 0x00000003, 0x00003276, 0x00000000, 0x00000005,
3531 0x0000077c, 0x00000000, 0x00000002, 0x00000003, 0x00000003, 0x00000001, 0x00000784, 0x00000000,
3532 0x00000000, 0x00000003, 0x00000001, 0x00000003, 0x00000000, 0x0000078c, 0x00000000, 0x00000000,
3533 0x00000001, 0x00000001, 0x00000003, 0x00000001, 0x00000794, 0x00000000, 0x00000000, 0x00000004,
3534 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3535 0x00000000, 0x3f800000, 0x40000000, 0x40400000, 0x40800000, 0x40a00000, 0x40c00000, 0x40e00000,
3536 0x41000000, 0x00000004, 0x00327374, 0x00000003, 0x00003176, 0x00000003, 0x00007666, 0x00000003,
3537 0x00003276, 0x00000000, 0x00000005, 0x00000860, 0x00000000, 0x00000000, 0x00000001, 0x00000000,
3538 0x00000005, 0x00000868, 0x00000000, 0x00000002, 0x00000003, 0x00000003, 0x00000001, 0x00000870,
3539 0x00000000, 0x00000000, 0x00000003, 0x00000001, 0x00000003, 0x00000000, 0x00000878, 0x00000000,
3540 0x00000000, 0x00000001, 0x00000001, 0x00000003, 0x00000001, 0x00000880, 0x00000000, 0x00000000,
3541 0x00000004, 0x00000001, 0x3f800000, 0x40000000, 0x40400000, 0x40800000, 0x40a00000, 0x40c00000,
3542 0x40e00000, 0x41000000, 0x41100000, 0x41200000, 0x41300000, 0x41400000, 0x41500000, 0x41600000,
3543 0x41700000, 0x41800000, 0x00000004, 0x00337374, 0x00000003, 0x00007374, 0x00000003, 0x00003176,
3544 0x00000003, 0x00007666, 0x00000003, 0x00003276, 0x00000003, 0x00000000, 0x000008a8, 0x00000000,
3545 0x00000001, 0x00000001, 0x00000001, 0x42b60000, 0x00000005, 0x31727261, 0x00000000, 0x00000003,
3546 0x00000000, 0x000008d8, 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x42b80000, 0x42ba0000,
3547 0x00000005, 0x32727261, 0x00000000, 0x00000007, 0x00000004, 0x000008fc, 0x00000000, 0x00000000,
3548 0x00000004, 0x00000005, 0x31786574, 0x00000000, 0x00000007, 0x00000004, 0x00000920, 0x00000000,
3549 0x00000000, 0x00000005, 0x00000005, 0x32786574, 0x00000000, 0x0000000a, 0x00000004, 0x000009cc,
3550 0x00000000, 0x00000000, 0x00000006, 0x00000007, 0x00000004, 0x00000000, 0x00000000, 0x00000000,
3551 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
3552 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
3553 0x00000003, 0x000000a4, 0x00000100, 0x00000944, 0x00000940, 0x000000aa, 0x00000100, 0x0000095c,
3554 0x00000958, 0x000000a9, 0x00000100, 0x0000097c, 0x00000978, 0x00000009, 0x706d6173, 0x3172656c,
3555 0x00000000, 0x0000000a, 0x00000004, 0x00000ab8, 0x00000000, 0x00000002, 0x00000001, 0x00000002,
3556 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003,
3557 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
3558 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003,
3559 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000002, 0x000000aa,
3560 0x00000100, 0x000009f4, 0x000009f0, 0x000000a9, 0x00000100, 0x00000a14, 0x00000a10, 0x00000002,
3561 0x000000aa, 0x00000100, 0x00000a34, 0x00000a30, 0x000000a9, 0x00000100, 0x00000a54, 0x00000a50,
3562 0x0000000f, 0x706d6173, 0x7372656c, 0x7272615f, 0x00007961, 0x00000010, 0x00000004, 0x00000ae8,
3563 0x00000000, 0x00000002, 0x00000007, 0x00000008, 0x00000008, 0x615f7376, 0x00327272, 0x0000000f,
3564 0x00000004, 0x00000b0c, 0x00000000, 0x00000001, 0x00000009, 0x00000007, 0x615f7370, 0x00007272,
3565 0x0000000a, 0x00000010, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x0000000b, 0x0000000f,
3566 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3567 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3568 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3569 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3570 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3571 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3572 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3573 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3574 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3575 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3576 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3577 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3578 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3579 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3580 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3581 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000,
3582 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3583 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000,
3584 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000,
3585 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002,
3586 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
3587 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
3588 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000,
3589 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
3590 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000,
3591 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004,
3592 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000,
3593 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3594 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000,
3595 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000,
3596 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002,
3597 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
3598 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
3599 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000,
3600 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
3601 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000,
3602 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004,
3603 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000,
3604 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3605 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000,
3606 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000,
3607 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002,
3608 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
3609 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003, 0x00000002,
3610 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003, 0x00000002,
3611 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003, 0x00000002,
3612 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003, 0x00000002,
3613 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000003, 0x00003070, 0x0000000c,
3614 0x00000010, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00003170, 0x00000006,
3615 0x68636574, 0x00000030, 0x00000022, 0x00000001, 0x0000000e, 0x0000000d, 0x00000004, 0x00000020,
3616 0x00000000, 0x00000000, 0x0000003c, 0x00000058, 0x00000000, 0x00000000, 0x00000074, 0x00000090,
3617 0x00000000, 0x00000000, 0x000000d0, 0x000000ec, 0x00000000, 0x00000000, 0x00000108, 0x00000124,
3618 0x00000000, 0x00000000, 0x00000140, 0x0000015c, 0x00000000, 0x00000000, 0x00000178, 0x00000194,
3619 0x00000000, 0x00000000, 0x000001b8, 0x000001d4, 0x00000000, 0x00000000, 0x000001ec, 0x00000208,
3620 0x00000000, 0x00000000, 0x00000224, 0x00000238, 0x00000000, 0x00000000, 0x00000250, 0x0000026c,
3621 0x00000000, 0x00000000, 0x000002b8, 0x000002d4, 0x00000000, 0x00000000, 0x00000310, 0x0000032c,
3622 0x00000000, 0x00000000, 0x00000368, 0x00000384, 0x00000000, 0x00000000, 0x000003c4, 0x000003e0,
3623 0x00000000, 0x00000000, 0x00000420, 0x0000043c, 0x00000000, 0x00000000, 0x00000458, 0x00000474,
3624 0x00000000, 0x00000000, 0x00000494, 0x000004b0, 0x00000000, 0x00000000, 0x000004d4, 0x000004f0,
3625 0x00000000, 0x00000000, 0x00000518, 0x00000534, 0x00000000, 0x00000000, 0x00000558, 0x00000574,
3626 0x00000000, 0x00000000, 0x0000059c, 0x000005b8, 0x00000000, 0x00000000, 0x000005e0, 0x000005fc,
3627 0x00000000, 0x00000000, 0x00000624, 0x00000690, 0x00000000, 0x00000000, 0x000006d0, 0x0000073c,
3628 0x00000001, 0x00000000, 0x0000079c, 0x00000820, 0x00000000, 0x00000000, 0x00000888, 0x000008a4,
3629 0x00000000, 0x00000000, 0x000008b4, 0x000008d0, 0x00000001, 0x00000000, 0x000008e4, 0x000008f8,
3630 0x00000000, 0x00000000, 0x00000908, 0x0000091c, 0x00000000, 0x00000000, 0x0000092c, 0x00000998,
3631 0x00000000, 0x00000000, 0x000009dc, 0x00000a70, 0x00000000, 0x00000000, 0x00000acc, 0x00000ae0,
3632 0x00000001, 0x00000000, 0x00000af4, 0x00000b08, 0x00000000, 0x00000000, 0x00001154, 0x00000000,
3633 0x00000002, 0x0000112c, 0x00000000, 0x0000002a, 0x00000092, 0x00000000, 0x00000b1c, 0x00000b18,
3634 0x00000093, 0x00000000, 0x00000b34, 0x00000b30, 0x00000091, 0x00000000, 0x00000b4c, 0x00000b48,
3635 0x00000091, 0x00000001, 0x00000b6c, 0x00000b68, 0x00000091, 0x00000002, 0x00000b8c, 0x00000b88,
3636 0x00000091, 0x00000003, 0x00000bac, 0x00000ba8, 0x00000091, 0x00000004, 0x00000bcc, 0x00000bc8,
3637 0x00000091, 0x00000005, 0x00000bec, 0x00000be8, 0x00000091, 0x00000006, 0x00000c0c, 0x00000c08,
3638 0x00000091, 0x00000007, 0x00000c2c, 0x00000c28, 0x00000084, 0x00000000, 0x00000c4c, 0x00000c48,
3639 0x00000084, 0x00000001, 0x00000c6c, 0x00000c68, 0x00000084, 0x00000002, 0x00000c8c, 0x00000c88,
3640 0x00000084, 0x00000003, 0x00000cac, 0x00000ca8, 0x00000084, 0x00000004, 0x00000ccc, 0x00000cc8,
3641 0x00000084, 0x00000005, 0x00000cec, 0x00000ce8, 0x00000084, 0x00000006, 0x00000d0c, 0x00000d08,
3642 0x00000084, 0x00000007, 0x00000d2c, 0x00000d28, 0x00000085, 0x00000000, 0x00000d58, 0x00000d48,
3643 0x00000085, 0x00000001, 0x00000d84, 0x00000d74, 0x00000085, 0x00000002, 0x00000db0, 0x00000da0,
3644 0x00000085, 0x00000003, 0x00000ddc, 0x00000dcc, 0x00000085, 0x00000004, 0x00000e08, 0x00000df8,
3645 0x00000085, 0x00000005, 0x00000e34, 0x00000e24, 0x00000085, 0x00000006, 0x00000e60, 0x00000e50,
3646 0x00000085, 0x00000007, 0x00000e8c, 0x00000e7c, 0x00000087, 0x00000000, 0x00000eb8, 0x00000ea8,
3647 0x00000087, 0x00000001, 0x00000ee4, 0x00000ed4, 0x00000087, 0x00000002, 0x00000f10, 0x00000f00,
3648 0x00000087, 0x00000003, 0x00000f3c, 0x00000f2c, 0x00000087, 0x00000004, 0x00000f68, 0x00000f58,
3649 0x00000087, 0x00000005, 0x00000f94, 0x00000f84, 0x00000087, 0x00000006, 0x00000fc0, 0x00000fb0,
3650 0x00000087, 0x00000007, 0x00000fec, 0x00000fdc, 0x00000086, 0x00000000, 0x00001018, 0x00001008,
3651 0x00000086, 0x00000001, 0x00001044, 0x00001034, 0x00000086, 0x00000002, 0x00001070, 0x00001060,
3652 0x0000000e, 0x00000000, 0x00001090, 0x0000108c, 0x00000014, 0x00000000, 0x000010b0, 0x000010ac,
3653 0x00000012, 0x00000000, 0x000010d0, 0x000010cc, 0x00000041, 0x00000000, 0x000010f0, 0x000010ec,
3654 0x00000042, 0x00000000, 0x00001110, 0x0000110c, 0x0000114c, 0x00000000, 0x00000001, 0x00000092,
3655 0x00000000, 0x00001138, 0x00001134, 0x00000008, 0x0000001f, 0x00000009, 0x00000ad0, 0xffff0300,
3656 0x00d9fffe, 0x42415443, 0x0000001c, 0x0000032f, 0xffff0300, 0x0000000b, 0x0000001c, 0x00000000,
3657 0x00000328, 0x000000f8, 0x00000001, 0x00000001, 0x00000100, 0x00000110, 0x00000120, 0x00080002,
3658 0x00000002, 0x0000012c, 0x0000013c, 0x0000015c, 0x00060002, 0x00000002, 0x00000164, 0x00000174,
3659 0x00000194, 0x00000002, 0x00000003, 0x000001a0, 0x000001b0, 0x000001e0, 0x000a0002, 0x00000002,
3660 0x000001e8, 0x000001f8, 0x00000218, 0x000c0002, 0x00000002, 0x00000224, 0x00000234, 0x00000254,
3661 0x00030002, 0x00000003, 0x0000025c, 0x0000026c, 0x0000029c, 0x00050000, 0x00000001, 0x000002a8,
3662 0x000002b8, 0x000002d0, 0x00000000, 0x00000005, 0x000002dc, 0x000002b8, 0x000002ec, 0x00000003,
3663 0x00000001, 0x000002f8, 0x00000000, 0x00000308, 0x00010003, 0x00000001, 0x00000318, 0x00000000,
3664 0x56695f67, 0x00746365, 0x00020001, 0x00040001, 0x00000001, 0x00000000, 0x00000004, 0x00000003,
3665 0x00000002, 0x00000001, 0x3278326d, 0x756c6f63, 0xab006e6d, 0x00030003, 0x00020002, 0x00000001,
3666 0x00000000, 0x41300000, 0x41a80000, 0x00000000, 0x00000000, 0x41400000, 0x41b00000, 0x00000000,
3667 0x00000000, 0x3278326d, 0x00776f72, 0x00030002, 0x00020002, 0x00000001, 0x00000000, 0x41300000,
3668 0x41400000, 0x00000000, 0x00000000, 0x41a80000, 0x41b00000, 0x00000000, 0x00000000, 0x3378326d,
3669 0x756c6f63, 0xab006e6d, 0x00030003, 0x00030002, 0x00000001, 0x00000000, 0x41300000, 0x41a80000,
3670 0x00000000, 0x00000000, 0x41400000, 0x41b00000, 0x00000000, 0x00000000, 0x41500000, 0x41b80000,
3671 0x00000000, 0x00000000, 0x3378326d, 0x00776f72, 0x00030002, 0x00030002, 0x00000001, 0x00000000,
3672 0x41300000, 0x41400000, 0x41500000, 0x00000000, 0x41a80000, 0x41b00000, 0x41b80000, 0x00000000,
3673 0x3278336d, 0x756c6f63, 0xab006e6d, 0x00030003, 0x00020003, 0x00000001, 0x00000000, 0x41300000,
3674 0x41a80000, 0x41f80000, 0x00000000, 0x41400000, 0x41b00000, 0x42000000, 0x00000000, 0x3278336d,
3675 0x00776f72, 0x00030002, 0x00020003, 0x00000001, 0x00000000, 0x41300000, 0x41400000, 0x00000000,
3676 0x00000000, 0x41a80000, 0x41b00000, 0x00000000, 0x00000000, 0x41f80000, 0x42000000, 0x00000000,
3677 0x00000000, 0x7832626d, 0x6c6f6333, 0x006e6d75, 0x00010003, 0x00030002, 0x00000001, 0x00000000,
3678 0xffffffff, 0x00000000, 0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0x7832626d, 0x776f7233,
3679 0xababab00, 0x00010002, 0x00030002, 0x00000001, 0x00000000, 0x706d6173, 0x3172656c, 0xababab00,
3680 0x000c0004, 0x00010001, 0x00000001, 0x00000000, 0x706d6173, 0x7372656c, 0x7272615f, 0xab007961,
3681 0x000c0004, 0x00010001, 0x00000002, 0x00000000, 0x335f7370, 0x4d00305f, 0x6f726369, 0x74666f73,
3682 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932,
3683 0x332e3235, 0x00313131, 0x05000051, 0xa00f000e, 0x3d2aaaa4, 0xbf000000, 0x3f800000, 0xbe22f983,
3684 0x05000051, 0xa00f000f, 0x40c90fdb, 0xc0490fdb, 0xb4878163, 0x37cfb5a1, 0x05000051, 0xa00f0010,
3685 0x00000000, 0x3e22f983, 0x3e800000, 0xbab609ba, 0x0200001f, 0x80000005, 0x90030000, 0x0200001f,
3686 0x8000000a, 0x900f0001, 0x0200001f, 0x90000000, 0xa00f0800, 0x0200001f, 0x90000000, 0xa00f0801,
3687 0x03000005, 0x80030000, 0xa0e40007, 0x90550001, 0x04000004, 0x80030000, 0x90000001, 0xa0e40006,
3688 0x80e40000, 0x03000002, 0x80030000, 0x80e40000, 0x90e40001, 0x02000001, 0x80010001, 0xa0000010,
3689 0x0400005a, 0x80010002, 0x90e40001, 0xa0e40008, 0x80000001, 0x0400005a, 0x80020002, 0x90e40001,
3690 0xa0e40009, 0x80000001, 0x03000002, 0x80030000, 0x80e40000, 0x80e40002, 0x03000005, 0x800c0000,
3691 0xa0440004, 0x90550001, 0x04000004, 0x800c0000, 0x90000001, 0xa0440003, 0x80e40000, 0x04000004,
3692 0x800c0000, 0x90aa0001, 0xa0440005, 0x80e40000, 0x03000002, 0x80030000, 0x80ee0000, 0x80e40000,
3693 0x03000008, 0x80010002, 0x90e40001, 0xa0e4000c, 0x03000008, 0x80020002, 0x90e40001, 0xa0e4000d,
3694 0x03000002, 0x80030000, 0x80e40000, 0x80e40002, 0x03000005, 0x800e0001, 0xa090000b, 0x90550001,
3695 0x04000004, 0x800e0001, 0x90000001, 0xa090000a, 0x80e40001, 0x02000001, 0x80040000, 0x90aa0001,
3696 0x03000002, 0x80070000, 0x80e40000, 0x80f90001, 0x0400005a, 0x80010002, 0x90e40001, 0xa0e40000,
3697 0x80000001, 0x0400005a, 0x80020002, 0x90e40001, 0xa0e40001, 0x80000001, 0x0400005a, 0x80040002,
3698 0x90e40001, 0xa0e40002, 0x80000001, 0x03000002, 0x80070000, 0x80e40000, 0x80e40002, 0x02000001,
3699 0x80070003, 0x80e40000, 0x01000026, 0xf0e40000, 0x03000002, 0x80070003, 0x80e40002, 0x80e40003,
3700 0x00000027, 0x01000028, 0xe0e40804, 0x02000001, 0x80080003, 0x90ff0001, 0x04000004, 0x800f0000,
3701 0x80e40003, 0xa0550010, 0xa0aa0010, 0x02000013, 0x800f0000, 0x80e40000, 0x04000004, 0x800f0000,
3702 0x80e40000, 0xa000000f, 0xa055000f, 0x03000005, 0x800f0000, 0x80e40000, 0x80e40000, 0x04000004,
3703 0x800f0002, 0x80e40000, 0xa0aa000f, 0xa0ff000f, 0x04000004, 0x800f0002, 0x80e40000, 0x80e40002,
3704 0xa0ff0010, 0x04000004, 0x800f0002, 0x80e40000, 0x80e40002, 0xa000000e, 0x04000004, 0x800f0002,
3705 0x80e40000, 0x80e40002, 0xa055000e, 0x04000004, 0x800f0000, 0x80e40000, 0x80e40002, 0x80e40003,
3706 0x03000002, 0x800f0000, 0x80e40000, 0xa0aa000e, 0x04000004, 0x800f0002, 0x80e40000, 0xa1ff000e,
3707 0xa155000e, 0x02000013, 0x800f0002, 0x80e40002, 0x04000004, 0x800f0002, 0x80e40002, 0xa000000f,
3708 0xa055000f, 0x03000005, 0x800f0002, 0x80e40002, 0x80e40002, 0x04000004, 0x800f0004, 0x80e40002,
3709 0xa0aa000f, 0xa0ff000f, 0x04000004, 0x800f0004, 0x80e40002, 0x80e40004, 0xa0ff0010, 0x04000004,
3710 0x800f0004, 0x80e40002, 0x80e40004, 0xa000000e, 0x04000004, 0x800f0004, 0x80e40002, 0x80e40004,
3711 0xa055000e, 0x04000004, 0x800f0000, 0x80e40002, 0x80e40004, 0x80e40000, 0x03000002, 0x800f0003,
3712 0x80e40000, 0xa0aa000e, 0x0400005a, 0x80010000, 0x80e40003, 0xa0e40000, 0x80000001, 0x0400005a,
3713 0x80020000, 0x80e40003, 0xa0e40001, 0x80000001, 0x0400005a, 0x80040000, 0x80e40003, 0xa0e40002,
3714 0x80000001, 0x03000002, 0x80070000, 0x80e40000, 0x80e40003, 0x03000005, 0x800e0001, 0x80550000,
3715 0xa090000b, 0x04000004, 0x800e0001, 0x80000000, 0xa090000a, 0x80e40001, 0x03000002, 0x80070003,
3716 0x80e40000, 0x80f90001, 0x03000008, 0x80010000, 0x80e40003, 0xa0e4000c, 0x03000008, 0x80020000,
3717 0x80e40003, 0xa0e4000d, 0x03000002, 0x80030000, 0x80e40000, 0x80e40003, 0x03000005, 0x800c0000,
3718 0x80550000, 0xa0440004, 0x04000004, 0x800c0000, 0x80000000, 0xa0440003, 0x80e40000, 0x04000004,
3719 0x800c0000, 0x80aa0003, 0xa0440005, 0x80e40000, 0x03000002, 0x80030003, 0x80ee0000, 0x80e40000,
3720 0x0000002a, 0x02000001, 0x80080003, 0x90ff0001, 0x0000002b, 0x01000028, 0xe0e40805, 0x04000004,
3721 0x800f0000, 0x80e40003, 0xa0550010, 0xa0aa0010, 0x02000013, 0x800f0000, 0x80e40000, 0x04000004,
3722 0x800f0000, 0x80e40000, 0xa000000f, 0xa055000f, 0x03000005, 0x800f0000, 0x80e40000, 0x80e40000,
3723 0x04000004, 0x800f0002, 0x80e40000, 0xa0aa000f, 0xa0ff000f, 0x04000004, 0x800f0002, 0x80e40000,
3724 0x80e40002, 0xa0ff0010, 0x04000004, 0x800f0002, 0x80e40000, 0x80e40002, 0xa000000e, 0x04000004,
3725 0x800f0002, 0x80e40000, 0x80e40002, 0xa055000e, 0x04000004, 0x800f0000, 0x80e40000, 0x80e40002,
3726 0x80e40003, 0x03000002, 0x800f0000, 0x80e40000, 0xa0aa000e, 0x04000004, 0x800f0002, 0x80e40000,
3727 0xa1ff000e, 0xa155000e, 0x02000013, 0x800f0002, 0x80e40002, 0x04000004, 0x800f0002, 0x80e40002,
3728 0xa000000f, 0xa055000f, 0x03000005, 0x800f0002, 0x80e40002, 0x80e40002, 0x04000004, 0x800f0004,
3729 0x80e40002, 0xa0aa000f, 0xa0ff000f, 0x04000004, 0x800f0004, 0x80e40002, 0x80e40004, 0xa0ff0010,
3730 0x04000004, 0x800f0004, 0x80e40002, 0x80e40004, 0xa000000e, 0x04000004, 0x800f0004, 0x80e40002,
3731 0x80e40004, 0xa055000e, 0x04000004, 0x800f0000, 0x80e40002, 0x80e40004, 0x80e40000, 0x03000002,
3732 0x800f0003, 0x80e40000, 0xa0aa000e, 0x0400005a, 0x80010000, 0x80e40003, 0xa0e40000, 0x80000001,
3733 0x0400005a, 0x80020000, 0x80e40003, 0xa0e40001, 0x80000001, 0x0400005a, 0x80040000, 0x80e40003,
3734 0xa0e40002, 0x80000001, 0x03000002, 0x80070000, 0x80e40000, 0x80e40003, 0x03000005, 0x80070001,
3735 0x80550000, 0xa0e4000b, 0x04000004, 0x80070001, 0x80000000, 0xa0e4000a, 0x80e40001, 0x03000002,
3736 0x80070003, 0x80e40000, 0x80e40001, 0x03000008, 0x80010000, 0x80e40003, 0xa0e4000c, 0x03000008,
3737 0x80020000, 0x80e40003, 0xa0e4000d, 0x03000002, 0x80030000, 0x80e40000, 0x80e40003, 0x03000005,
3738 0x800c0000, 0x80550000, 0xa0440004, 0x04000004, 0x800c0000, 0x80000000, 0xa0440003, 0x80e40000,
3739 0x04000004, 0x800c0000, 0x80aa0003, 0xa0440005, 0x80e40000, 0x03000002, 0x80030003, 0x80ee0000,
3740 0x80e40000, 0x0000002b, 0x03000042, 0x800f0000, 0x90e40000, 0xa0e40800, 0x03000002, 0x800f0000,
3741 0x80e40000, 0x80e40003, 0x03000042, 0x800f0001, 0x90e40000, 0xa0e40801, 0x03000002, 0x800f0800,
3742 0x80e40000, 0x80e40001, 0x0000ffff, 0x00000007, 0x00000b6c, 0xfffe0300, 0x013cfffe, 0x42415443,
3743 0x0000001c, 0x000004bb, 0xfffe0300, 0x0000000c, 0x0000001c, 0x00000000, 0x000004b4, 0x0000010c,
3744 0x00200002, 0x00000001, 0x00000114, 0x00000124, 0x00000134, 0x001d0002, 0x00000002, 0x0000013c,
3745 0x0000014c, 0x0000016c, 0x001f0002, 0x00000001, 0x00000174, 0x00000184, 0x00000194, 0x00100002,
3746 0x00000004, 0x000001a0, 0x000001b0, 0x000001f0, 0x00140002, 0x00000003, 0x000001f8, 0x00000208,
3747 0x00000238, 0x00170002, 0x00000003, 0x00000244, 0x00000254, 0x00000284, 0x000c0002, 0x00000004,
3748 0x0000028c, 0x0000029c, 0x000002dc, 0x00020003, 0x00000001, 0x000002e8, 0x00000000, 0x000002f8,
3749 0x00000003, 0x00000002, 0x00000308, 0x00000000, 0x00000318, 0x001a0002, 0x00000003, 0x00000370,
3750 0x00000380, 0x000003b0, 0x00000002, 0x00000006, 0x000003b4, 0x000003c4, 0x00000424, 0x00060002,
3751 0x00000006, 0x00000444, 0x00000454, 0x31727261, 0xababab00, 0x00030000, 0x00010001, 0x00000001,
3752 0x00000000, 0x42b60000, 0x00000000, 0x00000000, 0x00000000, 0x32727261, 0xababab00, 0x00030000,
3753 0x00010001, 0x00000002, 0x00000000, 0x42b80000, 0x00000000, 0x00000000, 0x00000000, 0x42ba0000,
3754 0x00000000, 0x00000000, 0x00000000, 0x6f505f67, 0xab003173, 0x00030001, 0x00040001, 0x00000001,
3755 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3478336d, 0x756c6f63, 0xab006e6d,
3756 0x00030003, 0x00040003, 0x00000001, 0x00000000, 0x41300000, 0x41a80000, 0x41f80000, 0x00000000,
3757 0x41400000, 0x41b00000, 0x42000000, 0x00000000, 0x41500000, 0x41b80000, 0x42040000, 0x00000000,
3758 0x41600000, 0x41c00000, 0x42080000, 0x00000000, 0x3478336d, 0x00776f72, 0x00030002, 0x00040003,
3759 0x00000001, 0x00000000, 0x41300000, 0x41400000, 0x41500000, 0x41600000, 0x41a80000, 0x41b00000,
3760 0x41b80000, 0x41c00000, 0x41f80000, 0x42000000, 0x42040000, 0x42080000, 0x3378346d, 0x756c6f63,
3761 0xab006e6d, 0x00030003, 0x00030004, 0x00000001, 0x00000000, 0x41300000, 0x41a80000, 0x41f80000,
3762 0x42240000, 0x41400000, 0x41b00000, 0x42000000, 0x42280000, 0x41500000, 0x41b80000, 0x42040000,
3763 0x422c0000, 0x3378346d, 0x00776f72, 0x00030002, 0x00030004, 0x00000001, 0x00000000, 0x41300000,
3764 0x41400000, 0x41500000, 0x00000000, 0x41a80000, 0x41b00000, 0x41b80000, 0x00000000, 0x41f80000,
3765 0x42000000, 0x42040000, 0x00000000, 0x42240000, 0x42280000, 0x422c0000, 0x00000000, 0x706d6173,
3766 0x3172656c, 0xababab00, 0x000c0004, 0x00010001, 0x00000001, 0x00000000, 0x706d6173, 0x7372656c,
3767 0x7272615f, 0xab007961, 0x000c0004, 0x00010001, 0x00000002, 0x00000000, 0x00317374, 0xab003176,
3768 0x00030001, 0x00030001, 0x00000001, 0x00000000, 0xab007666, 0x00030000, 0x00010001, 0x00000001,
3769 0x00000000, 0xab003276, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x0000031c, 0x00000320,
3770 0x00000330, 0x00000334, 0x00000344, 0x00000348, 0x00000005, 0x00080001, 0x00030001, 0x00000358,
3771 0x41100000, 0x41200000, 0x41300000, 0x00000000, 0x41400000, 0x00000000, 0x00000000, 0x00000000,
3772 0x41500000, 0x41600000, 0x41700000, 0x41800000, 0x00327374, 0x00000005, 0x00080001, 0x00030002,
3773 0x00000358, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3774 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x40000000, 0x40400000,
3775 0x00000000, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x40a00000, 0x40c00000, 0x40e00000,
3776 0x41000000, 0x00337374, 0xab007374, 0x00000005, 0x00080001, 0x00030002, 0x00000358, 0x00000428,
3777 0x0000042c, 0x00000005, 0x00100001, 0x00010001, 0x0000043c, 0x3f800000, 0x40000000, 0x40400000,
3778 0x00000000, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x40a00000, 0x40c00000, 0x40e00000,
3779 0x41000000, 0x41100000, 0x41200000, 0x41300000, 0x00000000, 0x41400000, 0x00000000, 0x00000000,
3780 0x00000000, 0x41500000, 0x41600000, 0x41700000, 0x41800000, 0x335f7376, 0x4d00305f, 0x6f726369,
3781 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
3782 0x392e3932, 0x332e3235, 0x00313131, 0x00f0fffe, 0x53455250, 0x46580201, 0x0047fffe, 0x42415443,
3783 0x0000001c, 0x000000e7, 0x46580201, 0x00000003, 0x0000001c, 0x00000100, 0x000000e4, 0x00000058,
3784 0x00020002, 0x00000001, 0x00000060, 0x00000070, 0x00000080, 0x00030002, 0x00000001, 0x00000088,
3785 0x00000070, 0x00000098, 0x00000002, 0x00000002, 0x000000a4, 0x000000b4, 0x6f505f67, 0xab003173,
3786 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3787 0x6f505f67, 0xab003273, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x65535f67, 0x7463656c,
3788 0xab00726f, 0x00030001, 0x00040001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3789 0x00000000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x459c4800, 0x459c5000, 0x459c5800,
3790 0x459c6000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
3791 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x000cfffe, 0x49535250,
3792 0x00000021, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000001, 0x00000021,
3793 0x00000001, 0x00000000, 0x00000000, 0x0032fffe, 0x54494c43, 0x00000018, 0x00000000, 0x00000000,
3794 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3795 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3796 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3797 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3fe00000,
3798 0x00000000, 0xc0000000, 0x00000000, 0xc0080000, 0x00000000, 0x00000000, 0x00000000, 0x40100000,
3799 0x00000000, 0x40140000, 0x00000000, 0x40180000, 0x00000000, 0x401c0000, 0x0064fffe, 0x434c5846,
3800 0x00000009, 0xa0500004, 0x00000002, 0x00000000, 0x00000001, 0x00000011, 0x00000000, 0x00000002,
3801 0x00000008, 0x00000000, 0x00000007, 0x00000000, 0x20400004, 0x00000002, 0x00000000, 0x00000007,
3802 0x00000000, 0x00000000, 0x00000001, 0x00000014, 0x00000000, 0x00000007, 0x00000004, 0xa0500004,
3803 0x00000002, 0x00000000, 0x00000001, 0x00000012, 0x00000000, 0x00000002, 0x0000000c, 0x00000000,
3804 0x00000007, 0x00000000, 0x20400004, 0x00000002, 0x00000000, 0x00000007, 0x00000000, 0x00000000,
3805 0x00000001, 0x00000014, 0x00000000, 0x00000007, 0x00000008, 0x10100004, 0x00000001, 0x00000000,
3806 0x00000007, 0x00000008, 0x00000000, 0x00000007, 0x00000000, 0x20400004, 0x00000002, 0x00000000,
3807 0x00000007, 0x00000000, 0x00000000, 0x00000007, 0x00000004, 0x00000000, 0x00000007, 0x0000000c,
3808 0xa0200001, 0x00000002, 0x00000000, 0x00000001, 0x00000010, 0x00000000, 0x00000002, 0x00000005,
3809 0x00000000, 0x00000007, 0x00000000, 0xa0500004, 0x00000002, 0x00000000, 0x00000007, 0x00000000,
3810 0x00000000, 0x00000007, 0x0000000c, 0x00000000, 0x00000007, 0x00000004, 0x20400004, 0x00000002,
3811 0x00000000, 0x00000007, 0x00000004, 0x00000000, 0x00000007, 0x00000008, 0x00000000, 0x00000004,
3812 0x00000084, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x05000051, 0xa00f0022, 0x00000000, 0x00000000,
3813 0x00000000, 0x00000000, 0x0200001f, 0x80000000, 0x900f0000, 0x0200001f, 0x90000000, 0xa00f0801,
3814 0x0200001f, 0x90000000, 0xa00f0802, 0x0200001f, 0x80000000, 0xe00f0000, 0x0200001f, 0x80000005,
3815 0xe0030001, 0x0200001f, 0x8000000a, 0xe00f0002, 0x03000009, 0x80010000, 0x90e40000, 0xa0e40017,
3816 0x03000009, 0x80020000, 0x90e40000, 0xa0e40018, 0x03000009, 0x80040000, 0x90e40000, 0xa0e40019,
3817 0x03000008, 0x80010001, 0x90e40000, 0xa0e40010, 0x03000008, 0x80020001, 0x90e40000, 0xa0e40011,
3818 0x03000008, 0x80040001, 0x90e40000, 0xa0e40012, 0x03000008, 0x80080001, 0x90e40000, 0xa0e40013,
3819 0x02000001, 0x80080000, 0xa0000022, 0x03000002, 0x800f0000, 0x80e40000, 0x80e40001, 0x03000005,
3820 0x800f0001, 0xa0e40015, 0x90550000, 0x04000004, 0x800f0001, 0x90000000, 0xa0e40014, 0x80e40001,
3821 0x04000004, 0x800f0001, 0x90aa0000, 0xa0e40016, 0x80e40001, 0x03000002, 0x800f0000, 0x80e40000,
3822 0x80e40001, 0x03000005, 0x80070001, 0xa0e4000d, 0x90550000, 0x04000004, 0x80070001, 0x90000000,
3823 0xa0e4000c, 0x80e40001, 0x04000004, 0x80070001, 0x90aa0000, 0xa0e4000e, 0x80e40001, 0x04000004,
3824 0x80070001, 0x90ff0000, 0xa0e4000f, 0x80e40001, 0x03000002, 0x80070000, 0x80e40000, 0x80e40001,
3825 0x04000004, 0x800f0000, 0x90e40000, 0xa000001b, 0x80e40000, 0x03000009, 0x80010001, 0x90e40000,
3826 0xa0e4001c, 0x03000002, 0x800f0000, 0x80e40000, 0x80000001, 0x04000004, 0x800f0000, 0x90e40000,
3827 0xa0000004, 0x80e40000, 0x03000009, 0x80010001, 0x90e40000, 0xa0e40005, 0x03000002, 0x800f0000,
3828 0x80e40000, 0x80000001, 0x04000004, 0x800f0000, 0x90e40000, 0xa0000020, 0x80e40000, 0x04000004,
3829 0x800f0000, 0x90e40000, 0xa000001e, 0x80e40000, 0x04000004, 0x800f0000, 0x90e40000, 0xa000000a,
3830 0x80e40000, 0x03000009, 0x80010001, 0x90e40000, 0xa0e4000b, 0x03000002, 0x800f0000, 0x80e40000,
3831 0x80000001, 0x0300005f, 0x800f0001, 0xa0e4001f, 0xa0e40802, 0x03000002, 0x800f0000, 0x80e40000,
3832 0x80e40001, 0x0300005f, 0x800f0001, 0xa0e4001f, 0xa0e40801, 0x03000002, 0xe00f0002, 0x80e40000,
3833 0x80e40001, 0x02000001, 0xe00f0000, 0xa0e40021, 0x02000001, 0xe0030001, 0xa0000022, 0x0000ffff,
3834 0x00000008, 0x000001dc, 0xfffe0300, 0x0016fffe, 0x42415443, 0x0000001c, 0x00000023, 0xfffe0300,
3835 0x00000000, 0x00000000, 0x00000000, 0x0000001c, 0x335f7376, 0x4d00305f, 0x6f726369, 0x74666f73,
3836 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932,
3837 0x332e3235, 0x00313131, 0x0045fffe, 0x53455250, 0x46580201, 0x0024fffe, 0x42415443, 0x0000001c,
3838 0x0000005b, 0x46580201, 0x00000001, 0x0000001c, 0x00000100, 0x00000058, 0x00000030, 0x00000002,
3839 0x00000001, 0x00000038, 0x00000048, 0x6f505f67, 0xab003173, 0x00030001, 0x00040001, 0x00000001,
3840 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73,
3841 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932,
3842 0x332e3235, 0x00313131, 0x000cfffe, 0x49535250, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
3843 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0002fffe,
3844 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10000004, 0x00000001, 0x00000000,
3845 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
3846 0x05000051, 0xa00f0001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0200001f, 0x80000000,
3847 0xe00f0000, 0x0200001f, 0x80000005, 0xe0030001, 0x0200001f, 0x8000000a, 0xe00f0002, 0x02000001,
3848 0xe00f0000, 0xa0e40000, 0x02000001, 0xe0030001, 0xa0000001, 0x02000001, 0xe00f0002, 0xa0000001,
3849 0x0000ffff, 0x00000005, 0x00000000, 0x00000004, 0x00000000, 0x00000001, 0x0000002c, 0xfffe0101,
3850 0x00000051, 0xa00f0000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x00000001, 0xc00f0000,
3851 0xa0e40000, 0x0000ffff, 0x00000002, 0x0000002c, 0xfffe0101, 0x00000051, 0xa00f0000, 0x40000000,
3852 0x40000000, 0x40000000, 0x40000000, 0x00000001, 0xc00f0000, 0xa0e40000, 0x0000ffff, 0x00000003,
3853 0x0000002c, 0xfffe0200, 0x05000051, 0xa00f0000, 0x40400000, 0x40400000, 0x40400000, 0x40400000,
3854 0x02000001, 0xc00f0000, 0xa0e40000, 0x0000ffff, 0x00000000, 0x00000001, 0xffffffff, 0x00000000,
3855 0x00000002, 0x000000e8, 0x00000008, 0x615f7376, 0x00007272, 0x46580200, 0x0024fffe, 0x42415443,
3856 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x00000100, 0x00000058, 0x00000030,
3857 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x56695f67, 0x00746365, 0x00020001, 0x00040001,
3858 0x00000001, 0x00000000, 0x40800000, 0x40400000, 0x40000000, 0x3f800000, 0x4d007874, 0x6f726369,
3859 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
3860 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846,
3861 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000004,
3862 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000029,
3863 0x00000000, 0x00000198, 0x46580200, 0x0053fffe, 0x42415443, 0x0000001c, 0x00000117, 0x46580200,
3864 0x00000001, 0x0000001c, 0x20000100, 0x00000114, 0x00000030, 0x00000002, 0x00000005, 0x000000a4,
3865 0x000000b4, 0x00337374, 0x76007374, 0xabab0031, 0x00030001, 0x00030001, 0x00000001, 0x00000000,
3866 0xab007666, 0x00030000, 0x00010001, 0x00000001, 0x00000000, 0xab003276, 0x00030001, 0x00040001,
3867 0x00000001, 0x00000000, 0x00000037, 0x0000003c, 0x0000004c, 0x00000050, 0x00000060, 0x00000064,
3868 0x00000005, 0x00080001, 0x00030002, 0x00000074, 0x00000034, 0x0000008c, 0x00000005, 0x00100001,
3869 0x00010001, 0x0000009c, 0x3f800000, 0x40000000, 0x40400000, 0x00000000, 0x40800000, 0x00000000,
3870 0x00000000, 0x00000000, 0x40a00000, 0x40c00000, 0x40e00000, 0x41000000, 0x41100000, 0x41200000,
3871 0x41300000, 0x00000000, 0x41400000, 0x00000000, 0x00000000, 0x00000000, 0x41500000, 0x41600000,
3872 0x41700000, 0x41800000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c,
3873 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe,
3874 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000,
3875 0x00000002, 0x00000010, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
3876 0x00000000, 0x00000000, 0xffffffff, 0x00000028, 0x00000000, 0x00000198, 0x46580200, 0x0053fffe,
3877 0x42415443, 0x0000001c, 0x00000117, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000114,
3878 0x00000030, 0x00000002, 0x00000002, 0x000000a4, 0x000000b4, 0x00337374, 0x76007374, 0xabab0031,
3879 0x00030001, 0x00030001, 0x00000001, 0x00000000, 0xab007666, 0x00030000, 0x00010001, 0x00000001,
3880 0x00000000, 0xab003276, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000037, 0x0000003c,
3881 0x0000004c, 0x00000050, 0x00000060, 0x00000064, 0x00000005, 0x00080001, 0x00030002, 0x00000074,
3882 0x00000034, 0x0000008c, 0x00000005, 0x00100001, 0x00010001, 0x0000009c, 0x3f800000, 0x40000000,
3883 0x40400000, 0x00000000, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x40a00000, 0x40c00000,
3884 0x40e00000, 0x41000000, 0x41100000, 0x41200000, 0x41300000, 0x00000000, 0x41400000, 0x00000000,
3885 0x00000000, 0x00000000, 0x41500000, 0x41600000, 0x41700000, 0x41800000, 0x4d007874, 0x6f726369,
3886 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
3887 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846,
3888 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004,
3889 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000027,
3890 0x00000000, 0x0000017c, 0x46580200, 0x004cfffe, 0x42415443, 0x0000001c, 0x000000fb, 0x46580200,
3891 0x00000001, 0x0000001c, 0x20000100, 0x000000f8, 0x00000030, 0x00000002, 0x00000005, 0x00000088,
3892 0x00000098, 0x00327374, 0xab003176, 0x00030001, 0x00030001, 0x00000001, 0x00000000, 0xab007666,
3893 0x00030000, 0x00010001, 0x00000001, 0x00000000, 0xab003276, 0x00030001, 0x00040001, 0x00000001,
3894 0x00000000, 0x00000034, 0x00000038, 0x00000048, 0x0000004c, 0x0000005c, 0x00000060, 0x00000005,
3895 0x00080001, 0x00030002, 0x00000070, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3896 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000,
3897 0x40000000, 0x40400000, 0x00000000, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x40a00000,
3898 0x40c00000, 0x40e00000, 0x41000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
3899 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
3900 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10000001, 0x00000001,
3901 0x00000000, 0x00000002, 0x00000010, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f,
3902 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000026, 0x00000000, 0x0000017c, 0x46580200,
3903 0x004cfffe, 0x42415443, 0x0000001c, 0x000000fb, 0x46580200, 0x00000001, 0x0000001c, 0x20000100,
3904 0x000000f8, 0x00000030, 0x00000002, 0x00000002, 0x00000088, 0x00000098, 0x00327374, 0xab003176,
3905 0x00030001, 0x00030001, 0x00000001, 0x00000000, 0xab007666, 0x00030000, 0x00010001, 0x00000001,
3906 0x00000000, 0xab003276, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000034, 0x00000038,
3907 0x00000048, 0x0000004c, 0x0000005c, 0x00000060, 0x00000005, 0x00080001, 0x00030002, 0x00000070,
3908 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3909 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x40000000, 0x40400000, 0x00000000,
3910 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x40a00000, 0x40c00000, 0x40e00000, 0x41000000,
3911 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320,
3912 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
3913 0x000cfffe, 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000004,
3914 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000,
3915 0xffffffff, 0x00000024, 0x00000000, 0x00000770, 0x46580200, 0x008cfffe, 0x42415443, 0x0000001c,
3916 0x000001fb, 0x46580200, 0x00000004, 0x0000001c, 0x20000100, 0x000001f8, 0x0000006c, 0x000b0002,
3917 0x00000001, 0x00000074, 0x00000084, 0x00000094, 0x00060002, 0x00000004, 0x0000009c, 0x000000ac,
3918 0x000000ec, 0x00000002, 0x00000006, 0x00000160, 0x00000170, 0x000001d0, 0x000a0002, 0x00000001,
3919 0x000001d8, 0x000001e8, 0x56695f67, 0x00746365, 0x00020001, 0x00040001, 0x00000001, 0x00000000,
3920 0x40800000, 0x40400000, 0x40000000, 0x3f800000, 0x3478346d, 0xababab00, 0x00030003, 0x00040004,
3921 0x00000001, 0x00000000, 0x41300000, 0x41a80000, 0x41f80000, 0x42240000, 0x41400000, 0x41b00000,
3922 0x42000000, 0x42280000, 0x41500000, 0x41b80000, 0x42040000, 0x422c0000, 0x41600000, 0x41c00000,
3923 0x42080000, 0x42300000, 0x00337374, 0x76007374, 0xabab0031, 0x00030001, 0x00030001, 0x00000001,
3924 0x00000000, 0xab007666, 0x00030000, 0x00010001, 0x00000001, 0x00000000, 0xab003276, 0x00030001,
3925 0x00040001, 0x00000001, 0x00000000, 0x000000f3, 0x000000f8, 0x00000108, 0x0000010c, 0x0000011c,
3926 0x00000120, 0x00000005, 0x00080001, 0x00030002, 0x00000130, 0x000000f0, 0x00000148, 0x00000005,
3927 0x00100001, 0x00010001, 0x00000158, 0x3f800000, 0x40000000, 0x40400000, 0x00000000, 0x40800000,
3928 0x00000000, 0x00000000, 0x00000000, 0x40a00000, 0x40c00000, 0x40e00000, 0x41000000, 0x41100000,
3929 0x41200000, 0x41300000, 0x00000000, 0x41400000, 0x00000000, 0x00000000, 0x00000000, 0x41500000,
3930 0x41600000, 0x41700000, 0x41800000, 0x33636576, 0xababab00, 0x00030001, 0x00030001, 0x00000001,
3931 0x00000000, 0x447a4000, 0x447a8000, 0x447ac000, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73,
3932 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932,
3933 0x332e3235, 0x00313131, 0x008afffe, 0x54494c43, 0x00000044, 0x00000000, 0x00000000, 0x00000000,
3934 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3935 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3936 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3937 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3938 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3939 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3940 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3941 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3942 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3943 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3944 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3945 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3ff00000, 0x00000000,
3946 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3947 0x3ff00000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3948 0x00000000, 0x00000000, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3949 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3ff00000, 0x00000000, 0x40080000, 0x00000000,
3950 0x3ff00000, 0x00000000, 0x40000000, 0x00000000, 0x00000000, 0x00c1fffe, 0x434c5846, 0x0000000e,
3951 0x50000004, 0x00000002, 0x00000000, 0x00000002, 0x00000018, 0x00000001, 0x00000002, 0x0000002e,
3952 0x00000001, 0x0000003c, 0x00000000, 0x00000007, 0x00000000, 0x50000004, 0x00000002, 0x00000000,
3953 0x00000002, 0x0000001c, 0x00000001, 0x00000002, 0x0000002e, 0x00000001, 0x0000003c, 0x00000000,
3954 0x00000007, 0x00000001, 0x50000004, 0x00000002, 0x00000000, 0x00000002, 0x00000020, 0x00000001,
3955 0x00000002, 0x0000002e, 0x00000001, 0x0000003c, 0x00000000, 0x00000007, 0x00000002, 0x50000004,
3956 0x00000002, 0x00000000, 0x00000002, 0x00000024, 0x00000001, 0x00000002, 0x0000002e, 0x00000001,
3957 0x0000003c, 0x00000000, 0x00000007, 0x00000003, 0xa0400001, 0x00000002, 0x00000000, 0x00000002,
3958 0x0000002f, 0x00000000, 0x00000002, 0x0000002f, 0x00000000, 0x00000007, 0x00000004, 0x50000004,
3959 0x00000002, 0x00000000, 0x00000002, 0x00000018, 0x00000001, 0x00000007, 0x00000004, 0x00000001,
3960 0x00000030, 0x00000000, 0x00000007, 0x00000008, 0x50000004, 0x00000002, 0x00000000, 0x00000002,
3961 0x0000001c, 0x00000001, 0x00000007, 0x00000004, 0x00000001, 0x00000030, 0x00000000, 0x00000007,
3962 0x00000009, 0x50000004, 0x00000002, 0x00000000, 0x00000002, 0x00000020, 0x00000001, 0x00000007,
3963 0x00000004, 0x00000001, 0x00000030, 0x00000000, 0x00000007, 0x0000000a, 0x50000004, 0x00000002,
3964 0x00000000, 0x00000002, 0x00000024, 0x00000001, 0x00000007, 0x00000004, 0x00000001, 0x00000030,
3965 0x00000000, 0x00000007, 0x0000000b, 0x50000004, 0x00000002, 0x00000000, 0x00000007, 0x00000000,
3966 0x00000000, 0x00000007, 0x00000008, 0x00000000, 0x00000004, 0x00000000, 0x50000003, 0x00000002,
3967 0x00000000, 0x00000002, 0x00000028, 0x00000001, 0x00000002, 0x0000002e, 0x00000001, 0x00000030,
3968 0x00000000, 0x00000004, 0x00000002, 0x70e00001, 0x00000006, 0x00000000, 0x00000001, 0x00000041,
3969 0x00000000, 0x00000001, 0x00000042, 0x00000000, 0x00000001, 0x00000040, 0x00000001, 0x00000002,
3970 0x0000002f, 0x00000001, 0x00000030, 0x00000001, 0x00000002, 0x0000002f, 0x00000001, 0x00000031,
3971 0x00000001, 0x00000002, 0x0000002f, 0x00000001, 0x00000032, 0x00000000, 0x00000004, 0x00000003,
3972 0xa0500001, 0x00000002, 0x00000000, 0x00000002, 0x0000002c, 0x00000000, 0x00000001, 0x00000040,
3973 0x00000000, 0x00000007, 0x00000000, 0x10000001, 0x00000001, 0x00000001, 0x00000007, 0x00000000,
3974 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000001, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
3975 0x00000000, 0x00000000, 0xffffffff, 0x00000023, 0x00000000, 0x000004ec, 0x46580200, 0x005afffe,
3976 0x42415443, 0x0000001c, 0x00000133, 0x46580200, 0x00000004, 0x0000001c, 0x20000100, 0x00000130,
3977 0x0000006c, 0x00000002, 0x00000003, 0x00000078, 0x00000088, 0x000000b8, 0x000a0002, 0x00000001,
3978 0x000000c0, 0x000000d0, 0x000000e0, 0x00080002, 0x00000001, 0x000000e8, 0x000000f8, 0x00000108,
3979 0x00090002, 0x00000001, 0x00000110, 0x00000120, 0x65535f67, 0x7463656c, 0xab00726f, 0x00030001,
3980 0x00040001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x41200000,
3981 0x41200000, 0x41200000, 0x41200000, 0x459c4800, 0x459c5000, 0x459c5800, 0x459c6000, 0x56695f67,
3982 0x00746365, 0x00020001, 0x00040001, 0x00000001, 0x00000000, 0x40800000, 0x40400000, 0x40000000,
3983 0x3f800000, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000,
3984 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001,
3985 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x4d007874, 0x6f726369, 0x74666f73,
3986 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932,
3987 0x332e3235, 0x00313131, 0x007afffe, 0x54494c43, 0x0000003c, 0x00000000, 0x00000000, 0x00000000,
3988 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3989 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3990 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3991 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3992 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3993 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3994 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3995 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3996 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3997 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
3998 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3ff00000, 0x00000000,
3999 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4000 0x3ff00000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4001 0x00000000, 0x00000000, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4002 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3ff00000, 0x0062fffe, 0x434c5846, 0x00000008,
4003 0x50000004, 0x00000002, 0x00000000, 0x00000002, 0x00000020, 0x00000001, 0x00000002, 0x0000002a,
4004 0x00000001, 0x0000002c, 0x00000000, 0x00000004, 0x00000000, 0x10400001, 0x00000001, 0x00000000,
4005 0x00000002, 0x00000025, 0x00000000, 0x00000007, 0x00000000, 0x10100001, 0x00000001, 0x00000000,
4006 0x00000007, 0x00000000, 0x00000000, 0x00000007, 0x00000004, 0xa0400001, 0x00000002, 0x00000000,
4007 0x00000002, 0x00000025, 0x00000000, 0x00000001, 0x0000002c, 0x00000000, 0x00000007, 0x00000000,
4008 0xa0400001, 0x00000002, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000007, 0x00000004,
4009 0x00000000, 0x00000007, 0x00000008, 0x50000004, 0x00000002, 0x00000000, 0x00000002, 0x00000028,
4010 0x00000001, 0x00000007, 0x00000008, 0x00000001, 0x0000002c, 0x00000000, 0x00000004, 0x00000001,
4011 0xa0400001, 0x00000002, 0x00000001, 0x00000002, 0x0000002b, 0x00000002, 0x00000010, 0x00000001,
4012 0x00000002, 0x0000002b, 0x00000002, 0x0000001d, 0x00000000, 0x00000004, 0x00000002, 0xa0400001,
4013 0x00000002, 0x00000001, 0x00000002, 0x00000028, 0x00000002, 0x00000001, 0x00000001, 0x00000002,
4014 0x0000002b, 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f,
4015 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000022, 0x00000000, 0x000002cc, 0x46580200,
4016 0x0033fffe, 0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002, 0x0000001c, 0x20000100,
4017 0x00000094, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002,
4018 0x00000001, 0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001,
4019 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001,
4020 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x4d007874,
4021 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
4022 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x001afffe, 0x54494c43, 0x0000000c, 0x00000000,
4023 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4024 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4025 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0061fffe,
4026 0x434c5846, 0x00000006, 0xa0500001, 0x00000002, 0x00000000, 0x00000002, 0x00000002, 0x00000000,
4027 0x00000002, 0x00000004, 0x00000000, 0x00000007, 0x00000000, 0xa0500001, 0x00000002, 0x00000000,
4028 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000005, 0x00000000, 0x00000007, 0x00000001,
4029 0xa0400001, 0x00000002, 0x00000000, 0x00000007, 0x00000001, 0x00000000, 0x00000007, 0x00000000,
4030 0x00000000, 0x00000004, 0x00000000, 0x70e00001, 0x00000006, 0x00000000, 0x00000002, 0x00000002,
4031 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002,
4032 0x00000004, 0x00000000, 0x00000002, 0x00000005, 0x00000000, 0x00000002, 0x00000006, 0x00000000,
4033 0x00000004, 0x00000001, 0x70e00001, 0x00000008, 0x00000000, 0x00000002, 0x00000002, 0x00000000,
4034 0x00000002, 0x00000002, 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000002, 0x00000000,
4035 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000002,
4036 0x00000005, 0x00000000, 0x00000002, 0x00000005, 0x00000000, 0x00000004, 0x00000002, 0x10000001,
4037 0x00000001, 0x00000000, 0x00000001, 0x00000008, 0x00000000, 0x00000004, 0x00000003, 0xf0f0f0f0,
4038 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000021, 0x00000000, 0x00000248,
4039 0x46580200, 0x003efffe, 0x42415443, 0x0000001c, 0x000000c3, 0x46580200, 0x00000003, 0x0000001c,
4040 0x20000100, 0x000000c0, 0x00000058, 0x00000002, 0x00000001, 0x00000060, 0x00000070, 0x00000080,
4041 0x00010002, 0x00000001, 0x00000088, 0x00000098, 0x000000a8, 0x00020002, 0x00000001, 0x000000b0,
4042 0x00000070, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000,
4043 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001,
4044 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x6576706f, 0x00337463, 0x00030001,
4045 0x00040001, 0x00000001, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
4046 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
4047 0x0022fffe, 0x54494c43, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4048 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4049 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4050 0x00000000, 0x00000000, 0x00000000, 0x812dea11, 0x3d719799, 0x00000000, 0x00000000, 0x00000000,
4051 0x00000000, 0x00000000, 0x00000000, 0x002dfffe, 0x434c5846, 0x00000004, 0xa0500004, 0x00000002,
4052 0x00000000, 0x00000001, 0x0000000c, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000007,
4053 0x00000000, 0x20400004, 0x00000002, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000002,
4054 0x00000000, 0x00000000, 0x00000007, 0x00000004, 0x10100004, 0x00000001, 0x00000000, 0x00000002,
4055 0x00000008, 0x00000000, 0x00000007, 0x00000000, 0x20400004, 0x00000002, 0x00000000, 0x00000007,
4056 0x00000000, 0x00000000, 0x00000007, 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0,
4057 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000020, 0x00000000, 0x000001f0,
4058 0x46580200, 0x0033fffe, 0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002, 0x0000001c,
4059 0x20000100, 0x00000094, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c,
4060 0x00010002, 0x00000001, 0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001, 0x00040001,
4061 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463,
4062 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000,
4063 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320,
4064 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x001afffe, 0x54494c43, 0x0000000c,
4065 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4066 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4067 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4068 0x002afffe, 0x434c5846, 0x00000004, 0x50000004, 0x00000002, 0x00000000, 0x00000002, 0x00000000,
4069 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000001, 0x50000004, 0x00000002,
4070 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004,
4071 0x00000002, 0x10000001, 0x00000001, 0x00000000, 0x00000001, 0x00000008, 0x00000000, 0x00000004,
4072 0x00000000, 0x10000001, 0x00000001, 0x00000000, 0x00000001, 0x00000008, 0x00000000, 0x00000004,
4073 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x0000001f,
4074 0x00000000, 0x000001a8, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200,
4075 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038,
4076 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000,
4077 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
4078 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
4079 0x0012fffe, 0x54494c43, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4080 0x00000000, 0x00000000, 0x00000000, 0x47ae147b, 0x3f847ae1, 0x00000000, 0x00000000, 0x00000000,
4081 0x00000000, 0x00000000, 0x00000000, 0x002ffffe, 0x434c5846, 0x00000005, 0x10300001, 0x00000001,
4082 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000007, 0x00000000, 0x10300001, 0x00000001,
4083 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000007, 0x00000001, 0x10300001, 0x00000001,
4084 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000007, 0x00000002, 0x10300001, 0x00000001,
4085 0x00000000, 0x00000002, 0x00000003, 0x00000000, 0x00000007, 0x00000003, 0xa0500004, 0x00000002,
4086 0x00000000, 0x00000001, 0x00000004, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000004,
4087 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x0000001e,
4088 0x00000000, 0x000000dc, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200,
4089 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038,
4090 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000,
4091 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
4092 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
4093 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10900004, 0x00000001,
4094 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f,
4095 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x0000001d, 0x00000000, 0x000000dc, 0x46580200,
4096 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100,
4097 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f, 0x00317463,
4098 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff,
4099 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320,
4100 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
4101 0x000cfffe, 0x434c5846, 0x00000001, 0x10800004, 0x00000001, 0x00000000, 0x00000002, 0x00000000,
4102 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000,
4103 0xffffffff, 0x0000001c, 0x00000000, 0x00000124, 0x46580200, 0x0033fffe, 0x42415443, 0x0000001c,
4104 0x00000097, 0x46580200, 0x00000002, 0x0000001c, 0x20000100, 0x00000094, 0x00000044, 0x00000002,
4105 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002, 0x00000001, 0x00000074, 0x00000084,
4106 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000,
4107 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
4108 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820,
4109 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235,
4110 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe, 0x434c5846, 0x00000001, 0x20100004,
4111 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000,
4112 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff,
4113 0x0000001b, 0x00000000, 0x00000124, 0x46580200, 0x0033fffe, 0x42415443, 0x0000001c, 0x00000097,
4114 0x46580200, 0x00000002, 0x0000001c, 0x20000100, 0x00000094, 0x00000044, 0x00000002, 0x00000001,
4115 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002, 0x00000001, 0x00000074, 0x00000084, 0x6576706f,
4116 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd,
4117 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x3f800000,
4118 0x40000000, 0xc0400000, 0x40800000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
4119 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
4120 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe, 0x434c5846, 0x00000001, 0x20000004, 0x00000002,
4121 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004,
4122 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x0000001a,
4123 0x00000000, 0x000000dc, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200,
4124 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038,
4125 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000,
4126 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
4127 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
4128 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10400004, 0x00000001,
4129 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f,
4130 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000019, 0x00000000, 0x0000013c, 0x46580200,
4131 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100,
4132 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f, 0x00317463,
4133 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff,
4134 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320,
4135 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
4136 0x0024fffe, 0x434c5846, 0x00000004, 0x10300001, 0x00000001, 0x00000000, 0x00000002, 0x00000000,
4137 0x00000000, 0x00000004, 0x00000000, 0x10300001, 0x00000001, 0x00000000, 0x00000002, 0x00000001,
4138 0x00000000, 0x00000004, 0x00000001, 0x10300001, 0x00000001, 0x00000000, 0x00000002, 0x00000002,
4139 0x00000000, 0x00000004, 0x00000002, 0x10300001, 0x00000001, 0x00000000, 0x00000002, 0x00000003,
4140 0x00000000, 0x00000004, 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000,
4141 0xffffffff, 0x00000018, 0x00000000, 0x000000dc, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c,
4142 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002,
4143 0x00000001, 0x00000038, 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001,
4144 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73,
4145 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932,
4146 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001,
4147 0x10100004, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000,
4148 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000017, 0x00000000,
4149 0x00000124, 0x46580200, 0x0033fffe, 0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002,
4150 0x0000001c, 0x20000100, 0x00000094, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c,
4151 0x0000006c, 0x00010002, 0x00000001, 0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001,
4152 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f,
4153 0x00327463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000,
4154 0x40800000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
4155 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43,
4156 0x00000000, 0x000ffffe, 0x434c5846, 0x00000001, 0x20300004, 0x00000002, 0x00000000, 0x00000002,
4157 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0,
4158 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000016, 0x00000000, 0x00000124,
4159 0x46580200, 0x0033fffe, 0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002, 0x0000001c,
4160 0x20000100, 0x00000094, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c,
4161 0x00010002, 0x00000001, 0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001, 0x00040001,
4162 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463,
4163 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000,
4164 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320,
4165 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
4166 0x000ffffe, 0x434c5846, 0x00000001, 0x20200004, 0x00000002, 0x00000000, 0x00000002, 0x00000000,
4167 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f,
4168 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000015, 0x00000000, 0x00000124, 0x46580200,
4169 0x0033fffe, 0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002, 0x0000001c, 0x20000100,
4170 0x00000094, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002,
4171 0x00000001, 0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001,
4172 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001,
4173 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x4d007874,
4174 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
4175 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe,
4176 0x434c5846, 0x00000001, 0x20400004, 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000,
4177 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
4178 0x00000000, 0x00000000, 0xffffffff, 0x00000014, 0x00000000, 0x00000124, 0x46580200, 0x0033fffe,
4179 0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002, 0x0000001c, 0x20000100, 0x00000094,
4180 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002, 0x00000001,
4181 0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
4182 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001, 0x00040001,
4183 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x4d007874, 0x6f726369,
4184 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
4185 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe, 0x434c5846,
4186 0x00000001, 0x20500004, 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002,
4187 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000,
4188 0x00000000, 0xffffffff, 0x00000013, 0x00000000, 0x0000013c, 0x46580200, 0x0024fffe, 0x42415443,
4189 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030,
4190 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001,
4191 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369,
4192 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
4193 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x0024fffe, 0x434c5846,
4194 0x00000004, 0x10700001, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004,
4195 0x00000000, 0x10700001, 0x00000001, 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000004,
4196 0x00000001, 0x10700001, 0x00000001, 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000004,
4197 0x00000002, 0x10700001, 0x00000001, 0x00000000, 0x00000002, 0x00000003, 0x00000000, 0x00000004,
4198 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000012,
4199 0x00000000, 0x0000013c, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200,
4200 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038,
4201 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000,
4202 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
4203 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
4204 0x0002fffe, 0x54494c43, 0x00000000, 0x0024fffe, 0x434c5846, 0x00000004, 0x10300001, 0x00000001,
4205 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x10300001, 0x00000001,
4206 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000004, 0x00000001, 0x10300001, 0x00000001,
4207 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000004, 0x00000002, 0x10300001, 0x00000001,
4208 0x00000000, 0x00000002, 0x00000003, 0x00000000, 0x00000004, 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f,
4209 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000001, 0x00000002, 0x00000134, 0x00000008,
4210 0x615f7370, 0x00007272, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200,
4211 0x00000001, 0x0000001c, 0x00000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038,
4212 0x00000048, 0x56695f67, 0x00746365, 0x00020001, 0x00040001, 0x00000001, 0x00000000, 0x40800000,
4213 0x40400000, 0x40000000, 0x3f800000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
4214 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
4215 0x0012fffe, 0x54494c43, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4216 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xbff00000, 0x00000000, 0x00000000, 0x00000000,
4217 0x00000000, 0x00000000, 0x00000000, 0x000ffffe, 0x434c5846, 0x00000001, 0xa0400001, 0x00000002,
4218 0x00000000, 0x00000002, 0x00000003, 0x00000000, 0x00000001, 0x00000004, 0x00000000, 0x00000004,
4219 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000000,
4220 0x00000002, 0x00000134, 0x00000008, 0x615f7376, 0x00327272, 0x46580200, 0x0024fffe, 0x42415443,
4221 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x00000100, 0x00000058, 0x00000030,
4222 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x56695f67, 0x00746365, 0x00020001, 0x00040001,
4223 0x00000001, 0x00000000, 0x40800000, 0x40400000, 0x40000000, 0x3f800000, 0x4d007874, 0x6f726369,
4224 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
4225 0x392e3932, 0x332e3235, 0x00313131, 0x0012fffe, 0x54494c43, 0x00000008, 0x00000000, 0x00000000,
4226 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xbff00000,
4227 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000ffffe, 0x434c5846,
4228 0x00000001, 0xa0400001, 0x00000002, 0x00000000, 0x00000002, 0x00000003, 0x00000000, 0x00000001,
4229 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0xffffffff,
4230 0x0000001f, 0x00000001, 0x00000001, 0x00000000, 0x000000e4, 0x46580200, 0x0026fffe, 0x42415443,
4231 0x0000001c, 0x00000063, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000060, 0x00000030,
4232 0x00000002, 0x00000001, 0x00000040, 0x00000050, 0x74636576, 0x6d61735f, 0x72656c70, 0xababab00,
4233 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0x40400000, 0x40800000,
4234 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320,
4235 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
4236 0x000cfffe, 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000001,
4237 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0xffffffff, 0x0000001f,
4238 0x00000000, 0x00000001, 0x00000000, 0x000000e4, 0x46580200, 0x0026fffe, 0x42415443, 0x0000001c,
4239 0x00000063, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000060, 0x00000030, 0x00000002,
4240 0x00000001, 0x00000040, 0x00000050, 0x74636576, 0x6d61735f, 0x72656c70, 0xababab00, 0x00030001,
4241 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0x40400000, 0x40800000, 0x4d007874,
4242 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
4243 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe,
4244 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000,
4245 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0xffffffff, 0x0000001e, 0x00000000,
4246 0x00000002, 0x00000000, 0x000000f0, 0x46580200, 0x0026fffe, 0x42415443, 0x0000001c, 0x00000063,
4247 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000060, 0x00000030, 0x00000002, 0x00000001,
4248 0x00000040, 0x00000050, 0x74636576, 0x6d61735f, 0x72656c70, 0xababab00, 0x00030001, 0x00040001,
4249 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0x40400000, 0x40800000, 0x4d007874, 0x6f726369,
4250 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
4251 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe, 0x434c5846,
4252 0x00000001, 0xa0400001, 0x00000002, 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000002,
4253 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0xffffffff,
4254 0x0000001e, 0x00000000, 0x00000001, 0x00000000, 0x000000dc, 0x46580200, 0x0024fffe, 0x42415443,
4255 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030,
4256 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x56695f67, 0x00746365, 0x00020001, 0x00040001,
4257 0x00000001, 0x00000000, 0x40800000, 0x40400000, 0x40000000, 0x3f800000, 0x4d007874, 0x6f726369,
4258 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
4259 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846,
4260 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000004,
4261 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0xffffffff, 0x0000001e, 0x00000000, 0x00000000,
4262 0x00000001, 0x00000005, 0x31786574, 0x00000000,
4264#define TEST_EFFECT_PRESHADER_VSHADER_POS 2991
4265#define TEST_EFFECT_PRESHADER_VSHADER_LEN 13
4267#define test_effect_preshader_compare_shader_bytecode(a, b, c, d) \
4268 test_effect_preshader_compare_shader_bytecode_(__LINE__, a, b, c, d)
4270 const DWORD *bytecode,
unsigned int bytecode_size,
int expected_shader_index,
BOOL todo)
4275 ok_(__FILE__,
line)(!!bytecode,
"NULL shader bytecode.\n");
4280 while (bytecode[
i++] != 0x0000ffff)
4284 bytecode_size =
i *
sizeof(*bytecode);
4286 ok(
i *
sizeof(*bytecode) == bytecode_size,
"Unexpected byte code size %u.\n", bytecode_size);
4291 "Incorrect shader selected.\n");
4294#define test_effect_preshader_compare_shader(a, b, c) \
4295 test_effect_preshader_compare_shader_(__LINE__, a, b, c)
4297 int expected_shader_index,
BOOL todo)
4299 IDirect3DVertexShader9 *vshader;
4301 unsigned int byte_code_size;
4305 ok_(__FILE__,
line)(
hr ==
D3D_OK,
"IDirect3DDevice9_GetVertexShader result %#x.\n",
hr);
4308 ok_(__FILE__,
line)(!!vshader,
"Got NULL vshader.\n");
4313 ok_(__FILE__,
line)(
hr ==
D3D_OK,
"IDirect3DVertexShader9_GetFunction %#x.\n",
hr);
4314 ok_(__FILE__,
line)(byte_code_size > 1,
"Got unexpected byte code size %u.\n", byte_code_size);
4321 byte_code_size, expected_shader_index,
todo);
4337 {
"rsq", {
FALSE,
FALSE,
FALSE,
FALSE}, {0x7f800000, 0x7f800000, 0x3f2c985c, 0x1f800001}, 1},
4371#define test_effect_preshader_op_results(a, b, c) test_effect_preshader_op_results_(__LINE__, a, b, c)
4389 for (
j = 0;
j < 4; ++
j)
4395 "Operation %s, component %u, expected %#x, got %#x (%g).\n",
4398 ((
const unsigned int *)
v)[
j],
v[
j]);
4404 "Parameter %s, test %d, operation %s, state updated unexpectedly.\n",
4412 {0.0f, 0.0f, 0.0f, 0.0f},
4413 {0.0f, 0.0f, 0.0f, 0.0f},
4414 {0.0f, 0.0f, 0.0f, 0.0f},
4415 {1.0f, 2.0f, 3.0f, 0.0f},
4416 {4.0f, 0.0f, 0.0f, 0.0f},
4417 {5.0f, 6.0f, 7.0f, 8.0f},
4418 {1.0f, 2.0f, 3.0f, 0.0f},
4419 {4.0f, 0.0f, 0.0f, 0.0f},
4420 {5.0f, 6.0f, 7.0f, 8.0f},
4421 {9.0f, 10.0f, 11.0f, 0.0f},
4422 {12.0f, 0.0f, 0.0f, 0.0f},
4423 {13.0f, 14.0f, 15.0f, 16.0f},
4424 {11.0f, 12.0f, 13.0f, 0.0f},
4425 {21.0f, 22.0f, 23.0f, 0.0f},
4426 {31.0f, 32.0f, 33.0f, 0.0f},
4427 {41.0f, 42.0f, 43.0f, 0.0f},
4428 {11.0f, 21.0f, 31.0f, 0.0f},
4429 {12.0f, 22.0f, 32.0f, 0.0f},
4430 {13.0f, 23.0f, 33.0f, 0.0f},
4431 {14.0f, 24.0f, 34.0f, 0.0f},
4432 {11.0f, 12.0f, 13.0f, 14.0f},
4433 {21.0f, 22.0f, 23.0f, 24.0f},
4434 {31.0f, 32.0f, 33.0f, 34.0f},
4435 {11.0f, 21.0f, 31.0f, 41.0f},
4436 {12.0f, 22.0f, 32.0f, 42.0f},
4437 {13.0f, 23.0f, 33.0f, 43.0f},
4438 {9.0f, 10.0f, 11.0f, 0.0f},
4439 {12.0f, 0.0f, 0.0f, 0.0f},
4440 {13.0f, 14.0f, 15.0f, 16.0f},
4441 {92.0f, 0.0f, 0.0f, 0.0f},
4442 {93.0f, 0.0f, 0.0f, 0.0f},
4443 {0.0f, 0.0f, 0.0f, 0.0f},
4444 {91.0f, 0.0f, 0.0f, 0.0f},
4445 {4.0f, 5.0f, 6.0f, 7.0f},
4447#define TEST_EFFECT_BITMASK_BLOCK_SIZE (sizeof(unsigned int) * 8)
4449#define test_effect_preshader_compare_vconsts(a, b, c) \
4450 test_effect_preshader_compare_vconsts_(__LINE__, a, b, c)
4452 const unsigned int *const_updated_mask,
const char *updated_param)
4462 if (!const_updated_mask)
4465 "Vertex shader float constants do not match.\n");
4475 "Vertex shader float constants do not match, expected (%g, %g, %g, %g), "
4476 "got (%g, %g, %g, %g), parameter %s.\n",
4479 fdata[
i].
x, fdata[
i].
y, fdata[
i].
z, fdata[
i].
w, updated_param);
4484 "Vertex shader float constants updated unexpectedly, parameter %s.\n", updated_param);
4494 "Vertex shader float constants do not match.\n");
4509 for (
i = 0;
i < 16; ++
i)
4517#define test_effect_preshader_compare_pbool_consts(a, b, c) \
4518 test_effect_preshader_compare_pbool_consts_(__LINE__, a, b, c)
4520 const unsigned int *const_updated_mask,
const char *updated_param)
4529 if (!const_updated_mask)
4536 "Pixel shader boolean constants do not match, expected %#x, got %#x, i %u.\n",
4550 "Pixel shader boolean constants do not match, expected %#x, got %#x, i %u, parameter %s.\n",
4556 "Pixel shader boolean constants updated unexpectedly, parameter %s.\n", updated_param);
4563 ok_(__FILE__,
line)(!bdata[
i],
"Got result %#x, boolean register value %u.\n",
hr, bdata[
i]);
4569 static const D3DXVECTOR4 test_effect_preshader_fvect_p[] =
4571 {11.0f, 21.0f, 0.0f, 0.0f},
4572 {12.0f, 22.0f, 0.0f, 0.0f},
4573 {13.0f, 23.0f, 0.0f, 0.0f},
4574 {11.0f, 12.0f, 0.0f, 0.0f},
4575 {21.0f, 22.0f, 0.0f, 0.0f},
4576 {31.0f, 32.0f, 0.0f, 0.0f},
4577 {11.0f, 12.0f, 0.0f, 0.0f},
4578 {21.0f, 22.0f, 0.0f, 0.0f},
4579 {11.0f, 21.0f, 0.0f, 0.0f},
4580 {12.0f, 22.0f, 0.0f, 0.0f},
4581 {11.0f, 12.0f, 13.0f, 0.0f},
4582 {21.0f, 22.0f, 23.0f, 0.0f},
4583 {11.0f, 21.0f, 31.0f, 0.0f},
4584 {12.0f, 22.0f, 32.0f, 0.0f}
4586 static const int test_effect_preshader_iconsts[][4] =
4590 static const D3DXVECTOR4 fvect1 = {28.0f, 29.0f, 30.0f, 31.0f};
4591 static const D3DXVECTOR4 fvect2 = {0.0f, 0.0f, 1.0f, 0.0f};
4592 static const int ivect_empty[4] = {-1, -1, -1, -1};
4594 ID3DXEffect *effect;
4596 unsigned int npasses;
4599 int idata[
ARRAY_SIZE(test_effect_preshader_iconsts)][4];
4600 IDirect3DVertexShader9 *vshader;
4609 skip(
"Test requires VS >= 3 and PS >= 3, skipping.\n");
4619 for (
i = 0;
i < 224; ++
i)
4627 for (
i = 0;
i < 16; ++
i)
4633 hr = effect->lpVtbl->Begin(effect, &npasses, 0);
4636 par = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_Pos2");
4637 ok(par !=
NULL,
"GetParameterByName failed.\n");
4639 hr = effect->lpVtbl->SetVector(effect, par, &fvect1);
4642 hr = effect->lpVtbl->BeginPass(effect, 0);
4645 hr = effect->lpVtbl->BeginPass(effect, 0);
4648 hr = effect->lpVtbl->BeginPass(effect, 1);
4656 ok(!
memcmp(fdata, test_effect_preshader_fvect_p,
sizeof(test_effect_preshader_fvect_p)),
4657 "Pixel shader float constants do not match.\n");
4658 for (
i =
ARRAY_SIZE(test_effect_preshader_fvect_p);
i < 224; ++
i)
4663 "Pixel shader float constants do not match.\n");
4668 ok(!
memcmp(idata, test_effect_preshader_iconsts,
sizeof(test_effect_preshader_iconsts)),
4669 "Pixel shader integer constants do not match.\n");
4670 for (
i =
ARRAY_SIZE(test_effect_preshader_iconsts);
i < 16; ++
i)
4674 ok(!
memcmp(idata[0], ivect_empty,
sizeof(ivect_empty)),
4675 "Pixel shader integer constants do not match.\n");
4684 ok(
value == 3,
"Unexpected sampler 0 minfilter %u.\n",
value);
4691 ok(
value == 1,
"Unexpected sampler 1 minfilter %u.\n",
value);
4695 ok(
value == 1,
"Unexpected sampler 1 magfilter %u.\n",
value);
4699 ok(
value == 1,
"Unexpected vertex sampler 0 minfilter %u.\n",
value);
4703 ok(
value == 1,
"Unexpected vertex sampler 0 magfilter %u.\n",
value);
4708 ok(
value == 0,
"Unexpected vertex sampler 1 minfilter %u.\n",
value);
4712 ok(
value == 0,
"Unexpected vertex sampler 1 magfilter %u.\n",
value);
4716 ok(
value == 3,
"Unexpected vertex sampler 2 minfilter %u.\n",
value);
4723 ok(
value == 0,
"Unexpected fog density %g.\n", *(
float *)&
value);
4726 ok(*(
float *)&
value == 4.0f,
"Unexpected fog start %g.\n", *(
float *)&
value);
4729 ok(*(
float *)&
value == 4.0f,
"Unexpected point scale A %g.\n", *(
float *)&
value);
4732 ok(*(
float *)&
value == 12.0f,
"Unexpected point scale B %g.\n", *(
float *)&
value);
4734 hr = effect->lpVtbl->EndPass(effect);
4736 par = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_iVect");
4737 ok(par !=
NULL,
"GetParameterByName failed.\n");
4738 hr = effect->lpVtbl->SetVector(effect, par, &fvect2);
4740 hr = effect->lpVtbl->BeginPass(effect, 1);
4748 hr = effect->lpVtbl->SetVector(effect, par, &fvect1);
4750 hr = effect->lpVtbl->CommitChanges(effect);
4754 ok(!vshader,
"Incorrect shader selected.\n");
4756 hr = effect->lpVtbl->EndPass(effect);
4759 hr = effect->lpVtbl->End(effect);
4762 effect->lpVtbl->Release(effect);
4771 hr = effect->lpVtbl->BeginPass(effect, 0);
4776 ok(
value == 3,
"Unexpected sampler 0 minfilter %u.\n",
value);
4783 ok(
value == 1,
"Unexpected sampler 1 minfilter %u.\n",
value);
4787 ok(
value == 1,
"Unexpected sampler 1 magfilter %u.\n",
value);
4791 ok(
value == 1,
"Unexpected vertex sampler 0 minfilter %u.\n",
value);
4795 ok(
value == 1,
"Unexpected vertex sampler 0 magfilter %u.\n",
value);
4799 ok(
value == 2,
"Unexpected vertex sampler 1 minfilter %u.\n",
value);
4803 ok(
value == 2,
"Unexpected vertex sampler 1 magfilter %u.\n",
value);
4807 ok(
value == 3,
"Unexpected vertex sampler 2 minfilter %u.\n",
value);
4811 ok(
value == 3,
"Unexpected vertex sampler 2 magfilter %u.\n",
value);
4813 hr = effect->lpVtbl->EndPass(effect);
4815 hr = effect->lpVtbl->End(effect);
4817 effect->lpVtbl->Release(effect);
4832 LightEnable[0] =
TRUE;
4833 LightEnable[1] =
TRUE;
4834 LightEnable[2] =
TRUE;
4835 LightEnable[3] =
TRUE;
4836 LightEnable[4] =
TRUE;
4837 LightEnable[5] =
TRUE;
4838 LightEnable[6] =
TRUE;
4839 LightEnable[7] =
TRUE;
4840 LightType[0] =
POINT;
4841 LightType[1] =
POINT;
4842 LightType[2] =
POINT;
4843 LightType[3] =
POINT;
4844 LightType[4] =
POINT;
4845 LightType[5] =
POINT;
4846 LightType[6] =
POINT;
4847 LightType[7] =
POINT;
4849 LightDiffuse[0] =
exp(opvect1);
4850 LightDiffuse[1] =
log(opvect1);
4851 LightDiffuse[2] =
asin(opvect1);
4852 LightDiffuse[3] =
acos(opvect1);
4853 LightDiffuse[4] =
atan(opvect1);
4854 LightDiffuse[5] =
atan2(opvect1, opvect2);
4855 LightDiffuse[6] = opvect1 * opvect2;
4858 LightDiffuse[7] = opvect1 * opvect2;
4861 LightAmbient[0] = opvect1 + opvect2 + opvect3;
4867 0xfeff0901, 0x0000044c, 0x00000000, 0x00000003, 0x00000001, 0x00000030, 0x00000000, 0x00000000,
4868 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0x6576706f,
4869 0x00317463, 0x00000003, 0x00000001, 0x00000068, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
4870 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0x6576706f, 0x00327463, 0x00000003,
4871 0x00000001, 0x000000a0, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000,
4872 0x00000000, 0x00000000, 0x00000008, 0x6576706f, 0x00337463, 0x00000001, 0x00000002, 0x00000002,
4873 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
4874 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
4875 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
4876 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
4877 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
4878 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
4879 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
4880 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
4881 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
4882 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
4883 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
4884 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
4885 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
4886 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
4887 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000002,
4888 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
4889 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
4890 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000,
4891 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
4892 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000,
4893 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004,
4894 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000,
4895 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4896 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000,
4897 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000,
4898 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002,
4899 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
4900 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
4901 0x00000003, 0x00003070, 0x00000006, 0x68636574, 0x00000030, 0x00000003, 0x00000001, 0x00000001,
4902 0x00000001, 0x00000004, 0x00000020, 0x00000000, 0x00000000, 0x0000003c, 0x00000058, 0x00000000,
4903 0x00000000, 0x00000074, 0x00000090, 0x00000000, 0x00000000, 0x00000440, 0x00000000, 0x00000001,
4904 0x00000438, 0x00000000, 0x00000019, 0x00000091, 0x00000000, 0x000000b0, 0x000000ac, 0x00000091,
4905 0x00000001, 0x000000d0, 0x000000cc, 0x00000091, 0x00000002, 0x000000f0, 0x000000ec, 0x00000091,
4906 0x00000003, 0x00000110, 0x0000010c, 0x00000091, 0x00000004, 0x00000130, 0x0000012c, 0x00000091,
4907 0x00000005, 0x00000150, 0x0000014c, 0x00000091, 0x00000006, 0x00000170, 0x0000016c, 0x00000091,
4908 0x00000007, 0x00000190, 0x0000018c, 0x00000084, 0x00000000, 0x000001b0, 0x000001ac, 0x00000084,
4909 0x00000001, 0x000001d0, 0x000001cc, 0x00000084, 0x00000002, 0x000001f0, 0x000001ec, 0x00000084,
4910 0x00000003, 0x00000210, 0x0000020c, 0x00000084, 0x00000004, 0x00000230, 0x0000022c, 0x00000084,
4911 0x00000005, 0x00000250, 0x0000024c, 0x00000084, 0x00000006, 0x00000270, 0x0000026c, 0x00000084,
4912 0x00000007, 0x00000290, 0x0000028c, 0x00000085, 0x00000000, 0x000002bc, 0x000002ac, 0x00000085,
4913 0x00000001, 0x000002e8, 0x000002d8, 0x00000085, 0x00000002, 0x00000314, 0x00000304, 0x00000085,
4914 0x00000003, 0x00000340, 0x00000330, 0x00000085, 0x00000004, 0x0000036c, 0x0000035c, 0x00000085,
4915 0x00000005, 0x00000398, 0x00000388, 0x00000085, 0x00000006, 0x000003c4, 0x000003b4, 0x00000085,
4916 0x00000007, 0x000003f0, 0x000003e0, 0x00000087, 0x00000000, 0x0000041c, 0x0000040c, 0x00000000,
4917 0x00000009, 0x00000000, 0x00000000, 0xffffffff, 0x00000018, 0x00000000, 0x0000016c, 0x46580200,
4918 0x003afffe, 0x42415443, 0x0000001c, 0x000000b3, 0x46580200, 0x00000003, 0x0000001c, 0x20000100,
4919 0x000000b0, 0x00000058, 0x00000002, 0x00000001, 0x00000060, 0x00000070, 0x00000080, 0x00010002,
4920 0x00000001, 0x00000088, 0x00000070, 0x00000098, 0x00020002, 0x00000001, 0x000000a0, 0x00000070,
4921 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
4922 0x00000000, 0x00000000, 0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
4923 0x6576706f, 0x00337463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x4d007874, 0x6f726369,
4924 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
4925 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
4927 0x001afffe, 0x434c5846,
4936 0x00000000, 0x00000002, 0x00000004,
4938 0x00000000, 0x00000002, 0x00000008,
4940 0x00000000, 0x00000004, 0x00000000,
4942 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
4944 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4946 0x00000000, 0x00000000, 0xffffffff, 0x00000017, 0x00000000, 0x00000114,
4947 0x46580200, 0x002ffffe, 0x42415443, 0x0000001c, 0x00000087, 0x46580200, 0x00000002, 0x0000001c,
4948 0x20000100, 0x00000084, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c,
4949 0x00010002, 0x00000001, 0x00000074, 0x0000005c, 0x6576706f, 0x00317463, 0x00030001, 0x00040001,
4950 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6576706f, 0x00327463,
4951 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820,
4952 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235,
4953 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
4955 0x000ffffe, 0x434c5846,
4958 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000,
4959 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
4961 0x00000000, 0x00000000, 0xffffffff,
4962 0x00000016, 0x00000000, 0x00000114, 0x46580200, 0x002ffffe, 0x42415443, 0x0000001c, 0x00000087,
4963 0x46580200, 0x00000002, 0x0000001c, 0x20000100, 0x00000084, 0x00000044, 0x00000002, 0x00000001,
4964 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002, 0x00000001, 0x00000074, 0x0000005c, 0x6576706f,
4965 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
4966 0x00000000, 0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x4d007874,
4967 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
4968 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe,
4969 0x434c5846, 0x00000001, 0x20500004, 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000,
4970 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
4971 0x00000000, 0x00000000, 0xffffffff, 0x00000015, 0x00000000, 0x00000114, 0x46580200, 0x002ffffe,
4972 0x42415443, 0x0000001c, 0x00000087, 0x46580200, 0x00000002, 0x0000001c, 0x20000100, 0x00000084,
4973 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002, 0x00000001,
4974 0x00000074, 0x0000005c, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
4975 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6576706f, 0x00327463, 0x00030001, 0x00040001,
4976 0x00000001, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c,
4977 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe,
4978 0x54494c43, 0x00000000, 0x000ffffe, 0x434c5846, 0x00000001, 0x20600004, 0x00000002, 0x00000000,
4979 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000000,
4980 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000014, 0x00000000,
4981 0x000000dc, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001,
4982 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048,
4983 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
4984 0x00000000, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c,
4985 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe,
4986 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10c00004, 0x00000001, 0x00000000,
4987 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
4988 0x00000000, 0x00000000, 0xffffffff, 0x00000013, 0x00000000, 0x000000dc, 0x46580200, 0x0024fffe,
4989 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058,
4990 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f, 0x00317463, 0x00030001,
4991 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4d007874,
4992 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
4993 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe,
4994 0x434c5846, 0x00000001, 0x10b00004, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000,
4995 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff,
4996 0x00000012, 0x00000000, 0x000000dc, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b,
4997 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001,
4998 0x00000038, 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
4999 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820,
5000 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235,
5001 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10a00004,
5002 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0,
5003 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000011, 0x00000000, 0x0000013c,
5004 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c,
5005 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f,
5006 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
5007 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
5008 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43,
5009 0x00000000, 0x0024fffe, 0x434c5846, 0x00000004, 0x10600001, 0x00000001, 0x00000000, 0x00000002,
5010 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x10600001, 0x00000001, 0x00000000, 0x00000002,
5011 0x00000001, 0x00000000, 0x00000004, 0x00000001, 0x10600001, 0x00000001, 0x00000000, 0x00000002,
5012 0x00000002, 0x00000000, 0x00000004, 0x00000002, 0x10600001, 0x00000001, 0x00000000, 0x00000002,
5013 0x00000003, 0x00000000, 0x00000004, 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000,
5014 0x00000000, 0xffffffff, 0x00000010, 0x00000000, 0x0000013c, 0x46580200, 0x0024fffe, 0x42415443,
5015 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030,
5016 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001,
5017 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4d007874, 0x6f726369,
5018 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
5019 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x0024fffe, 0x434c5846,
5020 0x00000004, 0x10500001, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004,
5021 0x00000000, 0x10500001, 0x00000001, 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000004,
5022 0x00000001, 0x10500001, 0x00000001, 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000004,
5023 0x00000002, 0x10500001, 0x00000001, 0x00000000, 0x00000002, 0x00000003, 0x00000000, 0x00000004,
5024 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
5034 unsigned int result_index;
5042 {
"exp", {0x3f800000, 0x3f800000, 0x3e5edc66, 0x7f800000}, 0, &
light.Diffuse.r,
5043 {0.0f, -0.0f, -2.2f, 3.402823466e+38f}, {1.0f, 2.0f, -3.0f, 4.0f}},
5044 {
"log", {0, 0x40000000, 0x3f9199b7, 0x43000000}, 1, &
light.Diffuse.r,
5045 {0.0f, 4.0f, -2.2f, 3.402823466e+38f}, {1.0f, 2.0f, -3.0f, 4.0f}},
5046 {
"asin", {0xbe9c00ad, 0xffc00000, 0xffc00000, 0xffc00000}, 2, &
light.Diffuse.r,
5047 {-0.3f, 4.0f, -2.2f, 3.402823466e+38f}, {1.0f, 2.0f, -3.0f, 4.0f}},
5048 {
"acos", {0x3ff01006, 0xffc00000, 0xffc00000, 0xffc00000}, 3, &
light.Diffuse.r,
5049 {-0.3f, 4.0f, -2.2f, 3.402823466e+38f}, {1.0f, 2.0f, -3.0f, 4.0f}},
5050 {
"atan", {0xbe9539d4, 0x3fa9b465, 0xbf927420, 0x3fc90fdb}, 4, &
light.Diffuse.r,
5051 {-0.3f, 4.0f, -2.2f, 3.402823466e+38f}, {1.0f, 2.0f, -3.0f, 4.0f}},
5052 {
"atan2 test #1", {0xbfc90fdb, 0x40490fdb, 0x80000000, 0x7fc00000}, 5, &
light.Diffuse.r,
5053 {-0.3f, 0.0f, -0.0f,
NAN}, {0.0f, -0.0f, 0.0f, 1.0f}},
5054 {
"atan2 test #2", {0xbfc90fdb, 0, 0xc0490fdb, 0}, 5, &
light.Diffuse.r,
5055 {-0.3f, 0.0f, -0.0f, -0.0f}, {-0.0f, 0.0f, -0.0f, 1.0f}},
5056 {
"div", {0, 0, 0, 0}, 7, &
light.Diffuse.r,
5057 {-0.3f, 0.0f, -2.2f,
NAN}, {0.0f, -0.0f, -3.0f, 1.0f}},
5058 {
"cmp", {0x40a00000, 0x40000000, 0x40400000, 0x41000000}, 0, &
light.Ambient.r,
5059 {-0.3f, 0.0f, 2.2f,
NAN}, {1.0f, 2.0f, 3.0f, 4.0f}, {5.0f, 6.0f, 7.0f, 8.0f}},
5060 {
"0 * INF", {0xffc00000, 0xffc00000, 0xc0d33334, 0x7f800000}, 6, &
light.Diffuse.r,
5063 unsigned int i,
j, passes_count;
5064 ID3DXEffect *effect;
5070 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
5072 hr = effect->lpVtbl->BeginPass(effect, 0);
5077 const float *
result = op_tests[
i].result;
5080 hr = effect->lpVtbl->SetVector(effect,
"opvect1", &op_tests[
i].opvect1);
5082 hr = effect->lpVtbl->SetVector(effect,
"opvect2", &op_tests[
i].opvect2);
5084 hr = effect->lpVtbl->SetVector(effect,
"opvect3", &op_tests[
i].opvect3);
5086 hr = effect->lpVtbl->CommitChanges(effect);
5091 for (
j = 0;
j < 4; ++
j)
5095 "Operation %s, component %u, expected %#x (%.8e), got %#x (%.8e).\n", op_tests[
i].mnem,
5101 hr = effect->lpVtbl->End(effect);
5103 effect->lpVtbl->Release(effect);
5111 unsigned int i, child_count;
5114 hr = effect->lpVtbl->GetParameterDesc(effect,
param, &
desc);
5115 ok_(__FILE__,
line)(
hr ==
D3D_OK,
"GetParameterDesc failed, result %#x.\n",
hr);
5116 child_count =
desc.Elements ?
desc.Elements :
desc.StructMembers;
5117 for (
i = 0;
i < child_count; ++
i)
5119 param_child =
desc.Elements ? effect->lpVtbl->GetParameterElement(effect,
param,
i)
5120 : effect->lpVtbl->GetParameter(effect,
param,
i);
5121 ok_(__FILE__,
line)(!!param_child,
"Failed getting child parameter %s[%u].\n",
desc.Name,
i);
5122 ok_(__FILE__,
line)(!effect->lpVtbl->IsParameterUsed(effect, param_child, tech),
5123 "Unexpected IsParameterUsed() result for %s[%u].\n",
desc.Name,
i);
5129#define test_isparameterused_param_with_children(...) \
5130 test_isparameterused_param_with_children_(__LINE__, __VA_ARGS__)
5132#define test_isparameterused_param_with_children(args...) \
5133 test_isparameterused_param_with_children_(__LINE__, args)
5141 ==
expected_result,
"Unexpected IsParameterUsed() result for %s (referenced by name).\n",
name);
5144 param = effect2->lpVtbl->GetParameterByName(effect2,
NULL,
name);
5146 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
name);
5150 "Unexpected IsParameterUsed() result for %s (referenced by handle).\n",
name);
5162 check_parameters[] =
5166 {
"g_Selector",
TRUE},
5173 {
"vect_sampler",
TRUE},
5181 ID3DXEffect *effect, *effect2;
5190 tech = effect->lpVtbl->GetTechniqueByName(effect,
"tech0");
5191 ok(!!tech,
"GetTechniqueByName failed.\n");
5205 effect2->lpVtbl->Release(effect2);
5212 effect2->lpVtbl->Release(effect2);
5214 effect->lpVtbl->Release(effect);
5219 ID3DXEffect *effect;
5223 unsigned int passes_count;
5224 IDirect3DVertexShader9 *vshader;
5229 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
5232 ivect[0] = ivect[1] = ivect[3] = 1;
5234 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_iVect");
5235 ok(!!
param,
"GetParameterByName failed.\n");
5237 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5240 hr = effect->lpVtbl->BeginPass(effect, 0);
5242 hr = effect->lpVtbl->EndPass(effect);
5248 hr = effect->lpVtbl->BeginPass(effect, 1);
5253 hr = effect->lpVtbl->BeginPass(effect, 1);
5260 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5264 hr = effect->lpVtbl->CommitChanges(effect);
5267 hr = effect->lpVtbl->EndPass(effect);
5270 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5274 hr = effect->lpVtbl->BeginPass(effect, 1);
5276 hr = effect->lpVtbl->BeginPass(effect, 1);
5282 hr = effect->lpVtbl->EndPass(effect);
5284 hr = effect->lpVtbl->End(effect);
5286 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
5288 hr = effect->lpVtbl->BeginPass(effect, 1);
5291 hr = effect->lpVtbl->EndPass(effect);
5299 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5302 hr = effect->lpVtbl->BeginPass(effect, 1);
5307 ok(!vshader,
"Got non NULL vshader.\n");
5309 hr = effect->lpVtbl->BeginPass(effect, 1);
5314 hr = effect->lpVtbl->EndPass(effect);
5318 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5321 hr = effect->lpVtbl->BeginPass(effect, 1);
5330 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5332 hr = effect->lpVtbl->CommitChanges(effect);
5337 ok(!vshader,
"Got non NULL vshader.\n");
5340 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5342 hr = effect->lpVtbl->CommitChanges(effect);
5347 ok(!vshader,
"Got non NULL vshader.\n");
5350 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5352 hr = effect->lpVtbl->CommitChanges(effect);
5357 hr = effect->lpVtbl->EndPass(effect);
5360 hr = effect->lpVtbl->End(effect);
5363 effect->lpVtbl->Release(effect);
5370 const char *param_name;
5373 check_op_parameters[] =
5393 const char *param_name;
5397 check_vconsts_parameters[] =
5399 {
"g_Selector", {0x00000000, 0x00000002}},
5400 {
"g_Pos1", {0x80000000, 0x00000002}},
5401 {
"g_Pos2", {0x00000000, 0x00000002}},
5402 {
"m4x3column", {0x03800000, 0x00000000}},
5403 {
"m3x4column", {0x000f0000, 0x00000000}},
5404 {
"m4x3row", {0x0000f000, 0x00000000}},
5405 {
"m3x4row", {0x00700000, 0x00000000}},
5406 {
"ts1", {0x1c000000, 0x00000000}},
5407 {
"ts2", {0x0000003f, 0x00000000}},
5408 {
"arr1", {0x00000000, 0x00000001}},
5409 {
"arr2", {0x60000000, 0x00000000}},
5410 {
"ts3", {0x00000fc0, 0x00000000}},
5414 const char *param_name;
5418 check_bconsts_parameters[] =
5420 {
"mb2x3row", {0x0000001f}},
5421 {
"mb2x3column", {0x00000060}},
5427 ID3DXEffect *effect;
5430 unsigned int i, passes_count,
value;
5433 IDirect3DVertexShader9 *vshader;
5434 unsigned char buffer[256];
5441 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_iVect");
5442 ok(!!
param,
"GetParameterByName failed.\n");
5444 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
5450 hr = effect->lpVtbl->BeginPass(effect, 0);
5457 for (
j = 0;
j < 8; ++
j)
5462 param = effect->lpVtbl->GetParameterByName(effect,
NULL, check_op_parameters[
i].param_name);
5463 ok(!!
param,
"Failed to get parameter (test %u).\n",
i);
5464 hr = effect->lpVtbl->GetValue(effect,
param, &fvect,
sizeof(fvect));
5465 ok(
hr ==
D3D_OK,
"Failed to get parameter value, hr %#x (test %u).\n",
hr,
i);
5466 hr = effect->lpVtbl->SetValue(effect,
param, &fvect,
sizeof(fvect));
5467 ok(
hr ==
D3D_OK,
"Failed to set parameter value, hr %#x (test %u).\n",
hr,
i);
5468 hr = effect->lpVtbl->CommitChanges(effect);
5469 ok(
hr ==
D3D_OK,
"Failed to commit changes, hr %#x (test %u).\n",
hr,
i);
5472 check_op_parameters[
i].param_name);
5478 param = effect->lpVtbl->GetParameterByName(effect,
NULL, check_vconsts_parameters[
i].param_name);
5479 ok(!!
param,
"GetParameterByName failed.\n");
5484 hr = effect->lpVtbl->CommitChanges(effect);
5488 check_vconsts_parameters[
i].param_name);
5494 param = effect->lpVtbl->GetParameterByName(effect,
NULL, check_bconsts_parameters[
i].param_name);
5495 ok(!!
param,
"GetParameterByName failed.\n");
5500 hr = effect->lpVtbl->CommitChanges(effect);
5504 check_bconsts_parameters[
i].param_name);
5508 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_Selector");
5509 ok(!!
param,
"GetParameterByName failed.\n");
5510 fvect.
x = fvect.
y = fvect.
z = fvect.
w = 0.0f;
5511 hr = effect->lpVtbl->SetVectorArray(effect,
param, &fvect, 1);
5513 hr = effect->lpVtbl->CommitChanges(effect);
5516 check_vconsts_parameters[0].param_name);
5519 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"arr2");
5520 ok(!!
param,
"GetParameterByName failed.\n");
5521 param = effect->lpVtbl->GetParameterElement(effect,
param, 0);
5522 ok(!!
param,
"GetParameterElement failed.\n");
5523 hr = effect->lpVtbl->SetFloat(effect,
param, 92.0f);
5525 hr = effect->lpVtbl->CommitChanges(effect);
5528 check_vconsts_parameters[10].param_name);
5531 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"arr2");
5532 ok(!!
param,
"GetParameterByName failed.\n");
5533 param = effect->lpVtbl->GetParameterElement(effect,
param, 1);
5534 ok(!!
param,
"GetParameterElement failed.\n");
5536 hr = effect->lpVtbl->SetValue(effect,
param, &fvect.
x,
sizeof(fvect.
x));
5538 hr = effect->lpVtbl->CommitChanges(effect);
5541 check_vconsts_parameters[10].param_name);
5544 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"arr2");
5545 ok(!!
param,
"GetParameterByName failed.\n");
5547 hr = effect->lpVtbl->SetFloatArray(effect,
param, &fvect.
x, 1);
5549 hr = effect->lpVtbl->CommitChanges(effect);
5552 check_vconsts_parameters[10].param_name);
5555 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"arr2");
5556 ok(!!
param,
"GetParameterByName failed.\n");
5557 param = effect->lpVtbl->GetParameterElement(effect,
param, 1);
5558 ok(!!
param,
"GetParameterElement failed.\n");
5559 hr = effect->lpVtbl->SetInt(effect,
param, 93);
5561 hr = effect->lpVtbl->CommitChanges(effect);
5564 check_vconsts_parameters[10].param_name);
5567 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_Pos1");
5568 ok(!!
param,
"GetParameterByName failed.\n");
5569 fvect.
x = fvect.
y = fvect.
z = fvect.
w = 0.0f;
5570 hr = effect->lpVtbl->SetVector(effect,
param, &fvect);
5572 hr = effect->lpVtbl->CommitChanges(effect);
5575 check_vconsts_parameters[1].param_name);
5578 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"ts1");
5579 ok(!!
param,
"GetParameterByName failed.\n");
5580 param = effect->lpVtbl->GetParameterElement(effect,
param, 0);
5581 ok(!!
param,
"GetParameterByName failed.\n");
5582 param = effect->lpVtbl->GetParameterByName(effect,
param,
"fv");
5583 ok(!!
param,
"GetParameterByName failed.\n");
5585 hr = effect->lpVtbl->SetValue(effect,
param, &fvect.
x,
sizeof(
float));
5587 hr = effect->lpVtbl->CommitChanges(effect);
5590 check_vconsts_parameters[7].param_name);
5592 *(
float *)&
value = 9999.0f;
5602 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"ts2");
5603 ok(!!
param,
"GetParameterByName failed.\n");
5604 param = effect->lpVtbl->GetParameterElement(effect,
param, 0);
5605 ok(!!
param,
"GetParameterByName failed.\n");
5606 param = effect->lpVtbl->GetParameterByName(effect,
param,
"v1");
5607 ok(!!
param,
"GetParameterByName failed.\n");
5608 hr = effect->lpVtbl->GetValue(effect,
param, &fvect,
sizeof(
float) * 3);
5610 hr = effect->lpVtbl->SetValue(effect,
param, &fvect,
sizeof(
float) * 3);
5612 hr = effect->lpVtbl->CommitChanges(effect);
5616 ok(
value == 0,
"Unexpected fog density %g.\n", *(
float *)&
value);
5619 ok(*(
float *)&
value == 4.0f,
"Unexpected fog start %g.\n", *(
float *)&
value);
5622 ok(*(
float *)&
value == 9999.0f,
"Unexpected point scale A %g.\n", *(
float *)&
value);
5625 ok(*(
float *)&
value == 9999.0f,
"Unexpected point scale B %g.\n", *(
float *)&
value);
5627 check_vconsts_parameters[8].param_name);
5629 *(
float *)&
value = 9999.0f;
5639 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"ts3");
5640 ok(!!
param,
"GetParameterByName failed.\n");
5641 param = effect->lpVtbl->GetParameterByName(effect,
param,
"ts");
5642 ok(!!
param,
"GetParameterByName failed.\n");
5643 param = effect->lpVtbl->GetParameterElement(effect,
param, 1);
5644 ok(!!
param,
"GetParameterByName failed.\n");
5645 param = effect->lpVtbl->GetParameterByName(effect,
param,
"fv");
5646 ok(!!
param,
"GetParameterByName failed.\n");
5647 hr = effect->lpVtbl->GetValue(effect,
param, &fvect.
x,
sizeof(
float));
5649 hr = effect->lpVtbl->SetValue(effect,
param, &fvect.
x,
sizeof(
float));
5651 hr = effect->lpVtbl->CommitChanges(effect);
5655 ok(*(
float *)&
value == 9999.0f,
"Unexpected fog density %g.\n", *(
float *)&
value);
5658 ok(*(
float *)&
value == 9999.0f,
"Unexpected fog start %g.\n", *(
float *)&
value);
5661 ok(*(
float *)&
value == 4.0f,
"Unexpected point scale A %g.\n", *(
float *)&
value);
5664 ok(*(
float *)&
value == 12.0f,
"Unexpected point scale B %g.\n", *(
float *)&
value);
5666 check_vconsts_parameters[11].param_name);
5670 ok(
value == 1,
"Unexpected sampler 0 minfilter %u.\n",
value);
5674 ok(
value == 0,
"Unexpected sampler 1 minfilter %u.\n",
value);
5677 ok(
value == 3,
"Unexpected sampler 2 minfilter %u.\n",
value);
5679 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_iVect");
5680 ok(!!
param,
"GetParameterByName failed.\n");
5681 ivect[0] = ivect[1] = ivect[2] = ivect[3] = 1;
5682 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5685 for (
i = 0;
i < 3; ++
i)
5702 hr = effect->lpVtbl->CommitChanges(effect);
5707 ok(!vshader,
"Got non NULL vshader.\n");
5709 "selector g_iVect");
5713 ok(
value == 0,
"Unexpected sampler 0 minfilter %u.\n",
value);
5716 ok(
value == 0,
"Unexpected sampler 1 minfilter %u.\n",
value);
5720 ok(
value == 1,
"Unexpected sampler 2 minfilter %u.\n",
value);
5723 ok(
value == 0,
"Unexpected sampler 2 minfilter %u.\n",
value);
5726 ok(
value == 1,
"Unexpected sampler 0 minfilter %u.\n",
value);
5729 ok(
value == 0,
"Unexpected sampler 0 minfilter %u.\n",
value);
5732 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5735 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5737 hr = effect->lpVtbl->CommitChanges(effect);
5741 ok(!vshader,
"Got non NULL vshader.\n");
5743 "selector g_iVect");
5745 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5747 hr = effect->lpVtbl->CommitChanges(effect);
5751 ok(!!vshader,
"Got NULL vshader.\n");
5755 ok(fvect.
x == 0.0f && fvect.
y == 0.0f && fvect.
z == 0.0f && fvect.
w == 0.0f,
5756 "Vertex shader float constants do not match.\n");
5760 "selector g_iVect");
5762 hr = effect->lpVtbl->SetValue(effect,
param, ivect,
sizeof(ivect));
5764 hr = effect->lpVtbl->CommitChanges(effect);
5768 hr = effect->lpVtbl->EndPass(effect);
5771 hr = effect->lpVtbl->End(effect);
5774 effect->lpVtbl->Release(effect);
5785 test_out_of_bounds_index[] =
5787 {{1.0f, 2.0f, 3.0f, 4.0f}, {101.0f, 101.0f, 101.0f, 101.0f}, {0, 0x42ca0000, 0x3f800000, 0}},
5788 {{1.0f, 2.0f, 3.0f, 4.0f}, {3333.0f, 1094.0f, 2222.0f, 3333.0f},
5789 {0x447ac000, 0x45505000, 0x3f800000, 0}},
5790 {{1.0f, 2.0f, 3.0f, 4.0f}, {3333.0f, 1094.0f, 2222.0f, 1.0f},
5791 {0x447ac000, 0x3f800000, 0x447a8000, 0x453b9000}},
5792 {{1.0f, 2.0f, 3.0f, 4.0f}, {1.0f, 1094.0f, 2222.0f, 3333.0f},
5793 {0x447ac000, 0x45505000, 0x3f800000, 0x453ba000}},
5794 {{1.0f, 2.0f, 3.0f, 4.0f}, {1111.0f, 1094.0f, 2222.0f, 1111.0f},
5795 {0x447ac000, 0x448ae000, 0, 0}},
5796 {{1.0f, 2.0f, 3.0f, 4.0f}, {1111.0f, 1094.0f, 2222.0f, 3333.0f},
5797 {0x447ac000, 0x45505000, 0x3f800000, 0}},
5798 {{-1111.0f, 1094.0f, -2222.0f, -3333.0f}, {4.0f, 3.0f, 2.0f, 1.0f},
5799 {0x447ac000, 0x40800000, 0x447a8000, 0x453b9000}},
5800 {{1.0f, 2.0f, 3.0f, 4.0f}, {-1.0f, -1.0f, -1.0f, -1.0f}, {0, 0xbf800000, 0, 0}},
5801 {{1.0f, 2.0f, 3.0f, 4.0f}, {-2.0f, -2.0f, -2.0f, -2.0f}, {0, 0xc0000000, 0x459c4800, 0}},
5802 {{1.0f, 2.0f, 3.0f, 4.0f}, {-3.0f, -3.0f, -3.0f, -3.0f}, {0, 0xc0400000, 0x453b9000, 0}},
5803 {{1.0f, 2.0f, 3.0f, 4.0f}, {-4.0f, -4.0f, -4.0f, -4.0f}, {0, 0xc0800000, 0x44fa2000, 0}},
5804 {{1.0f, 2.0f, 3.0f, 4.0f}, {-5.0f, -5.0f, -5.0f, -5.0f}, {0, 0xc0a00000, 0x459c5000, 0}},
5805 {{1.0f, 2.0f, 3.0f, 4.0f}, {-6.0f, -6.0f, -6.0f, -6.0f}, {0, 0xc0c00000, 0x453ba000, 0xc1400000}},
5806 {{1.0f, 2.0f, 3.0f, 4.0f}, {-7.0f, -7.0f, -7.0f, -7.0f}, {0, 0xc0e00000, 0x44fa4000, 0x40400000}},
5807 {{1.0f, 2.0f, 3.0f, 4.0f}, {-8.0f, -8.0f, -8.0f, -8.0f}, {0, 0xc1000000, 0, 0x44fa6000}},
5808 {{1.0f, 2.0f, 3.0f, 4.0f}, {-9.0f, -9.0f, -9.0f, -9.0f}, {0, 0xc1100000, 0, 0}},
5809 {{1.0f, 2.0f, 3.0f, 4.0f}, {-10.0f, -10.0f, -10.0f, -10.0f}, {0, 0xc1200000, 0xc1200000, 0}},
5810 {{1.0f, 2.0f, 3.0f, 4.0f}, {-11.0f, -11.0f, -11.0f, -11.0f}, {0, 0xc1300000, 0x3f800000, 0}},
5811 {{1.0f, 2.0f, 3.0f, 4.0f}, {-12.0f, -12.0f, -12.0f, -12.0f}, {0, 0xc1400000, 0x447a4000, 0}},
5812 {{1.0f, 2.0f, 3.0f, 4.0f}, {5.0f, 5.0f, 5.0f, 5.0f}, {0, 0x40a00000, 0x3f800000, 0}},
5813 {{1.0f, 2.0f, 3.0f, 4.0f}, {-1111.0f, 1094.0f, -2222.0f, -3333.0f},
5814 {0x447ac000, 0xc5505000, 0x459c5000, 0x40000000}},
5815 {{1.0f, 2.0f, 3.0f, 4.0f}, {-3333.0f, 1094.0f, -2222.0f, -1111.0f},
5816 {0x447ac000, 0xc48ae000, 0x44fa4000, 0x3f800000}},
5817 {{1.0f, 2.0f, 3.0f, 4.0f}, {-3333.0f, 1094.0f, -2222.0f, -3333.0f},
5818 {0x447ac000, 0xc5505000, 0x459c5000, 0}},
5819 {{1.0f, 2.0f, 3.0f, 4.0f}, {-1111.0f, 1094.0f, -2222.0f, -1111.0f},
5820 {0x447ac000, 0xc48ae000, 0x44fa4000, 0x40400000}},
5826 expected_light_specular[] =
5829 {{0x447a8000, 0x453b9000}},
5830 {{0x40000000, 0x459c4800}},
5837 {{0x44fa4000, 0x3f800000}},
5838 {{0x453ba000, 0xbf800000}},
5850 test_index_to_immediate_table[] =
5852 {-1000000, {0, 0x40800000, 0x45bbd800, 0x41300000}},
5853 {-1001, {0x448d4000, 0x41300000, 0, 0}},
5854 {-32, {0x448d4000, 0x40800000, 0, 0}},
5855 {-31, {0x45843000, 0x41400000, 0, 0}},
5856 {-30, {0x46a64000, 0x41400000, 0x447a4000, 0x3f800000}},
5857 {-29, {0, 0x447a4000, 0x447a8000, 0x40000000}},
5858 {-28, {0, 0, 0x447ac000, 0x40400000}},
5859 {-27, {0, 0x3f800000, 0, 0}},
5860 {-26, {0, 0x41100000, 0x45bbd800, 0x41300000}},
5861 {-25, {0, 0x41300000, 0, 0}},
5862 {-24, {0, 0x41600000, 0, 0}},
5863 {-23, {0, 0, 0, 0}},
5864 {-22, {0, 0, 0, 0}},
5865 {-21, {0, 0x40a00000, 0, 0}},
5866 {-20, {0, 0x41500000, 0, 0}},
5867 {-19, {0, 0x41500000, 0, 0}},
5868 {-18, {0, 0xc1900000, 0, 0}},
5869 {-17, {0, 0, 0, 0}},
5870 {-16, {0, 0x40800000, 0, 0}},
5871 {-15, {0, 0x41400000, 0, 0}},
5872 {-14, {0, 0x41400000, 0, 0}},
5873 {-13, {0, 0x447a4000, 0x447a4000, 0x3f800000}},
5874 {-12, {0, 0, 0, 0}},
5875 {-11, {0, 0x3f800000, 0, 0}},
5876 {-10, {0, 0x41100000, 0, 0}},
5877 {-9, {0, 0x41300000, 0, 0}},
5878 {-8, {0, 0x41600000, 0, 0}},
5881 {-5, {0, 0x40a00000, 0, 0}},
5882 {-4, {0, 0x41500000, 0, 0}},
5883 {-3, {0, 0x41500000, 0, 0}},
5884 {-2, {0, 0xc0000000, 0, 0}},
5886 {0, {0x45052000, 0x40800000, 0x447a4000, 0x3f800000}},
5887 {1, {0x467e6000, 0x41400000, 0x447a8000, 0x40000000}},
5888 {2, {0, 0x41400000, 0x447ac000, 0x40400000}},
5889 {3, {0, 0x447a4000, 0, 0}},
5890 {4, {0, 0, 0x45bbd800, 0x41300000}},
5891 {5, {0, 0x3f800000, 0, 0}},
5892 {6, {0, 0x41100000, 0, 0}},
5893 {7, {0, 0x41300000, 0, 0}},
5894 {8, {0, 0x41600000, 0, 0}},
5897 {11, {0, 0x40a00000, 0, 0}},
5898 {12, {0, 0x41500000, 0, 0}},
5899 {13, {0, 0x41500000, 0, 0}},
5900 {14, {0, 0x41600000, 0, 0}},
5902 {16, {0, 0x40800000, 0, 0}},
5903 {17, {0x45052000, 0x41400000, 0x447a4000, 0x3f800000}},
5904 {18, {0x467e6000, 0x41400000, 0x447a8000, 0x40000000}},
5905 {19, {0, 0x447a4000, 0x447ac000, 0x40400000}},
5907 {21, {0, 0x3f800000, 0x45bbd800, 0x41300000}},
5908 {22, {0, 0x41100000, 0, 0}},
5909 {23, {0, 0x41300000, 0, 0}},
5910 {24, {0, 0x41600000, 0, 0}},
5913 {27, {0, 0x40a00000, 0, 0}},
5914 {28, {0, 0x41500000, 0, 0}},
5915 {29, {0, 0x41500000, 0, 0}},
5916 {30, {0, 0x41f00000, 0, 0}},
5918 {1001, {0, 0, 0, 0}},
5919 {1000000, {0, 0x40800000, 0, 0}},
5922 {1.0f, 1.0f, 1.0f, 1.0f}};
5923 unsigned int j, passes_count;
5925 const float *expected_float;
5926 ID3DXEffect *effect;
5937 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
5939 hr = effect->lpVtbl->BeginPass(effect, 0);
5942 fvect.
x = 1001.0f; fvect.
y = 1002.0f; fvect.
z = 1003.0f; fvect.
w = 1004.0f;
5943 hr = effect->lpVtbl->SetVector(effect,
"opvect1", &fvect);
5946 fvect.
x = 2001.0f; fvect.
y = 2002.0f; fvect.
z = 2003.0f; fvect.
w = 2004.0f;
5947 hr = effect->lpVtbl->SetVector(effect,
"g_Selector[0]", &fvect);
5950 fvect.
x = 3001.0f; fvect.
y = 3002.0f; fvect.
z = 3003.0f; fvect.
w = 3004.0f;
5951 hr = effect->lpVtbl->SetVector(effect,
"g_Selector[1]", &fvect);
5957 hr = effect->lpVtbl->SetVector(effect,
"opvect2", &test_out_of_bounds_index[
i].opvect2);
5959 hr = effect->lpVtbl->SetVector(effect,
"g_iVect", &test_out_of_bounds_index[
i].g_ivect);
5965 hr = effect->lpVtbl->CommitChanges(effect);
5971 expected = test_out_of_bounds_index[
i].expected;
5972 expected_float = (
const float *)
expected;
5974 for (
j = 0;
j < 4; ++
j)
5977 "Test %d, component %u, expected %#x (%g), got %#x (%g).\n",
5982 hr = effect->lpVtbl->SetVector(effect,
"opvect2", &test_out_of_bounds_index[7].opvect2);
5984 hr = effect->lpVtbl->SetVector(effect,
"g_iVect", &test_out_of_bounds_index[7].g_ivect);
5990 fvect = test_out_of_bounds_index[7].g_ivect;
5992 for (
i = -100;
i < 100; ++
i)
5995 hr = effect->lpVtbl->SetVector(effect,
"g_iVect", &fvect);
5997 hr = effect->lpVtbl->CommitChanges(effect);
6004 expected_float = (
const float *)
expected;
6006 for (
j = 0;
j < 2; ++
j)
6009 "i %d, component %u, expected %#x (%g), got %#x (%g).\n",
6010 i,
j + 2,
expected[
j], expected_float[
j], ((
const unsigned int *)
v)[
j],
v[
j]);
6015 for (
i = 0;
i <
ARRAY_SIZE(test_index_to_immediate_table); ++
i)
6017 fvect.
x = fvect.
y = fvect.
z = fvect.
w = test_index_to_immediate_table[
i].index_value;
6018 hr = effect->lpVtbl->SetVector(effect,
"g_iVect", &fvect);
6020 hr = effect->lpVtbl->CommitChanges(effect);
6026 expected = test_index_to_immediate_table[
i].expected;
6027 expected_float = (
const float *)
expected;
6029 for (
j = 0;
j < 4; ++
j)
6032 "Test %d, component %u, expected %#x (%g), got %#x (%g).\n",
6037 hr = effect->lpVtbl->EndPass(effect);
6039 hr = effect->lpVtbl->End(effect);
6042 effect->lpVtbl->Release(effect);
6063#define INITIAL_UPDATE_RECORD_SIZE 64
6099 unsigned int state_op,
DWORD param1,
DWORD param2)
6192 struct IDirect3DVertexShader9 *
shader)
6198 UINT register_index,
const FLOAT *constant_data,
UINT register_count)
6204 UINT register_index,
const INT *constant_data,
UINT register_count)
6210 UINT register_index,
const BOOL *constant_data,
UINT register_count)
6216 struct IDirect3DPixelShader9 *
shader)
6222 UINT register_index,
const FLOAT *constant_data,
UINT register_count)
6228 UINT register_index,
const INT *constant_data,
UINT register_count)
6234 UINT register_index,
const BOOL *constant_data,
UINT register_count)
6240 IDirect3DDevice9 *
device)
6242 static const struct ID3DXEffectStateManagerVtbl test_ID3DXEffectStateManager_Vtbl =
6270 state_manager->
ref = 1;
6284 "SetTextureStageState",
6289 "SetVertexShaderConstantF",
6290 "SetVertexShaderConstantI",
6291 "SetVertexShaderConstantB",
6293 "SetPixelShaderConstantF",
6294 "SetPixelShaderConstantI",
6295 "SetPixelShaderConstantB",
6303 if (
r1->state_op !=
r2->state_op)
6304 return r1->state_op -
r2->state_op;
6305 if (
r1->param1 !=
r2->param1)
6306 return r1->param1 -
r2->param1;
6307 return r1->param2 -
r2->param2;
6355 {
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}};
6357 unsigned int passes_count,
i,
n;
6358 ID3DXEffect *effect;
6365 for (
i = 0;
i < 8; ++
i)
6378 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
6381 hr = effect->lpVtbl->BeginPass(effect, 0);
6384 hr = effect->lpVtbl->EndPass(effect);
6387 hr = effect->lpVtbl->End(effect);
6390 effect->lpVtbl->Release(effect);
6398 for (
i = 0;
i <
n; ++
i)
6401 sizeof(expected_updates[
i])),
6402 "Update record mismatch, expected %s, %u, %u, got %s, %u, %u.\n",
6409 for (
i = 0;
i < 8; ++
i)
6420 ok(!refcount,
"State manager was not properly freed, refcount %u.\n", refcount);
6425 ID3DXEffect *effect1, *effect2;
6427 static int expected_ivect[4] = {28, 29, 30, 31};
6438 ok(effect1 != effect2,
"Got same effect unexpectedly.\n");
6440 param1 = effect1->lpVtbl->GetParameterByName(effect1,
NULL,
"g_iVect");
6441 ok(!!param1,
"GetParameterByName failed.\n");
6443 param2 = effect2->lpVtbl->GetParameterByName(effect2,
NULL,
"g_iVect");
6444 ok(!!param2,
"GetParameterByName failed.\n");
6446 ok(param1 != param2,
"Got same parameter handle unexpectedly.\n");
6448 hr = effect2->lpVtbl->SetValue(effect2, param1, expected_ivect,
sizeof(expected_ivect));
6451 hr = effect1->lpVtbl->GetValue(effect1, param1, ivect,
sizeof(ivect));
6454 ok(!
memcmp(ivect, expected_ivect,
sizeof(expected_ivect)),
"Vector value mismatch.\n");
6456 effect2->lpVtbl->Release(effect2);
6457 effect1->lpVtbl->Release(effect1);
6468shared
float arr2[1];
6469shared test_struct ts2[2] = {{{0, 0, 0}, 0, {0, 0, 0, 0}}, {{1, 2, 3}, 4, {5, 6, 7, 8}}};
6476VS_OUTPUT RenderSceneVS(float4 vPos :
POSITION)
6480 Output.Position = arr2[0] * vPos;
6491 FogDensity = arr2[0];
6492 PointScale_A = ts2[0].fv_2;
6493 VertexShader = vs_arr2[0];
6498 VertexShader = vs_arr2[1];
6504 0xfeff0901, 0x000001dc, 0x00000000, 0x00000003, 0x00000000, 0x00000024, 0x00000000, 0x00000001,
6505 0x00000001, 0x00000001, 0x00000000, 0x00000005, 0x32727261, 0x00000000, 0x00000000, 0x00000005,
6506 0x000000dc, 0x00000000, 0x00000002, 0x00000003, 0x00000003, 0x00000001, 0x000000e4, 0x00000000,
6507 0x00000000, 0x00000003, 0x00000001, 0x00000003, 0x00000000, 0x000000f0, 0x00000000, 0x00000000,
6508 0x00000001, 0x00000001, 0x00000003, 0x00000001, 0x000000fc, 0x00000000, 0x00000000, 0x00000004,
6509 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
6510 0x00000000, 0x3f800000, 0x40000000, 0x40400000, 0x40800000, 0x40a00000, 0x40c00000, 0x40e00000,
6511 0x41000000, 0x00000004, 0x00327374, 0x00000005, 0x325f3176, 0x00000000, 0x00000005, 0x325f7666,
6512 0x00000000, 0x00000005, 0x325f3276, 0x00000000, 0x00000010, 0x00000004, 0x00000124, 0x00000000,
6513 0x00000002, 0x00000001, 0x00000002, 0x00000008, 0x615f7376, 0x00327272, 0x00000001, 0x00000002,
6514 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003,
6515 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003,
6516 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000003, 0x00000010,
6517 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00003070, 0x00000004, 0x00000010,
6518 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00003170, 0x00000006, 0x68636574,
6519 0x00000030, 0x00000003, 0x00000001, 0x00000006, 0x00000005, 0x00000004, 0x00000020, 0x00000001,
6520 0x00000000, 0x00000030, 0x0000009c, 0x00000001, 0x00000000, 0x00000108, 0x0000011c, 0x00000001,
6521 0x00000000, 0x000001d0, 0x00000000, 0x00000002, 0x000001a8, 0x00000000, 0x00000004, 0x0000000e,
6522 0x00000000, 0x00000134, 0x00000130, 0x00000014, 0x00000000, 0x00000154, 0x00000150, 0x00000041,
6523 0x00000000, 0x00000174, 0x00000170, 0x00000092, 0x00000000, 0x00000194, 0x00000190, 0x000001c8,
6524 0x00000000, 0x00000001, 0x00000092, 0x00000000, 0x000001b4, 0x000001b0, 0x00000002, 0x00000004,
6525 0x00000001, 0x000000c8, 0xfffe0300, 0x0025fffe, 0x42415443, 0x0000001c, 0x0000005f, 0xfffe0300,
6526 0x00000001, 0x0000001c, 0x00000000, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038,
6527 0x00000048, 0x32727261, 0xababab00, 0x00030000, 0x00010001, 0x00000001, 0x00000000, 0x00000000,
6528 0x00000000, 0x00000000, 0x00000000, 0x335f7376, 0x4d00305f, 0x6f726369, 0x74666f73, 0x29522820,
6529 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235,
6530 0x00313131, 0x0200001f, 0x80000000, 0x900f0000, 0x0200001f, 0x80000000, 0xe00f0000, 0x03000005,
6531 0xe00f0000, 0xa0000000, 0x90e40000, 0x0000ffff, 0x00000002, 0x00000000, 0x00000000, 0x00000001,
6532 0xffffffff, 0x00000000, 0x00000001, 0x0000000b, 0x615f7376, 0x5b327272, 0x00005d31, 0x00000000,
6533 0x00000000, 0xffffffff, 0x00000003, 0x00000001, 0x0000000b, 0x615f7376, 0x5b327272, 0x00005d30,
6534 0x00000000, 0x00000000, 0xffffffff, 0x00000002, 0x00000000, 0x00000188, 0x46580200, 0x004ffffe,
6535 0x42415443, 0x0000001c, 0x00000107, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000104,
6536 0x00000030, 0x00000002, 0x00000002, 0x00000094, 0x000000a4, 0x00327374, 0x325f3176, 0xababab00,
6537 0x00030001, 0x00030001, 0x00000001, 0x00000000, 0x325f7666, 0xababab00, 0x00030000, 0x00010001,
6538 0x00000001, 0x00000000, 0x325f3276, 0xababab00, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
6539 0x00000034, 0x0000003c, 0x0000004c, 0x00000054, 0x00000064, 0x0000006c, 0x00000005, 0x00080001,
6540 0x00030002, 0x0000007c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
6541 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x40000000,
6542 0x40400000, 0x00000000, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x40a00000, 0x40c00000,
6543 0x40e00000, 0x41000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c,
6544 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe,
6545 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000,
6546 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
6547 0x00000000, 0x00000000, 0xffffffff, 0x00000001, 0x00000000, 0x000000dc, 0x46580200, 0x0024fffe,
6548 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058,
6549 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x32727261, 0xababab00, 0x00030000,
6550 0x00010001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4d007874,
6551 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
6552 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe,
6553 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000,
6554 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
6558#define test_effect_shared_vs_arr_compare_helper(...) \
6559 test_effect_shared_vs_arr_compare_helper_(__LINE__, __VA_ARGS__)
6561#define test_effect_shared_vs_arr_compare_helper(args...) \
6562 test_effect_shared_vs_arr_compare_helper_(__LINE__, args)
6565 D3DXHANDLE param_child,
struct IDirect3DVertexShader9 *vshader1,
unsigned int element,
6568 struct IDirect3DVertexShader9 *vshader2;
6572 param_child2 = effect->lpVtbl->GetParameterElement(effect,
"vs_arr2",
element);
6573 ok_(__FILE__,
line)(!!param_child2,
"GetParameterElement failed.\n");
6574 ok_(__FILE__,
line)(param_child != param_child2,
"Got same parameter handle unexpectedly.\n");
6575 hr = effect->lpVtbl->GetVertexShader(effect, param_child2, &vshader2);
6578 ok_(__FILE__,
line)(vshader1 == vshader2,
"Shared shader interface pointers differ.\n");
6584#define test_effect_shared_parameters_compare_vconst(...) \
6585 test_effect_shared_parameters_compare_vconst_(__LINE__, __VA_ARGS__)
6587#define test_effect_shared_parameters_compare_vconst(args...) \
6588 test_effect_shared_parameters_compare_vconst_(__LINE__, args)
6599 ok_(__FILE__,
line)(!
memcmp(&fvect, expected_fvect,
sizeof(fvect)),
6600 "Unexpected constant value %g, %g, %g, %g.\n", fvect.
x, fvect.
y, fvect.
z, fvect.
w);
6605 ID3DXEffect *effect1, *effect2, *effect3, *effect4;
6606 ID3DXEffectPool *
pool;
6609 unsigned int i, passes_count;
6620 effect2->lpVtbl->SetFloat(effect2,
"arr2[0]", 28.0f);
6621 effect2->lpVtbl->Release(effect2);
6626 effect2->lpVtbl->GetFloat(effect2,
"arr2[0]", &fvect.
x);
6627 ok(fvect.
x == 92.0f,
"Unexpected parameter value %g.\n", fvect.
x);
6628 effect2->lpVtbl->SetFloat(effect2,
"arr2[0]", 28.0f);
6634 effect1->lpVtbl->GetFloat(effect1,
"arr2[0]", &fvect.
x);
6635 ok(fvect.
x == 28.0f,
"Unexpected parameter value %g.\n", fvect.
x);
6644 effect2->lpVtbl->SetFloat(effect2,
"arr2[0]", 3.0f);
6645 effect2->lpVtbl->SetFloat(effect2,
"ts2[0].fv", 3.0f);
6647 effect3->lpVtbl->GetFloat(effect3,
"arr2[0]", &fvect.
x);
6648 ok(fvect.
x == 0.0f,
"Unexpected parameter value %g.\n", fvect.
x);
6649 effect4->lpVtbl->SetFloat(effect4,
"arr2[0]", 28.0f);
6650 effect3->lpVtbl->GetFloat(effect3,
"arr2[0]", &fvect.
x);
6651 ok(fvect.
x == 28.0f,
"Unexpected parameter value %g.\n", fvect.
x);
6652 effect1->lpVtbl->GetFloat(effect1,
"arr2[0]", &fvect.
x);
6653 ok(fvect.
x == 3.0f,
"Unexpected parameter value %g.\n", fvect.
x);
6655 param = effect3->lpVtbl->GetParameterByName(effect3,
NULL,
"ts2[0].fv_2");
6656 ok(!!
param,
"GetParameterByName failed.\n");
6657 effect3->lpVtbl->GetFloat(effect3,
param, &fvect.
x);
6658 ok(fvect.
x == 0.0f,
"Unexpected parameter value %g.\n", fvect.
x);
6660 param = effect1->lpVtbl->GetParameterByName(effect1,
NULL,
"arr2");
6661 ok(!!
param,
"GetParameterByName failed.\n");
6662 ok(!effect3->lpVtbl->IsParameterUsed(effect3,
param,
"tech0"),
6663 "Unexpected IsParameterUsed result.\n");
6665 param = effect3->lpVtbl->GetParameterByName(effect3,
NULL,
"arr2");
6666 ok(!!
param,
"GetParameterByName failed.\n");
6667 ok(effect3->lpVtbl->IsParameterUsed(effect3,
param,
"tech0"),
6668 "Unexpected IsParameterUsed result.\n");
6670 param = effect1->lpVtbl->GetParameterByName(effect1,
NULL,
"vs_arr2");
6671 ok(!!
param,
"GetParameterByName failed.\n");
6673 ok(!effect3->lpVtbl->IsParameterUsed(effect3,
param,
"tech0"),
6674 "Unexpected IsParameterUsed result.\n");
6676 ok(effect3->lpVtbl->IsParameterUsed(effect3,
"vs_arr2",
"tech0"),
6677 "Unexpected IsParameterUsed result.\n");
6678 ok(!effect3->lpVtbl->IsParameterUsed(effect3,
"vs_arr2[0]",
"tech0"),
6679 "Unexpected IsParameterUsed result.\n");
6680 ok(!effect3->lpVtbl->IsParameterUsed(effect3,
"vs_arr2[1]",
"tech0"),
6681 "Unexpected IsParameterUsed result.\n");
6683 ok(effect1->lpVtbl->IsParameterUsed(effect1,
param,
"tech0"),
6684 "Unexpected IsParameterUsed result.\n");
6686 hr = effect3->lpVtbl->Begin(effect3, &passes_count, 0);
6693 hr = effect3->lpVtbl->BeginPass(effect3, 0);
6696 hr = effect3->lpVtbl->EndPass(effect3);
6701 fvect.
x = fvect.
y = fvect.
z = fvect.
w = 28.0f;
6702 hr = effect2->lpVtbl->SetVector(effect2,
"g_Pos1", &fvect);
6704 hr = effect1->lpVtbl->SetVector(effect1,
"g_Pos1", &fvect);
6707 hr = effect3->lpVtbl->BeginPass(effect3, 1);
6714 ok(fvect.
x == 0.0f && fvect.
y == 0.0f && fvect.
z == 0.0f && fvect.
w == 0.0f,
6715 "Unexpected vector %g, %g, %g, %g.\n", fvect.
x, fvect.
y, fvect.
z, fvect.
w);
6717 hr = effect3->lpVtbl->EndPass(effect3);
6721 hr = effect3->lpVtbl->End(effect3);
6724 for (
i = 0;
i < 2; ++
i)
6726 struct IDirect3DVertexShader9 *vshader1;
6728 param_child = effect1->lpVtbl->GetParameterElement(effect1,
"vs_arr2",
i);
6729 ok(!!param_child,
"GetParameterElement failed.\n");
6730 hr = effect1->lpVtbl->GetVertexShader(effect1, param_child, &vshader1);
6739 effect3->lpVtbl->Release(effect3);
6740 effect4->lpVtbl->Release(effect4);
6743 hr = effect1->lpVtbl->SetFloatArray(effect1,
"arr1", fval, 1);
6746 hr = effect2->lpVtbl->GetFloatArray(effect2,
"arr1", fval, 1);
6748 ok(fval[0] == 91.0f,
"Unexpected value %g.\n", fval[0]);
6750 param = effect1->lpVtbl->GetParameterByName(effect1,
NULL,
"arr2");
6751 ok(!!
param,
"GetParameterByName failed.\n");
6752 param2 = effect2->lpVtbl->GetParameterByName(effect2,
NULL,
"arr2");
6753 ok(!!
param,
"GetParameterByName failed.\n");
6754 ok(
param != param2,
"Got same parameter handle unexpectedly.\n");
6755 param_child = effect1->lpVtbl->GetParameterElement(effect1,
param, 0);
6756 ok(!!param_child,
"GetParameterElement failed.\n");
6757 param_child2 = effect1->lpVtbl->GetParameterElement(effect2, param2, 0);
6758 ok(!!param_child2,
"GetParameterElement failed.\n");
6759 ok(param_child != param_child2,
"Got same parameter handle unexpectedly.\n");
6762 hr = effect1->lpVtbl->SetFloatArray(effect1,
"arr2", fval, 1);
6765 hr = effect1->lpVtbl->GetFloatArray(effect1,
"arr2", fval, 2);
6767 ok(fval[0] == 33.0f && fval[1] == 93.0f,
"Unexpected values %g, %g.\n", fval[0], fval[1]);
6769 hr = effect2->lpVtbl->GetFloatArray(effect2,
"arr2", fval, 2);
6771 ok(fval[0] == 33.0f && fval[1] == 93.0f,
"Unexpected values %g, %g.\n", fval[0], fval[1]);
6773 hr = effect1->lpVtbl->Begin(effect1, &passes_count, 0);
6776 hr = effect2->lpVtbl->Begin(effect2, &passes_count, 0);
6779 hr = effect1->lpVtbl->BeginPass(effect1, 0);
6783 fvect.
y = fvect.
z = fvect.
w = 0.0f;
6786 hr = effect1->lpVtbl->BeginPass(effect2, 0);
6796 hr = effect1->lpVtbl->SetFloatArray(effect1,
"arr2", fval, 2);
6801 hr = effect1->lpVtbl->CommitChanges(effect1);
6811 hr = effect1->lpVtbl->CommitChanges(effect1);
6817 hr = effect2->lpVtbl->CommitChanges(effect2);
6826 hr = effect2->lpVtbl->SetFloat(effect2,
"arr2[0]", fval[0]);
6828 hr = effect1->lpVtbl->CommitChanges(effect1);
6836 fvect.
x = fvect.
y = fvect.
z = fvect.
w = 1111.0f;
6837 hr = effect2->lpVtbl->SetVector(effect2,
"g_Pos1", &fvect);
6840 hr = effect1->lpVtbl->CommitChanges(effect1);
6844 hr = effect1->lpVtbl->CommitChanges(effect2);
6848 hr = effect1->lpVtbl->End(effect1);
6851 hr = effect2->lpVtbl->End(effect2);
6856 refcount =
pool->lpVtbl->Release(
pool);
6857 ok(refcount == 2,
"Unexpected refcount %u.\n", refcount);
6859 refcount =
pool->lpVtbl->Release(
pool);
6860 ok(refcount == 1,
"Unexpected refcount %u.\n", refcount);
6862 refcount =
pool->lpVtbl->Release(
pool);
6863 ok(!refcount,
"Unexpected refcount %u.\n", refcount);
6866 effect2->lpVtbl->GetFloat(effect2,
"arr2[0]", &fvect.
x);
6869 effect1->lpVtbl->Release(effect1);
6870 effect2->lpVtbl->Release(effect2);
6872 refcount =
pool->lpVtbl->Release(
pool);
6873 ok(!refcount,
"Effect pool was not properly freed, refcount %u.\n", refcount);
6878 ID3DXEffect *effect;
6880 static int expected_ivect[4] = {28, 29, 30, 31};
6888 param = effect->lpVtbl->GetParameterByName(effect,
NULL,
"g_iVect");
6889 ok(!!
param,
"GetParameterByName failed.\n");
6891 hr = effect->lpVtbl->SetValue(effect,
param, expected_ivect,
sizeof(expected_ivect));
6894 hr = effect->lpVtbl->GetValue(effect,
param, ivect,
sizeof(ivect));
6897 ok(!
memcmp(ivect, expected_ivect,
sizeof(expected_ivect)),
"Vector value mismatch.\n");
6902 hr = effect->lpVtbl->GetValue(effect,
"g_iVect", ivect,
sizeof(ivect));
6906 effect->lpVtbl->Release(effect);
6911 unsigned int passes_count;
6912 ID3DXEffect *effect;
6922 pass = effect->lpVtbl->GetPass(effect,
"tech0", 1);
6923 ok(!!
pass,
"GetPass() failed.\n");
6925 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
6929 fvect.
x = fvect.
y = fvect.
w = 0.0f;
6931 hr = effect->lpVtbl->SetVector(effect,
"g_iVect", &fvect);
6934 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
6936 ok(!
desc.pPixelShaderFunction,
"Unexpected non null desc.pPixelShaderFunction.\n");
6941 hr = effect->lpVtbl->SetVector(effect,
"g_iVect", &fvect);
6944 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
6946 ok(!
desc.pVertexShaderFunction,
"Unexpected non null desc.pVertexShaderFunction.\n");
6950 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
6952 ok(!
desc.pVertexShaderFunction,
"Unexpected non null desc.pVertexShaderFunction.\n");
6954 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
6957 hr = effect->lpVtbl->BeginPass(effect, 1);
6960 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
6966 hr = effect->lpVtbl->SetVector(effect,
"g_iVect", &fvect);
6967 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
6971 effect->lpVtbl->Release(effect);
6977 pass = effect->lpVtbl->GetPass(effect,
"tech0", 1);
6978 ok(!!
pass,
"GetPass() failed.\n");
6980 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
6983 ok(!
desc.pVertexShaderFunction,
"Unexpected non null desc.pVertexShaderFunction.\n");
6984 ok(!
desc.pPixelShaderFunction,
"Unexpected non null desc.pPixelShaderFunction.\n");
6986 effect->lpVtbl->Release(effect);
6990float v1 :
register(c2);
6991float v2 :
register(c3);
6993float v4 :
register(c4);
6995float v6[2] :
register(c5) = {11, 22};
7002VS_OUTPUT RenderSceneVS(float4 vPos :
POSITION)
7007 Output.Position += v6[0] + v6[1];
7016 VertexShader = compile vs_3_0 RenderSceneVS();
7022 0xfeff0901, 0x00000144, 0x00000000, 0x00000003, 0x00000000, 0x00000024, 0x00000000, 0x00000000,
7023 0x00000001, 0x00000001, 0x00000000, 0x00000003, 0x00003176, 0x00000003, 0x00000000, 0x0000004c,
7024 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003, 0x00003276, 0x00000003,
7025 0x00000000, 0x00000074, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000003,
7026 0x00003376, 0x00000003, 0x00000000, 0x0000009c, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
7027 0x00000000, 0x00000003, 0x00003476, 0x00000003, 0x00000000, 0x000000c4, 0x00000000, 0x00000000,
7028 0x00000001, 0x00000001, 0x00000000, 0x00000003, 0x00003576, 0x00000003, 0x00000000, 0x000000f0,
7029 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x41300000, 0x41b00000, 0x00000003, 0x00003676,
7030 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
7031 0x00000001, 0x00000010, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00003070,
7032 0x00000006, 0x68636574, 0x00000030, 0x00000006, 0x00000001, 0x00000002, 0x00000002, 0x00000004,
7033 0x00000020, 0x00000000, 0x00000000, 0x0000002c, 0x00000048, 0x00000000, 0x00000000, 0x00000054,
7034 0x00000070, 0x00000000, 0x00000000, 0x0000007c, 0x00000098, 0x00000000, 0x00000000, 0x000000a4,
7035 0x000000c0, 0x00000000, 0x00000000, 0x000000cc, 0x000000e8, 0x00000000, 0x00000000, 0x00000138,
7036 0x00000000, 0x00000001, 0x00000130, 0x00000000, 0x00000002, 0x00000041, 0x00000000, 0x000000fc,
7037 0x000000f8, 0x00000092, 0x00000000, 0x0000011c, 0x00000118, 0x00000000, 0x00000002, 0x00000000,
7038 0x00000000, 0xffffffff, 0x00000001, 0x00000000, 0x000001bc, 0xfffe0300, 0x0047fffe, 0x42415443,
7039 0x0000001c, 0x000000e7, 0xfffe0300, 0x00000005, 0x0000001c, 0x20000000, 0x000000e0, 0x00000080,
7040 0x00020002, 0x000a0001, 0x00000084, 0x00000094, 0x000000a4, 0x00030002, 0x000e0001, 0x00000084,
7041 0x00000094, 0x000000a7, 0x00000002, 0x00000001, 0x00000084, 0x00000094, 0x000000aa, 0x00040002,
7042 0x00120001, 0x00000084, 0x00000094, 0x000000ad, 0x00050002, 0x00160002, 0x000000b0, 0x000000c0,
7043 0xab003176, 0x00030000, 0x00010001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
7044 0x00000000, 0x76003276, 0x34760033, 0x00367600, 0x00030000, 0x00010001, 0x00000002, 0x00000000,
7045 0x41300000, 0x00000000, 0x00000000, 0x00000000, 0x41b00000, 0x00000000, 0x00000000, 0x00000000,
7046 0x335f7376, 0x4d00305f, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
7047 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0200001f, 0x80000000,
7048 0x900f0000, 0x0200001f, 0x80000000, 0xe00f0000, 0x02000001, 0x80010000, 0xa0000003, 0x03000005,
7049 0x80010000, 0x80000000, 0xa0000002, 0x04000004, 0x800f0000, 0x80000000, 0x90e40000, 0xa0000003,
7050 0x03000002, 0x800f0000, 0x80e40000, 0xa0000000, 0x03000002, 0x800f0000, 0x80e40000, 0xa0000004,
7051 0x02000001, 0x80010001, 0xa0000005, 0x03000002, 0x80010001, 0x80000001, 0xa0000006, 0x03000002,
7052 0xe00f0000, 0x80e40000, 0x80000001, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000000,
7053 0x00000000, 0x000000d8, 0x46580200, 0x0023fffe, 0x42415443, 0x0000001c, 0x00000057, 0x46580200,
7054 0x00000001, 0x0000001c, 0x20000100, 0x00000054, 0x00000030, 0x00040002, 0x00120001, 0x00000034,
7055 0x00000044, 0xab003476, 0x00030000, 0x00010001, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
7056 0x00000000, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c,
7057 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe,
7058 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000,
7059 0x00000002, 0x00000010, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
7065 ID3DXEffect *effect;
7066 unsigned int passes_count;
7084 ok(!effect->lpVtbl->IsParameterUsed(effect,
"v1",
"tech0"),
7085 "Unexpected IsParameterUsed result.\n");
7086 ok(!effect->lpVtbl->IsParameterUsed(effect,
"v2",
"tech0"),
7087 "Unexpected IsParameterUsed result.\n");
7088 ok(effect->lpVtbl->IsParameterUsed(effect,
"v3",
"tech0"),
7089 "Unexpected IsParameterUsed result.\n");
7090 ok(effect->lpVtbl->IsParameterUsed(effect,
"v4",
"tech0"),
7091 "Unexpected IsParameterUsed result.\n");
7092 ok(!effect->lpVtbl->IsParameterUsed(effect,
"v5",
"tech0"),
7093 "Unexpected IsParameterUsed result.\n");
7094 ok(!effect->lpVtbl->IsParameterUsed(effect,
"v6",
"tech0"),
7095 "Unexpected IsParameterUsed result.\n");
7097 hr = effect->lpVtbl->SetFloat(effect,
"v1", 28.0f);
7099 hr = effect->lpVtbl->SetFloat(effect,
"v2", 29.0f);
7101 hr = effect->lpVtbl->SetFloat(effect,
"v3", 30.0f);
7103 hr = effect->lpVtbl->SetFloat(effect,
"v4", 31.0f);
7105 hr = effect->lpVtbl->SetFloat(effect,
"v5", 32.0f);
7110 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
7112 hr = effect->lpVtbl->BeginPass(effect, 0);
7115 fvect.
y = fvect.
z = fvect.
w = 0.0f;
7118 for (
i = 1;
i < 4; ++
i)
7122 for (
i = 5;
i < 256; ++
i)
7125 hr = effect->lpVtbl->EndPass(effect);
7127 hr = effect->lpVtbl->End(effect);
7130 effect->lpVtbl->Release(effect);
7147 def c256, 1, 1, 1, 1
7159 VertexShader = vs_arr[1];
7166 VertexShader = vs_arr[
i];
7172 0xfeff0901, 0x000000ac, 0x00000000, 0x00000010, 0x00000004, 0x00000020, 0x00000000, 0x00000002,
7173 0x00000001, 0x00000002, 0x00000007, 0x615f7376, 0x00007272, 0x00000002, 0x00000000, 0x0000004c,
7174 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000002, 0x00000069, 0x00000003,
7175 0x00000010, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00003070, 0x00000006,
7176 0x68636574, 0x00000030, 0x00000004, 0x00000010, 0x00000004, 0x00000000, 0x00000000, 0x00000000,
7177 0x00000003, 0x00003070, 0x00000006, 0x68636574, 0x00000031, 0x00000002, 0x00000002, 0x00000006,
7178 0x00000005, 0x00000004, 0x00000018, 0x00000000, 0x00000000, 0x0000002c, 0x00000048, 0x00000000,
7179 0x00000000, 0x00000074, 0x00000000, 0x00000001, 0x0000006c, 0x00000000, 0x00000001, 0x00000092,
7180 0x00000000, 0x00000058, 0x00000054, 0x000000a0, 0x00000000, 0x00000001, 0x00000098, 0x00000000,
7181 0x00000001, 0x00000092, 0x00000000, 0x00000084, 0x00000080, 0x00000002, 0x00000002, 0x00000001,
7182 0x00000038, 0xfffe0300, 0x05000051, 0xa00f0000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000,
7183 0x0200001f, 0x80000000, 0xe00f0000, 0x02000001, 0xe00f0000, 0xa0e40000, 0x0000ffff, 0x00000002,
7184 0x00000038, 0xfffe03ff, 0x05000051, 0xa00f0100, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000,
7185 0x0200001f, 0x80000000, 0xe00f0000, 0x02000001, 0xe00f0000, 0xa0e40100, 0x0000ffff, 0x00000001,
7186 0x00000000, 0xffffffff, 0x00000000, 0x00000002, 0x000000e4, 0x00000008, 0x615f7376, 0x00007272,
7187 0x46580200, 0x0023fffe, 0x42415443, 0x0000001c, 0x00000057, 0x46580200, 0x00000001, 0x0000001c,
7188 0x00000100, 0x00000054, 0x00000030, 0x00000002, 0x00000001, 0x00000034, 0x00000044, 0xabab0069,
7189 0x00020000, 0x00010001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
7190 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320,
7191 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000,
7192 0x000cfffe, 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000000,
7193 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000,
7194 0xffffffff, 0x00000000, 0x00000001, 0x0000000a, 0x615f7376, 0x315b7272, 0x0000005d,
7197#define TEST_EFFECT_UNSUPPORTED_SHADER_BYTECODE_VS_3_0_POS 81
7198#define TEST_EFFECT_UNSUPPORTED_SHADER_BYTECODE_VS_3_0_LEN 14
7202 IDirect3DVertexShader9 *vshader;
7203 unsigned int passes_count;
7204 IDirect3DDevice9 *
device;
7205 UINT byte_code_size;
7206 ID3DXEffect *effect;
7219 hr = effect->lpVtbl->ValidateTechnique(effect,
"missing_technique");
7221 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech0");
7224 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech1");
7226 hr = effect->lpVtbl->SetInt(effect,
"i", 1);
7228 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech1");
7230 hr = effect->lpVtbl->SetInt(effect,
"i", 0);
7232 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech1");
7235 hr = effect->lpVtbl->SetTechnique(effect,
"tech0");
7237 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
7239 hr = effect->lpVtbl->BeginPass(effect, 0);
7243 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
7244 ok(!vshader,
"Got non NULL vshader.\n");
7246 hr = effect->lpVtbl->EndPass(effect);
7248 hr = effect->lpVtbl->End(effect);
7251 hr = effect->lpVtbl->SetTechnique(effect,
"tech1");
7253 hr = effect->lpVtbl->Begin(effect, &passes_count, 0);
7255 hr = effect->lpVtbl->BeginPass(effect, 0);
7259 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
7260 ok(!!vshader,
"Got NULL vshader.\n");
7267 "Got unexpected byte code size %u.\n", byte_code_size);
7270 byte_code_size),
"Incorrect shader selected.\n");
7274 hr = effect->lpVtbl->SetInt(effect,
"i", 1);
7276 hr = effect->lpVtbl->CommitChanges(effect);
7280 ok(!vshader,
"Got non NULL vshader.\n");
7282 effect->lpVtbl->Release(effect);
7285 ok(!refcount,
"Device has %u references left.\n", refcount);
7298 VertexShader =
null;
7305 VertexShader = vs_arr[
i];
7311 0xfeff0901, 0x000000b4, 0x00000000, 0x00000010, 0x00000004, 0x00000020, 0x00000000, 0x00000002,
7312 0x00000001, 0x00000002, 0x00000007, 0x615f7376, 0x00007272, 0x00000002, 0x00000000, 0x0000004c,
7313 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000002, 0x00000069, 0x00000000,
7314 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000003,
7315 0x00003070, 0x00000006, 0x68636574, 0x00000030, 0x00000003, 0x00000010, 0x00000004, 0x00000000,
7316 0x00000000, 0x00000000, 0x00000003, 0x00003070, 0x00000006, 0x68636574, 0x00000031, 0x00000002,
7317 0x00000002, 0x00000005, 0x00000004, 0x00000004, 0x00000018, 0x00000000, 0x00000000, 0x0000002c,
7318 0x00000048, 0x00000000, 0x00000000, 0x0000007c, 0x00000000, 0x00000001, 0x00000074, 0x00000000,
7319 0x00000001, 0x00000092, 0x00000000, 0x00000058, 0x00000054, 0x000000a8, 0x00000000, 0x00000001,
7320 0x000000a0, 0x00000000, 0x00000001, 0x00000092, 0x00000000, 0x0000008c, 0x00000088, 0x00000002,
7321 0x00000001, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0xffffffff,
7322 0x00000000, 0x00000002, 0x000000e4, 0x00000008, 0x615f7376, 0x00007272, 0x46580200, 0x0023fffe,
7323 0x42415443, 0x0000001c, 0x00000057, 0x46580200, 0x00000001, 0x0000001c, 0x00000100, 0x00000054,
7324 0x00000030, 0x00000002, 0x00000001, 0x00000034, 0x00000044, 0xabab0069, 0x00020000, 0x00010001,
7325 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4d007874, 0x6f726369,
7326 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
7327 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846,
7328 0x00000001, 0x10000001, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004,
7329 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
7334 IDirect3DDevice9 *
device;
7335 ID3DXEffect *effect;
7350 ok(
hr ==
D3D_OK,
"Failed to create effect, hr %#x.\n",
hr);
7352 pass = effect->lpVtbl->GetPass(effect,
"tech0", 0);
7353 ok(!!
pass,
"GetPass() failed.\n");
7354 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
7356 ok(!
desc.pVertexShaderFunction,
"Got non NULL vertex function.\n");
7358 pass = effect->lpVtbl->GetPass(effect,
"tech1", 0);
7359 ok(!!
pass,
"GetPass() failed.\n");
7360 hr = effect->lpVtbl->GetPassDesc(effect,
pass, &
desc);
7362 ok(!
desc.pVertexShaderFunction,
"Got non NULL vertex function.\n");
7364 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech0");
7366 hr = effect->lpVtbl->SetInt(effect,
"i", 0);
7367 ok(
hr ==
D3D_OK,
"Failed to set parameter, hr %#x.\n",
hr);
7368 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech1");
7370 hr = effect->lpVtbl->SetInt(effect,
"i", 1);
7371 ok(
hr ==
D3D_OK,
"Failed to set parameter, hr %#x.\n",
hr);
7372 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech1");
7375 hr = effect->lpVtbl->SetInt(effect,
"i", 2);
7376 ok(
hr ==
D3D_OK,
"Failed to set parameter, hr %#x.\n",
hr);
7377 hr = effect->lpVtbl->ValidateTechnique(effect,
"tech1");
7380 effect->lpVtbl->Release(effect);
7383 ok(!refcount,
"Device has %u references left.\n", refcount);
7389 IDirect3DDevice9 *
device, *device2, *device3;
7390 ID3DXEffect *effect, *cloned;
7403 hr = effect->lpVtbl->CloneEffect(effect,
NULL,
NULL);
7406 cloned = (
void *)0xdeadbeef;
7407 hr = effect->lpVtbl->CloneEffect(effect,
NULL, &cloned);
7409 ok(cloned == (
void *)0xdeadbeef,
"Unexpected effect pointer.\n");
7411 hr = effect->lpVtbl->CloneEffect(effect,
device,
NULL);
7414 cloned = (
void *)0xdeadbeef;
7415 hr = effect->lpVtbl->CloneEffect(effect,
device, &cloned);
7417 ok(cloned == (
void *)0xdeadbeef,
"Unexpected effect pointer.\n");
7419 effect->lpVtbl->Release(effect);
7425 hr = effect->lpVtbl->CloneEffect(effect,
NULL,
NULL);
7428 cloned = (
void *)0xdeadbeef;
7429 hr = effect->lpVtbl->CloneEffect(effect,
NULL, &cloned);
7431 ok(cloned == (
void *)0xdeadbeef,
"Unexpected effect pointer.\n");
7433 hr = effect->lpVtbl->CloneEffect(effect,
device,
NULL);
7436 hr = effect->lpVtbl->CloneEffect(effect,
device, &cloned);
7439 todo_wine ok(cloned != effect,
"Expected new effect instance.\n");
7440 cloned->lpVtbl->Release(cloned);
7443 hr = effect->lpVtbl->CloneEffect(effect, device2, &cloned);
7445 todo_wine ok(cloned != effect,
"Expected new effect instance.\n");
7447 hr = cloned->lpVtbl->GetDevice(cloned, &device3);
7448 ok(
hr ==
S_OK,
"Failed to get effect device.\n");
7449 todo_wine ok(device3 == device2,
"Unexpected device instance, device3 %p, device2 %p.\n", device3, device2);
7452 cloned->lpVtbl->Release(cloned);
7456 effect->lpVtbl->Release(effect);
7458 ok(!refcount,
"Device has %u references left.\n", refcount);
7470 IDirect3DTexture9 *
texture, *cur_texture, *managed_texture, *sysmem_texture;
7471 unsigned int passes_count;
7472 IDirect3DDevice9 *
device;
7473 ID3DXEffect *effect;
7482 ok(
hr ==
D3D_OK,
"Failed to create texture, hr %#x.\n",
hr);
7487 ok(
hr ==
D3D_OK,
"Failed to create effect, hr %#x.\n",
hr);
7489 hr = effect->lpVtbl->SetTexture(effect,
"tex1", (IDirect3DBaseTexture9 *)
texture);
7490 ok(
hr ==
D3D_OK,
"Failed to set texture parameter, hr %#x.\n",
hr);
7495 hr = effect->lpVtbl->BeginPass(effect, 0);
7499 ok(cur_texture ==
texture,
"Unexpected current texture %p.\n", cur_texture);
7503 effect->lpVtbl->CommitChanges(effect);
7506 ok(cur_texture ==
NULL,
"Unexpected current texture %p.\n", cur_texture);
7508 hr = effect->lpVtbl->EndPass(effect);
7511 hr = effect->lpVtbl->BeginPass(effect, 0);
7515 ok(cur_texture ==
texture,
"Unexpected current texture %p.\n", cur_texture);
7518 hr = effect->lpVtbl->EndPass(effect);
7520 hr = effect->lpVtbl->End(effect);
7524 ok(cur_texture ==
texture,
"Unexpected current texture %p.\n", cur_texture);
7527 ok(refcount == 2,
"Unexpected texture refcount %u.\n", refcount);
7529 hr = effect->lpVtbl->OnLostDevice(effect);
7530 ok(
hr ==
D3D_OK,
"OnLostDevice() failed, hr %#x.\n",
hr);
7532 ok(refcount == 1,
"Unexpected texture refcount %u.\n", refcount);
7535 &managed_texture,
NULL);
7536 ok(
hr ==
D3D_OK,
"Failed to create texture, hr %#x.\n",
hr);
7537 effect->lpVtbl->SetTexture(effect,
"tex1", (IDirect3DBaseTexture9 *)managed_texture);
7540 ok(refcount == 2,
"Unexpected texture refcount %u.\n", refcount);
7541 hr = effect->lpVtbl->OnLostDevice(effect);
7542 ok(
hr ==
D3D_OK,
"OnLostDevice() failed, hr %#x.\n",
hr);
7544 ok(refcount == 2,
"Unexpected texture refcount %u.\n", refcount);
7547 &sysmem_texture,
NULL);
7548 ok(
hr ==
D3D_OK,
"Failed to create texture, hr %#x.\n",
hr);
7549 effect->lpVtbl->SetTexture(effect,
"tex1", (IDirect3DBaseTexture9 *)sysmem_texture);
7552 ok(refcount == 1,
"Unexpected texture refcount %u.\n", refcount);
7555 ok(refcount == 2,
"Unexpected texture refcount %u.\n", refcount);
7556 hr = effect->lpVtbl->OnLostDevice(effect);
7557 ok(
hr ==
D3D_OK,
"OnLostDevice() failed, hr %#x.\n",
hr);
7559 ok(refcount == 2,
"Unexpected texture refcount %u.\n", refcount);
7561 effect->lpVtbl->Release(effect);
7564 ok(refcount == 1,
"Unexpected texture refcount %u.\n", refcount);
7568 ok(cur_texture ==
texture,
"Unexpected current texture %p.\n", cur_texture);
7571 ok(refcount == 1,
"Unexpected texture refcount %u.\n", refcount);
7575 ok(!refcount,
"Device has %u references left.\n", refcount);
7582 static const char include1[] =
7589 " float4 position : POSITION;\n"
7590 " float3 normal : NORMAL;\n"
7593 "struct vs_output\n"
7595 " float4 position : POSITION;\n"
7596 " float4 diffuse : COLOR;\n"
7598 static const char include2[] =
7599 "#include \"include1.h\"\n"
7601 "vs_output vs_main(const vs_input v)\n"
7604 " const float4 scaled_color = 0.5 * color;\n"
7606 " o.position = mul(v.position, mat);\n"
7607 " o.diffuse = dot((float3)light, v.normal) * scaled_color;\n"
7611 static const char effect2[] =
7612 "#include \"include\\include2.h\"\n"
7618 " VertexShader = compile vs_2_0 vs_main();\n"
7624 trace(
"parent_data %p: %s.\n", parent_data, parent_data ? (
char *)parent_data :
"(null)");
7630 *
bytes =
sizeof(effect2);
7631 ok(!parent_data,
"Unexpected parent_data value.\n");
7637 *
bytes =
sizeof(include1);
7638 ok(!
strncmp(parent_data, include2,
strlen(include2)),
"Unexpected parent_data value.\n");
7644 *
bytes =
sizeof(include2);
7646 "unexpected parent_data value.\n");
7650 ok(0,
"Unexpected #include for file %s.\n",
filename);
7676 static const char effect1[] =
7683 " float4 position : POSITION;\n"
7684 " float3 normal : NORMAL;\n"
7687 "struct vs_output\n"
7689 " float4 position : POSITION;\n"
7690 " float4 diffuse : COLOR;\n"
7693 "vs_output vs_main(const vs_input v)\n"
7696 " const float4 scaled_color = 0.5 * color;\n"
7698 " o.position = mul(v.position, mat);\n"
7699 " o.diffuse = dot((float3)light, v.normal) * scaled_color;\n"
7708 " VertexShader = compile vs_2_0 vs_main();\n"
7711 static const char include1[] =
7718 " float4 position : POSITION;\n"
7719 " float3 normal : NORMAL;\n"
7722 "struct vs_output\n"
7724 " float4 position : POSITION;\n"
7725 " float4 diffuse : COLOR;\n"
7727 static const char include1_wrong[] =
7728 "#error \"wrong include\"\n";
7729 static const char include2[] =
7730 "#include \"include1.h\"\n"
7732 "vs_output vs_main(const vs_input v)\n"
7735 " const float4 scaled_color = 0.5 * color;\n"
7737 " o.position = mul(v.position, mat);\n"
7738 " o.diffuse = dot((float3)light, v.normal) * scaled_color;\n"
7742 static const char effect2[] =
7743 "#include \"include\\include2.h\"\n"
7749 " VertexShader = compile vs_2_0 vs_main();\n"
7755 unsigned int filename_size;
7757 IDirect3DDevice9 *
device;
7759 ID3DXEffect *effect;
7768 skip(
"Failed to create window.\n");
7773 skip(
"Failed to create IDirect3D9 object.\n");
7783 skip(
"Failed to create IDirect3DDevice9 object, hr %#x.\n",
hr);
7791 skip(
"Couldn't create temporary file, skipping test.\n");
7796 filename_size -=
sizeof(
"effect1.fx") - 1;
7798 effect_path[filename_size] = 0;
7803 create_file(
"include\\include1.h", include1,
sizeof(include1) - 1,
NULL);
7804 create_file(
"include\\include2.h", include2,
sizeof(include2) - 1,
NULL);
7805 create_file(
"include1.h", include1_wrong,
sizeof(include1_wrong) - 1,
NULL);
7807 lstrcpyW(filename_w, effect_path_w);
7820 effect->lpVtbl->Release(effect);
7822 lstrcpyW(filename_w, effect_path_w);
7836 effect->lpVtbl->Release(effect);
7862 ok(!refcount,
"Device has %u references left.\n", refcount);
7872 LightEnable[0] =
FALSE;
7880 LightEnable[0] =
TRUE;
7887 0xfeff0901, 0x000000ac, 0x00000000, 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000000,
7888 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000000,
7889 0x00000000, 0x00000001, 0x00000001, 0x00000003, 0x00003070, 0x00000006, 0x68636574, 0x00000030,
7890 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
7891 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
7892 0x00000003, 0x00003070, 0x00000006, 0x68636574, 0x00000031, 0x00000000, 0x00000002, 0x00000002,
7893 0x00000001, 0x0000004c, 0x00000000, 0x00000001, 0x00000044, 0x00000000, 0x00000002, 0x00000091,
7894 0x00000000, 0x00000008, 0x00000004, 0x0000000e, 0x00000000, 0x00000028, 0x00000024, 0x000000a0,
7895 0x00000000, 0x00000001, 0x00000098, 0x00000000, 0x00000002, 0x00000091, 0x00000000, 0x0000005c,
7896 0x00000058, 0x0000000e, 0x00000000, 0x0000007c, 0x00000078, 0x00000000, 0x00000000,
7902 IDirect3DDevice9 *
device;
7904 ID3DXEffect *effect;
7914 skip(
"Failed to create window.\n");
7919 skip(
"Failed to create IDirect3D9 object.\n");
7929 skip(
"Failed to create IDirect3DDevice9 object, hr %#x.\n",
hr);
7939 hr = effect->lpVtbl->FindNextValidTechnique(effect,
NULL, &tech);
7941 hr = effect->lpVtbl->GetTechniqueDesc(effect, tech, &
desc);
7943 ok(!
strcmp(
desc.Name,
"tech0"),
"Got unexpected technique %s.\n",
desc.Name);
7945 hr = effect->lpVtbl->FindNextValidTechnique(effect, tech, &tech);
7947 hr = effect->lpVtbl->GetTechniqueDesc(effect, tech, &
desc);
7949 ok(!
strcmp(
desc.Name,
"tech1"),
"Got unexpected technique %s.\n",
desc.Name);
7951 hr = effect->lpVtbl->FindNextValidTechnique(effect, tech, &tech);
7953 hr = effect->lpVtbl->GetTechniqueDesc(effect, tech, &
desc);
7955 ok(!
strcmp(
desc.Name,
"tech0"),
"Got unexpected technique %s.\n",
desc.Name);
7957 effect->lpVtbl->Release(effect);
7963 hr = effect->lpVtbl->FindNextValidTechnique(effect,
NULL, &tech);
7965 hr = effect->lpVtbl->GetTechniqueDesc(effect, tech, &
desc);
7967 ok(!
strcmp(
desc.Name,
"tech1"),
"Got unexpected technique %s.\n",
desc.Name);
7969 hr = effect->lpVtbl->FindNextValidTechnique(effect, tech, &tech);
7971 hr = effect->lpVtbl->GetTechniqueDesc(effect, tech, &
desc);
7973 ok(!
strcmp(
desc.Name,
"tech0"),
"Got unexpected technique %s.\n",
desc.Name);
7975 hr = effect->lpVtbl->SetInt(effect,
"i", 1);
7979 hr = effect->lpVtbl->FindNextValidTechnique(effect,
NULL, &tech);
7981 hr = effect->lpVtbl->GetTechniqueDesc(effect, tech, &
desc);
7983 ok(!
strcmp(
desc.Name,
"tech0"),
"Got unexpected technique %s.\n",
desc.Name);
7985 hr = effect->lpVtbl->FindNextValidTechnique(effect, tech, &tech);
7988 hr = effect->lpVtbl->SetInt(effect,
"i", 0);
7991 hr = effect->lpVtbl->FindNextValidTechnique(effect, tech, &tech);
7993 hr = effect->lpVtbl->GetTechniqueDesc(effect, tech, &
desc);
7995 ok(!
strcmp(
desc.Name,
"tech1"),
"Got unexpected technique %s.\n",
desc.Name);
7997 hr = effect->lpVtbl->FindNextValidTechnique(effect, tech, &tech);
8000 hr = effect->lpVtbl->FindNextValidTechnique(effect,
"nope", &tech);
8003 effect->lpVtbl->Release(effect);
8006 ok(!refcount,
"Device has %u references left.\n", refcount);
8015 -11.0f, -12.0f, 0.0f, 0.0f,
8016 -21.0f, -22.0f, 0.0f, 0.0f,
8017 -31.0f, -32.0f, 0.0f, 0.0f,
8021 11.0f, 12.0f, 0.0f, 0.0f,
8022 21.0f, 22.0f, 0.0f, 0.0f,
8023 31.0f, 32.0f, 0.0f, 0.0f,
8026 static const float float_array_zero[4];
8027 IDirect3DTexture9 *
texture, *tex_test;
8029 ID3DXEffect *effect, *effect2;
8031 IDirect3DDevice9 *
device;
8032 ID3DXEffectPool *
pool;
8033 float float_array[4];
8043 skip(
"Failed to create window.\n");
8048 skip(
"Failed to create IDirect3D9 object.\n");
8058 skip(
"Failed to create IDirect3DDevice9 object, hr %#x.\n",
hr);
8074 hr = effect->lpVtbl->BeginParameterBlock(effect);
8076 hr = effect->lpVtbl->BeginParameterBlock(effect);
8078 block = effect->lpVtbl->EndParameterBlock(effect);
8080 handle = effect->lpVtbl->EndParameterBlock(effect);
8084 effect->lpVtbl->AddRef(effect);
8085 refcount = effect->lpVtbl->Release(effect);
8086 ok(refcount == 1,
"Got unexpected refcount %u.\n", refcount);
8088 hr = effect->lpVtbl->ApplyParameterBlock(effect,
block);
8090 hr = effect->lpVtbl->DeleteParameterBlock(effect,
block);
8093 hr = effect->lpVtbl->BeginParameterBlock(effect);
8095 hr = effect->lpVtbl->SetFloat(effect,
"vec3[0]", 1001.0f);
8097 hr = effect->lpVtbl->SetFloat(effect,
"arr1[0]", 91.0f);
8099 block = effect->lpVtbl->EndParameterBlock(effect);
8101 hr = effect->lpVtbl->ApplyParameterBlock(effect,
block);
8104 hr = effect->lpVtbl->DeleteParameterBlock(effect2,
block);
8106 hr = effect->lpVtbl->DeleteParameterBlock(effect,
block);
8109 hr = effect->lpVtbl->ApplyParameterBlock(effect,
NULL);
8111 hr = effect->lpVtbl->ApplyParameterBlock(effect,
"parameter_block");
8115 ok(
hr ==
D3D_OK,
"Got result %#x, expected 0 (D3D_OK).\n",
hr);
8117 hr = effect->lpVtbl->BeginParameterBlock(effect);
8121 hr = effect->lpVtbl->SetTexture(effect,
"tex1", (IDirect3DBaseTexture9 *)
texture);
8124 hr = effect->lpVtbl->GetTexture(effect,
"tex1", (IDirect3DBaseTexture9 **)&tex_test);
8125 ok(
hr ==
D3D_OK && !tex_test,
"Got unexpected hr %#x, tex_test %p.\n",
hr, tex_test);
8129 hr = effect->lpVtbl->SetFloat(effect,
"arr2[0]", 92.0f);
8131 hr = effect->lpVtbl->SetFloat(effect,
"ts1[0].fv", 28.0f);
8133 hr = effect->lpVtbl->GetFloat(effect,
"ts1[0].fv", &float_value);
8134 ok(
hr ==
D3D_OK && float_value == 12.0,
"Got unexpected hr %#x, float_value %g.\n",
hr, float_value);
8136 float_array[0] = -29.0f;
8137 hr = effect->lpVtbl->SetFloatArray(effect,
"ts1[0].v2", float_array, 1);
8139 hr = effect->lpVtbl->GetFloatArray(effect,
"ts1[0].v2", float_array, 1);
8140 ok(
hr ==
D3D_OK && float_array[0] == 13.0,
"Got unexpected hr %#x, float_array[0] %g.\n",
8141 hr, float_array[0]);
8144 hr = effect->lpVtbl->SetMatrix(effect,
"m3x2row", &test_mat);
8146 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2row", &
mat);
8148 ok(!
memcmp(&
mat, &effect_orig_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8150 hr = effect->lpVtbl->SetMatrix(effect,
"m3x2column", &test_mat);
8152 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2column", &
mat);
8154 ok(!
memcmp(&
mat, &effect_orig_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8158 hr = effect2->lpVtbl->SetFloat(effect2,
"arr2[1]", -1.0f);
8160 hr = effect->lpVtbl->GetFloat(effect,
"arr2[1]", &float_value);
8161 ok(float_value == -1.0f,
"Unexpected value %g.\n", float_value);
8165 ok(refcount == 2,
"Got unexpected refcount %u.\n", refcount);
8167 block = effect->lpVtbl->EndParameterBlock(effect);
8172 ok(refcount == 2,
"Got unexpected refcount %u.\n", refcount);
8174 hr = effect->lpVtbl->DeleteParameterBlock(effect2,
block);
8179 ok(refcount == 2,
"Got unexpected refcount %u.\n", refcount);
8181 hr = effect->lpVtbl->SetFloat(effect,
"arr2[0]", 0.0f);
8183 hr = effect->lpVtbl->SetFloat(effect,
"arr2[1]", 0.0f);
8185 hr = effect->lpVtbl->SetFloatArray(effect,
"ts1[0].v1", float_array_zero, 3);
8187 hr = effect->lpVtbl->SetFloat(effect,
"ts1[0].fv", 0.0f);
8189 hr = effect->lpVtbl->SetFloatArray(effect,
"ts1[0].v2", float_array_zero, 4);
8192 hr = effect->lpVtbl->SetMatrix(effect,
"m3x2row", &
mat);
8194 hr = effect->lpVtbl->SetMatrix(effect,
"m3x2column", &
mat);
8197 hr = effect->lpVtbl->ApplyParameterBlock(effect,
block);
8202 ok(refcount == 3,
"Got unexpected refcount %u.\n", refcount);
8204 hr = effect->lpVtbl->GetFloat(effect,
"arr2[0]", &float_value);
8205 ok(
hr ==
D3D_OK && float_value == 92.0f,
"Got unexpected hr %#x, float_value %g.\n",
hr, float_value);
8206 hr = effect->lpVtbl->GetFloat(effect,
"arr2[1]", &float_value);
8207 ok(
hr ==
D3D_OK && float_value == 0.0f,
"Got unexpected hr %#x, float_value %g.\n",
hr, float_value);
8209 hr = effect->lpVtbl->GetFloatArray(effect,
"ts1[0].v1", float_array, 3);
8210 ok(
hr ==
D3D_OK && !
memcmp(float_array, float_array_zero, 3 *
sizeof(*float_array)),
8211 "Got unexpected hr %#x, ts1[0].v1 (%g, %g, %g).\n",
hr,
8212 float_array[0], float_array[1], float_array[2]);
8214 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2row", &
mat);
8216 ok(!
memcmp(&
mat, &test_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8217 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2column", &
mat);
8219 ok(!
memcmp(&
mat, &test_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8221 hr = effect->lpVtbl->GetFloat(effect,
"ts1[0].fv", &float_value);
8222 ok(
hr ==
D3D_OK && float_value == 28.0f,
"Got unexpected hr %#x, float_value %g.\n",
hr, float_value);
8224 hr = effect->lpVtbl->GetFloatArray(effect,
"ts1[0].v2", float_array, 4);
8226 && !
memcmp(float_array + 1, float_array_zero, 3 *
sizeof(*float_array)),
8227 "Got unexpected hr %#x, ts1[0].v2 (%g, %g, %g, %g).\n",
hr,
8228 float_array[0], float_array[1], float_array[2], float_array[3]);
8231 hr = effect->lpVtbl->SetFloat(effect,
"arr2[0]", 0.0f);
8233 hr = effect->lpVtbl->SetFloat(effect,
"arr2[1]", 0.0f);
8235 hr = effect->lpVtbl->SetFloatArray(effect,
"ts1[0].v1", float_array_zero, 3);
8237 hr = effect->lpVtbl->SetFloat(effect,
"ts1[0].fv", 0.0f);
8239 hr = effect->lpVtbl->SetFloatArray(effect,
"ts1[0].v2", float_array_zero, 4);
8242 hr = effect->lpVtbl->SetMatrix(effect,
"m3x2row", &effect_orig_mat);
8244 hr = effect->lpVtbl->SetMatrix(effect,
"m3x2column", &effect_orig_mat);
8247 hr = effect->lpVtbl->BeginParameterBlock(effect);
8249 hr = effect->lpVtbl->ApplyParameterBlock(effect,
block);
8252 hr = effect->lpVtbl->GetFloat(effect,
"arr2[0]", &float_value);
8253 ok(
hr ==
D3D_OK && float_value == 0.0f,
"Got unexpected hr %#x, float_value %g.\n",
hr, float_value);
8254 hr = effect->lpVtbl->GetFloat(effect,
"arr2[1]", &float_value);
8255 ok(
hr ==
D3D_OK && float_value == 0.0f,
"Got unexpected hr %#x, float_value %g.\n",
hr, float_value);
8257 hr = effect->lpVtbl->GetFloatArray(effect,
"ts1[0].v1", float_array, 3);
8258 ok(
hr ==
D3D_OK && !
memcmp(float_array, float_array_zero, 3 *
sizeof(*float_array)),
8259 "Got unexpected hr %#x, ts1[0].v1 (%g, %g, %g).\n",
hr,
8260 float_array[0], float_array[1], float_array[2]);
8262 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2row", &
mat);
8264 ok(!
memcmp(&
mat, &effect_orig_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8265 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2column", &
mat);
8267 ok(!
memcmp(&
mat, &effect_orig_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8269 hr = effect->lpVtbl->GetFloat(effect,
"ts1[0].fv", &float_value);
8270 ok(
hr ==
D3D_OK && float_value == 0.0f,
"Got unexpected hr %#x, float_value %g.\n",
hr, float_value);
8272 hr = effect->lpVtbl->GetFloatArray(effect,
"ts1[0].v2", float_array, 4);
8274 && !
memcmp(float_array + 1, float_array_zero, 3 *
sizeof(*float_array)),
8275 "Got unexpected hr %#x, ts1[0].v2 (%g, %g, %g, %g).\n",
hr,
8276 float_array[0], float_array[1], float_array[2], float_array[3]);
8278 block2 = effect->lpVtbl->EndParameterBlock(effect);
8281 hr = effect->lpVtbl->ApplyParameterBlock(effect,
block2);
8284 hr = effect->lpVtbl->GetFloat(effect,
"arr2[0]", &float_value);
8285 ok(
hr ==
D3D_OK && float_value == 92.0f,
"Got unexpected hr %#x, float_value %g.\n",
hr, float_value);
8286 hr = effect->lpVtbl->GetFloat(effect,
"arr2[1]", &float_value);
8287 ok(
hr ==
D3D_OK && float_value == 0.0f,
"Got unexpected hr %#x, float_value %g.\n",
hr, float_value);
8289 hr = effect->lpVtbl->GetFloatArray(effect,
"ts1[0].v1", float_array, 3);
8290 ok(
hr ==
D3D_OK && !
memcmp(float_array, float_array_zero, 3 *
sizeof(*float_array)),
8291 "Got unexpected hr %#x, ts1[0].v1 (%g, %g, %g).\n",
hr,
8292 float_array[0], float_array[1], float_array[2]);
8294 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2row", &
mat);
8296 ok(!
memcmp(&
mat, &test_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8297 hr = effect->lpVtbl->GetMatrix(effect,
"m3x2column", &
mat);
8299 ok(!
memcmp(&
mat, &test_mat,
sizeof(
mat)),
"Got unexpected matrix.\n");
8301 hr = effect->lpVtbl->GetFloat(effect,
"ts1[0].fv", &float_value);
8302 ok(
hr ==
D3D_OK && float_value == 28.0f,
"Got unexpected hr %#x, float_value %g.\n",
hr, float_value);
8304 hr = effect->lpVtbl->GetFloatArray(effect,
"ts1[0].v2", float_array, 4);
8306 && !
memcmp(float_array + 1, float_array_zero, 3 *
sizeof(*float_array)),
8307 "Got unexpected hr %#x, ts1[0].v2 (%g, %g, %g, %g).\n",
hr,
8308 float_array[0], float_array[1], float_array[2], float_array[3]);
8310 hr = effect->lpVtbl->DeleteParameterBlock(effect,
block);
8312 hr = effect->lpVtbl->DeleteParameterBlock(effect,
block2);
8315 hr = effect->lpVtbl->SetTexture(effect,
"tex1",
NULL);
8318 ok(!refcount,
"Got unexpected refcount %u.\n", refcount);
8320 refcount = effect->lpVtbl->Release(effect);
8321 ok(!refcount,
"Got unexpected refcount %u.\n", refcount);
8323 refcount = effect2->lpVtbl->Release(effect2);
8324 ok(!refcount,
"Got unexpected refcount %u.\n", refcount);
8326 refcount =
pool->lpVtbl->Release(
pool);
8327 ok(!refcount,
"Got unexpected refcount %u.\n", refcount);
8331 hr = effect->lpVtbl->BeginParameterBlock(effect);
8333 mat_arr[0] = mat_arr[1] = test_mat;
8334 hr = effect->lpVtbl->SetMatrixArray(effect,
"f33_2", mat_arr, 2);
8336 block = effect->lpVtbl->EndParameterBlock(effect);
8339 memset(mat_arr, 0,
sizeof(mat_arr));
8340 hr = effect->lpVtbl->SetMatrixArray(effect,
"f33_2", mat_arr, 2);
8342 hr = effect->lpVtbl->ApplyParameterBlock(effect,
block);
8345 hr = effect->lpVtbl->GetMatrixArray(effect,
"f33_2", mat_arr, 2);
8347 ok(!
memcmp(&mat_arr[0], &test_mat,
sizeof(test_mat))
8348 && !
memcmp(&mat_arr[1], &test_mat,
sizeof(test_mat)),
"Got unexpected matrix array.\n");
8350 refcount = effect->lpVtbl->Release(effect);
8351 ok(!refcount,
"Got unexpected refcount %u.\n", refcount);
8354 ok(!refcount,
"Device has %u references left.\n", refcount);
8361 IDirect3DDevice9 *
device;
8389 ok(!refcount,
"Device has %u references left.\n", refcount);
_STLP_DECLSPEC complex< float > _STLP_CALL cos(const complex< float > &)
_STLP_DECLSPEC complex< float > _STLP_CALL sin(const complex< float > &)
valarray< _Tp > acos(const valarray< _Tp > &__x)
valarray< _Tp > atan(const valarray< _Tp > &__x)
valarray< _Tp > asin(const valarray< _Tp > &__x)
valarray< _Tp > atan2(const valarray< _Tp > &__x, const valarray< _Tp > &__y)
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
ACPI_SIZE strlen(const char *String)
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
static unsigned char bytes[4]
#define InterlockedIncrement
#define InterlockedDecrement
static const COLUMN_LIST Columns[]
void __cdecl qsort(_Inout_updates_bytes_(_NumOfElements *_SizeOfElements) void *_Base, _In_ size_t _NumOfElements, _In_ size_t _SizeOfElements, _In_ int(__cdecl *_PtFuncCompare)(const void *, const void *))
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 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
#define D3DERR_INVALIDCALL
struct ID3DXBuffer ID3DXBuffer
static void set_number(void *outdata, D3DXPARAMETER_TYPE outtype, const void *indata, D3DXPARAMETER_TYPE intype)
#define ID3DXBuffer_GetBufferPointer(p)
#define ID3DXBuffer_Release(p)
#define D3DXFX_DONOTSAVESTATE
#define D3DXFX_NOT_CLONEABLE
#define D3DXFX_LARGEADDRESSAWARE
enum _D3DXINCLUDE_TYPE D3DXINCLUDE_TYPE
HRESULT WINAPI D3DXCreateEffectCompiler(const char *srcdata, UINT srcdatalen, const D3DXMACRO *defines, ID3DXInclude *include, DWORD flags, ID3DXEffectCompiler **compiler, ID3DXBuffer **parse_errors)
#define INT_FLOAT_MULTI_INVERSE
HRESULT WINAPI D3DXCreateEffectPool(ID3DXEffectPool **pool)
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 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 **compilationerrors)
HRESULT WINAPI D3DXCreateEffect(struct IDirect3DDevice9 *device, const void *srcdata, UINT srcdatalen, const D3DXMACRO *defines, struct ID3DXInclude *include, 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 HeapFree(x, y, z)
#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 LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
DWORD WINAPI GetTempPathA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
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
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
static const WCHAR desc[]
static const DWORD test_effect_parameter_value_blob_object[]
static void test_effect_parameter_value_ResetValue(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
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 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_get_pass_desc(IDirect3DDevice9 *device)
static const DWORD test_effect_parameter_value_blob_special[]
#define INITIAL_UPDATE_RECORD_SIZE
static void test_effect_parameter_value_GetTestGroup(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
static void test_effect_isparameterused(IDirect3DDevice9 *device)
static const struct @1686 test_effect_parameter_value_data[]
static HRESULT WINAPI test_manager_SetNPatchMode(ID3DXEffectStateManager *iface, FLOAT num_segments)
static void test_effect_compilation_errors(IDirect3DDevice9 *device)
@ EXPECTED_STATE_ANYTHING
static HRESULT WINAPI test_manager_SetVertexShader(ID3DXEffectStateManager *iface, struct IDirect3DVertexShader9 *shader)
#define test_effect_shared_parameters_compare_vconst(args...)
static void test_effect_parameter_value_GetBool(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
static void test_effect_parameter_value_GetBoolArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
static void test_effect_state_manager_init(struct test_manager *state_manager, IDirect3DDevice9 *device)
static IDirect3DDevice9 * create_device(HWND *window)
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_parameter_value_GetMatrixPointerArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
static const struct @1687 test_effect_preshader_op_expected[]
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_GetMatrixTransposeArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
static void test_effect_parameter_value_GetValue(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
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 char temp_path[MAX_PATH]
static const DWORD test_effect_preshader_effect_blob[]
struct test_effect_parameter_value_result test_effect_parameter_value_result_special[]
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)
struct test_effect_parameter_value_result test_effect_parameter_value_result_int[]
static void test_effect_parameter_value_GetFloatArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
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)
static void test_effect_parameter_value_GetInt(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
#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 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_parameter_value_GetVector(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
static void test_effect_preshader(IDirect3DDevice9 *device)
static void test_effect_preshader_relative_addressing(IDirect3DDevice9 *device)
static void test_refcount(void)
#define TEST_EFFECT_UNSUPPORTED_SHADER_BYTECODE_VS_3_0_POS
#define test_effect_preshader_compare_vconsts(a, b, c)
static void test_effect_parameter_value_GetMatrixArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
static struct test_manager * impl_from_ID3DXEffectStateManager(ID3DXEffectStateManager *iface)
static void test_effect_parameter_value_GetMatrixTranspose(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
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, UINT i)
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)
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 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_preshader_compare_shader_(unsigned int line, IDirect3DDevice9 *device, int expected_shader_index, BOOL todo)
#define test_isparameterused_param_with_children(args...)
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_parameter_value_GetMatrixTransposePointerArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
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_GetVectorArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
#define test_effect_preshader_compare_shader_bytecode(a, b, c, d)
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)
#define test_effect_shared_vs_arr_compare_helper(args...)
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)
struct test_effect_parameter_value_result test_effect_parameter_value_result_object[]
static const DWORD test_two_techniques_blob[]
static void test_effect_parameter_value_GetFloat(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
struct test_effect_parameter_value_result test_effect_parameter_value_result_float[]
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_parameter_value_GetIntArray(const struct test_effect_parameter_value_result *res, ID3DXEffect *effect, const DWORD *res_value, D3DXHANDLE parameter, UINT i)
static void test_effect_find_next_valid_technique(void)
#define compare_float(got, exp)
#define create_file(name, size)
const char * expected_result
static IHTMLWindow2 * window
static CHAR string2[MAX_PATH]
#define todo_wine_if(is_todo)
#define cmp(status, error)
#define WS_OVERLAPPEDWINDOW
#define D3DADAPTER_DEFAULT
#define D3DCREATE_HARDWARE_VERTEXPROCESSING
DWORD VertexShaderVersion
D3DXPARAMETER_CLASS Class
ID3DXInclude ID3DXInclude_iface
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)
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI DestroyWindow(_In_ HWND)
static unsigned int block