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);