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");
263 hr = effect->lpVtbl->QueryInterface(effect, &IID_ID3DXBaseEffect, (
void **)&
base);
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);
395 hr = compiler->lpVtbl->QueryInterface(compiler, &IID_ID3DXBaseEffect, (
void **)&
base);
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);
408 ok(
count == 1,
"Release failed, got %u, expected %u\n",
count, 1);
410 count = compiler->lpVtbl->Release(compiler);
430 float2
f2 = {2.1, 2.2};
431 float3
f3 = {3.1, 3.2, 3.3};
432 float4
f4 = {4.1, 4.2, 4.3, 4.4};
433 float1x1 f11 = {11.1};
434 float1x2 f12 = {12.1, 12.2};
435 float1x3 f13 = {13.1, 13.2, 13.3};
436 float1x4 f14 = {14.1, 14.2, 14.3, 14.4};
437 float2x1 f21 = {{21.11, 21.21}};
438 float2x2 f22 = {{22.11, 22.21}, {22.12, 22.22}};
439 float2x3 f23 = {{23.11, 23.21}, {23.12, 23.22}, {23.13, 23.23}};
440 float2x4 f24 = {{24.11, 24.21}, {24.12, 24.22}, {24.13, 24.23}, {24.14, 24.24}};
441 float3x1 f31 = {{31.11, 31.21, 31.31}};
442 float3x2 f32 = {{32.11, 32.21, 32.31}, {32.12, 32.22, 32.32}};
443 float3x3 f33 = {{33.11, 33.21, 33.31}, {33.12, 33.22, 33.32},
444 {33.13, 33.23, 33.33}};
445 float3x4 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}};
447 float4x1 f41 = {{41.11, 41.21, 41.31, 41.41}};
448 float4x2 f42 = {{42.11, 42.21, 42.31, 42.41}, {42.12, 42.22, 42.32, 42.42}};
449 float4x3 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}};
451 float4x4 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}};
453 float f_2[2] = {0.101, 0.102};
454 float1 f1_2[2] = {{1.101}, {1.102}};
455 float2 f2_2[2] = {{2.101, 2.201}, {2.102, 2.202}};
456 float3 f3_2[2] = {{3.101, 3.201, 3.301}, {3.102, 3.202, 3.302}};
457 float4 f4_2[2] = {{4.101, 4.201, 4.301, 4.401}, {4.102, 4.202, 4.302, 4.402}};
458 float1x1 f11_2[2] = {{11.101}, {11.102}};
459 float1x2 f12_2[2] = {{12.101, 12.201}, {12.102, 12.202}};
460 float1x3 f13_2[2] = {{13.101, 13.201, 13.301}, {13.102, 13.202, 13.302}};
461 float1x4 f14_2[2] = {{14.101, 14.201, 14.301, 14.401}, {14.102, 14.202, 14.302, 14.402}};
462 float2x1 f21_2[2] = {{{21.1101, 21.2101}}, {{21.1102, 21.2102}}};
463 float2x2 f22_2[2] = {{{22.1101, 22.2101}, {22.1201, 22.2201}}, {{22.1102, 22.2102}, {22.1202, 22.2202}}};
464 float2x3 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}}};
466 float2x4 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}}};
468 float3x1 f31_2[2] = {{{31.1101, 31.2101, 31.3101}}, {{31.1102, 31.2102, 31.3102}}};
469 float3x2 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}}};
471 float3x3 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}}};
474 float3x4 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}}};
477 float4x1 f41_2[2] = {{{41.1101, 41.2101, 41.3101, 41.4101}}, {{41.1102, 41.2102, 41.3102, 41.4102}}};
478 float4x2 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}}};
480 float4x3 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}}};
483 float4x4 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}}};
487 technique
t {
pass p { } }
491 0xfeff0901, 0x00000b80, 0x00000000, 0x00000003, 0x00000000, 0x00000024, 0x00000000, 0x00000000,
492 0x00000001, 0x00000001, 0x3dcccccd, 0x00000002, 0x00000066, 0x00000003, 0x00000001, 0x0000004c,
493 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x3f8ccccd, 0x00000003, 0x00003166, 0x00000003,
494 0x00000001, 0x00000078, 0x00000000, 0x00000000, 0x00000002, 0x00000001, 0x40066666, 0x400ccccd,
495 0x00000003, 0x00003266, 0x00000003, 0x00000001, 0x000000a8, 0x00000000, 0x00000000, 0x00000003,
496 0x00000001, 0x40466666, 0x404ccccd, 0x40533333, 0x00000003, 0x00003366, 0x00000003, 0x00000001,
497 0x000000dc, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x40833333, 0x40866666, 0x4089999a,
498 0x408ccccd, 0x00000003, 0x00003466, 0x00000003, 0x00000002, 0x00000104, 0x00000000, 0x00000000,
499 0x00000001, 0x00000001, 0x4131999a, 0x00000004, 0x00313166, 0x00000003, 0x00000002, 0x00000130,
500 0x00000000, 0x00000000, 0x00000001, 0x00000002, 0x4141999a, 0x41433333, 0x00000004, 0x00323166,
501 0x00000003, 0x00000002, 0x00000160, 0x00000000, 0x00000000, 0x00000001, 0x00000003, 0x4151999a,
502 0x41533333, 0x4154cccd, 0x00000004, 0x00333166, 0x00000003, 0x00000002, 0x00000194, 0x00000000,
503 0x00000000, 0x00000001, 0x00000004, 0x4161999a, 0x41633333, 0x4164cccd, 0x41666666, 0x00000004,
504 0x00343166, 0x00000003, 0x00000002, 0x000001c0, 0x00000000, 0x00000000, 0x00000002, 0x00000001,
505 0x41a8e148, 0x41a9ae14, 0x00000004, 0x00313266, 0x00000003, 0x00000002, 0x000001f4, 0x00000000,
506 0x00000000, 0x00000002, 0x00000002, 0x41b0e148, 0x41b1ae14, 0x41b0f5c3, 0x41b1c28f, 0x00000004,
507 0x00323266, 0x00000003, 0x00000002, 0x00000230, 0x00000000, 0x00000000, 0x00000002, 0x00000003,
508 0x41b8e148, 0x41b9ae14, 0x41b8f5c3, 0x41b9c28f, 0x41b90a3d, 0x41b9d70a, 0x00000004, 0x00333266,
509 0x00000003, 0x00000002, 0x00000274, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x41c0e148,
510 0x41c1ae14, 0x41c0f5c3, 0x41c1c28f, 0x41c10a3d, 0x41c1d70a, 0x41c11eb8, 0x41c1eb85, 0x00000004,
511 0x00343266, 0x00000003, 0x00000002, 0x000002a4, 0x00000000, 0x00000000, 0x00000003, 0x00000001,
512 0x41f8e148, 0x41f9ae14, 0x41fa7ae1, 0x00000004, 0x00313366, 0x00000003, 0x00000002, 0x000002e0,
513 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x420070a4, 0x4200d70a, 0x42013d71, 0x42007ae1,
514 0x4200e148, 0x420147ae, 0x00000004, 0x00323366, 0x00000003, 0x00000002, 0x00000328, 0x00000000,
515 0x00000000, 0x00000003, 0x00000003, 0x420470a4, 0x4204d70a, 0x42053d71, 0x42047ae1, 0x4204e148,
516 0x420547ae, 0x4204851f, 0x4204eb85, 0x420551ec, 0x00000004, 0x00333366, 0x00000003, 0x00000002,
517 0x0000037c, 0x00000000, 0x00000000, 0x00000003, 0x00000004, 0x420870a4, 0x4208d70a, 0x42093d71,
518 0x42087ae1, 0x4208e148, 0x420947ae, 0x4208851f, 0x4208eb85, 0x420951ec, 0x42088f5c, 0x4208f5c3,
519 0x42095c29, 0x00000004, 0x00343366, 0x00000003, 0x00000002, 0x000003b0, 0x00000000, 0x00000000,
520 0x00000004, 0x00000001, 0x422470a4, 0x4224d70a, 0x42253d71, 0x4225a3d7, 0x00000004, 0x00313466,
521 0x00000003, 0x00000002, 0x000003f4, 0x00000000, 0x00000000, 0x00000004, 0x00000002, 0x422870a4,
522 0x4228d70a, 0x42293d71, 0x4229a3d7, 0x42287ae1, 0x4228e148, 0x422947ae, 0x4229ae14, 0x00000004,
523 0x00323466, 0x00000003, 0x00000002, 0x00000448, 0x00000000, 0x00000000, 0x00000004, 0x00000003,
524 0x422c70a4, 0x422cd70a, 0x422d3d71, 0x422da3d7, 0x422c7ae1, 0x422ce148, 0x422d47ae, 0x422dae14,
525 0x422c851f, 0x422ceb85, 0x422d51ec, 0x422db852, 0x00000004, 0x00333466, 0x00000003, 0x00000002,
526 0x000004ac, 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x423070a4, 0x4230d70a, 0x42313d71,
527 0x4231a3d7, 0x42307ae1, 0x4230e148, 0x423147ae, 0x4231ae14, 0x4230851f, 0x4230eb85, 0x423151ec,
528 0x4231b852, 0x42308f5c, 0x4230f5c3, 0x42315c29, 0x4231c28f, 0x00000004, 0x00343466, 0x00000003,
529 0x00000000, 0x000004d8, 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x3dced917, 0x3dd0e560,
530 0x00000004, 0x00325f66, 0x00000003, 0x00000001, 0x00000504, 0x00000000, 0x00000002, 0x00000001,
531 0x00000001, 0x3f8ced91, 0x3f8d0e56, 0x00000005, 0x325f3166, 0x00000000, 0x00000003, 0x00000001,
532 0x0000053c, 0x00000000, 0x00000002, 0x00000002, 0x00000001, 0x400676c9, 0x400cdd2f, 0x4006872b,
533 0x400ced91, 0x00000005, 0x325f3266, 0x00000000, 0x00000003, 0x00000001, 0x0000057c, 0x00000000,
534 0x00000002, 0x00000003, 0x00000001, 0x404676c9, 0x404cdd2f, 0x40534396, 0x4046872b, 0x404ced91,
535 0x405353f8, 0x00000005, 0x325f3366, 0x00000000, 0x00000003, 0x00000001, 0x000005c4, 0x00000000,
536 0x00000002, 0x00000004, 0x00000001, 0x40833b64, 0x40866e98, 0x4089a1cb, 0x408cd4fe, 0x40834396,
537 0x408676c9, 0x4089a9fc, 0x408cdd2f, 0x00000005, 0x325f3466, 0x00000000, 0x00000003, 0x00000002,
538 0x000005f4, 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x41319db2, 0x4131a1cb, 0x00000006,
539 0x5f313166, 0x00000032, 0x00000003, 0x00000002, 0x0000062c, 0x00000000, 0x00000002, 0x00000001,
540 0x00000002, 0x41419db2, 0x4143374c, 0x4141a1cb, 0x41433b64, 0x00000006, 0x5f323166, 0x00000032,
541 0x00000003, 0x00000002, 0x0000066c, 0x00000000, 0x00000002, 0x00000001, 0x00000003, 0x41519db2,
542 0x4153374c, 0x4154d0e5, 0x4151a1cb, 0x41533b64, 0x4154d4fe, 0x00000006, 0x5f333166, 0x00000032,
543 0x00000003, 0x00000002, 0x000006b4, 0x00000000, 0x00000002, 0x00000001, 0x00000004, 0x41619db2,
544 0x4163374c, 0x4164d0e5, 0x41666a7f, 0x4161a1cb, 0x41633b64, 0x4164d4fe, 0x41666e98, 0x00000006,
545 0x5f343166, 0x00000032, 0x00000003, 0x00000002, 0x000006ec, 0x00000000, 0x00000002, 0x00000002,
546 0x00000001, 0x41a8e17c, 0x41a9ae49, 0x41a8e1b1, 0x41a9ae7d, 0x00000006, 0x5f313266, 0x00000032,
547 0x00000003, 0x00000002, 0x00000734, 0x00000000, 0x00000002, 0x00000002, 0x00000002, 0x41b0e17c,
548 0x41b1ae49, 0x41b0f5f7, 0x41b1c2c4, 0x41b0e1b1, 0x41b1ae7d, 0x41b0f62b, 0x41b1c2f8, 0x00000006,
549 0x5f323266, 0x00000032, 0x00000003, 0x00000002, 0x0000078c, 0x00000000, 0x00000002, 0x00000002,
550 0x00000003, 0x41b8e17c, 0x41b9ae49, 0x41b8f5f7, 0x41b9c2c4, 0x41b90a72, 0x41b9d73f, 0x41b8e1b1,
551 0x41b9ae7d, 0x41b8f62b, 0x41b9c2f8, 0x41b90aa6, 0x41b9d773, 0x00000006, 0x5f333266, 0x00000032,
552 0x00000003, 0x00000002, 0x000007f4, 0x00000000, 0x00000002, 0x00000002, 0x00000004, 0x41c0e17c,
553 0x41c1ae49, 0x41c0f5f7, 0x41c1c2c4, 0x41c10a72, 0x41c1d73f, 0x41c11eed, 0x41c1ebba, 0x41c0e1b1,
554 0x41c1ae7d, 0x41c0f62b, 0x41c1c2f8, 0x41c10aa6, 0x41c1d773, 0x41c11f21, 0x41c1ebee, 0x00000006,
555 0x5f343266, 0x00000032, 0x00000003, 0x00000002, 0x00000834, 0x00000000, 0x00000002, 0x00000003,
556 0x00000001, 0x41f8e17c, 0x41f9ae49, 0x41fa7b16, 0x41f8e1b1, 0x41f9ae7d, 0x41fa7b4a, 0x00000006,
557 0x5f313366, 0x00000032, 0x00000003, 0x00000002, 0x0000088c, 0x00000000, 0x00000002, 0x00000003,
558 0x00000002, 0x420070be, 0x4200d724, 0x42013d8b, 0x42007afb, 0x4200e162, 0x420147c8, 0x420070d8,
559 0x4200d73f, 0x42013da5, 0x42007b16, 0x4200e17c, 0x420147e3, 0x00000006, 0x5f323366, 0x00000032,
560 0x00000003, 0x00000002, 0x000008fc, 0x00000000, 0x00000002, 0x00000003, 0x00000003, 0x420470be,
561 0x4204d724, 0x42053d8b, 0x42047afb, 0x4204e162, 0x420547c8, 0x42048539, 0x4204eb9f, 0x42055206,
562 0x420470d8, 0x4204d73f, 0x42053da5, 0x42047b16, 0x4204e17c, 0x420547e3, 0x42048553, 0x4204ebba,
563 0x42055220, 0x00000006, 0x5f333366, 0x00000032, 0x00000003, 0x00000002, 0x00000984, 0x00000000,
564 0x00000002, 0x00000003, 0x00000004, 0x420870be, 0x4208d724, 0x42093d8b, 0x42087afb, 0x4208e162,
565 0x420947c8, 0x42088539, 0x4208eb9f, 0x42095206, 0x42088f76, 0x4208f5dd, 0x42095c43, 0x420870d8,
566 0x4208d73f, 0x42093da5, 0x42087b16, 0x4208e17c, 0x420947e3, 0x42088553, 0x4208ebba, 0x42095220,
567 0x42088f91, 0x4208f5f7, 0x42095c5d, 0x00000006, 0x5f343366, 0x00000032, 0x00000003, 0x00000002,
568 0x000009cc, 0x00000000, 0x00000002, 0x00000004, 0x00000001, 0x422470be, 0x4224d724, 0x42253d8b,
569 0x4225a3f1, 0x422470d8, 0x4224d73f, 0x42253da5, 0x4225a40b, 0x00000006, 0x5f313466, 0x00000032,
570 0x00000003, 0x00000002, 0x00000a34, 0x00000000, 0x00000002, 0x00000004, 0x00000002, 0x422870be,
571 0x4228d724, 0x42293d8b, 0x4229a3f1, 0x42287afb, 0x4228e162, 0x422947c8, 0x4229ae2f, 0x422870d8,
572 0x4228d73f, 0x42293da5, 0x4229a40b, 0x42287b16, 0x4228e17c, 0x422947e3, 0x4229ae49, 0x00000006,
573 0x5f323466, 0x00000032, 0x00000003, 0x00000002, 0x00000abc, 0x00000000, 0x00000002, 0x00000004,
574 0x00000003, 0x422c70be, 0x422cd724, 0x422d3d8b, 0x422da3f1, 0x422c7afb, 0x422ce162, 0x422d47c8,
575 0x422dae2f, 0x422c8539, 0x422ceb9f, 0x422d5206, 0x422db86c, 0x422c70d8, 0x422cd73f, 0x422d3da5,
576 0x422da40b, 0x422c7b16, 0x422ce17c, 0x422d47e3, 0x422dae49, 0x422c8553, 0x422cebba, 0x422d5220,
577 0x422db886, 0x00000006, 0x5f333466, 0x00000032, 0x00000003, 0x00000002, 0x00000b64, 0x00000000,
578 0x00000002, 0x00000004, 0x00000004, 0x423070be, 0x4230d724, 0x42313d8b, 0x4231a3f1, 0x42307afb,
579 0x4230e162, 0x423147c8, 0x4231ae2f, 0x42308539, 0x4230eb9f, 0x42315206, 0x4231b86c, 0x42308f76,
580 0x4230f5dd, 0x42315c43, 0x4231c2aa, 0x423070d8, 0x4230d73f, 0x42313da5, 0x4231a40b, 0x42307b16,
581 0x4230e17c, 0x423147e3, 0x4231ae49, 0x42308553, 0x4230ebba, 0x42315220, 0x4231b886, 0x42308f91,
582 0x4230f5f7, 0x42315c5d, 0x4231c2c4, 0x00000006, 0x5f343466, 0x00000032, 0x00000002, 0x00000070,
583 0x00000002, 0x00000074, 0x0000002a, 0x00000001, 0x00000001, 0x00000001, 0x00000004, 0x00000020,
584 0x00000000, 0x00000000, 0x0000002c, 0x00000048, 0x00000000, 0x00000000, 0x00000054, 0x00000070,
585 0x00000000, 0x00000000, 0x00000080, 0x0000009c, 0x00000000, 0x00000000, 0x000000b0, 0x000000cc,
586 0x00000000, 0x00000000, 0x000000e4, 0x00000100, 0x00000000, 0x00000000, 0x0000010c, 0x00000128,
587 0x00000000, 0x00000000, 0x00000138, 0x00000154, 0x00000000, 0x00000000, 0x00000168, 0x00000184,
588 0x00000000, 0x00000000, 0x0000019c, 0x000001b8, 0x00000000, 0x00000000, 0x000001c8, 0x000001e4,
589 0x00000000, 0x00000000, 0x000001fc, 0x00000218, 0x00000000, 0x00000000, 0x00000238, 0x00000254,
590 0x00000000, 0x00000000, 0x0000027c, 0x00000298, 0x00000000, 0x00000000, 0x000002ac, 0x000002c8,
591 0x00000000, 0x00000000, 0x000002e8, 0x00000304, 0x00000000, 0x00000000, 0x00000330, 0x0000034c,
592 0x00000000, 0x00000000, 0x00000384, 0x000003a0, 0x00000000, 0x00000000, 0x000003b8, 0x000003d4,
593 0x00000000, 0x00000000, 0x000003fc, 0x00000418, 0x00000000, 0x00000000, 0x00000450, 0x0000046c,
594 0x00000000, 0x00000000, 0x000004b4, 0x000004d0, 0x00000000, 0x00000000, 0x000004e0, 0x000004fc,
595 0x00000000, 0x00000000, 0x00000510, 0x0000052c, 0x00000000, 0x00000000, 0x00000548, 0x00000564,
596 0x00000000, 0x00000000, 0x00000588, 0x000005a4, 0x00000000, 0x00000000, 0x000005d0, 0x000005ec,
597 0x00000000, 0x00000000, 0x00000600, 0x0000061c, 0x00000000, 0x00000000, 0x00000638, 0x00000654,
598 0x00000000, 0x00000000, 0x00000678, 0x00000694, 0x00000000, 0x00000000, 0x000006c0, 0x000006dc,
599 0x00000000, 0x00000000, 0x000006f8, 0x00000714, 0x00000000, 0x00000000, 0x00000740, 0x0000075c,
600 0x00000000, 0x00000000, 0x00000798, 0x000007b4, 0x00000000, 0x00000000, 0x00000800, 0x0000081c,
601 0x00000000, 0x00000000, 0x00000840, 0x0000085c, 0x00000000, 0x00000000, 0x00000898, 0x000008b4,
602 0x00000000, 0x00000000, 0x00000908, 0x00000924, 0x00000000, 0x00000000, 0x00000990, 0x000009ac,
603 0x00000000, 0x00000000, 0x000009d8, 0x000009f4, 0x00000000, 0x00000000, 0x00000a40, 0x00000a5c,
604 0x00000000, 0x00000000, 0x00000ac8, 0x00000ae4, 0x00000000, 0x00000000, 0x00000b78, 0x00000000,
605 0x00000001, 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},
661 int3 i3 = {31, 32, 33};
662 int4 i4 = {41, 42, 43, 44};
664 int1x2 i12 = {121, 122};
665 int1x3 i13 = {131, 132, 133};
666 int1x4 i14 = {141, 142, 143, 144};
667 int2x1 i21 = {{2111, 2121}};
668 int2x2 i22 = {{2211, 2221}, {2212, 2222}};
669 int2x3 i23 = {{2311, 2321}, {2312, 2322}, {2313, 2323}};
670 int2x4 i24 = {{2411, 2421}, {2412, 2422}, {2413, 2423}, {2414, 2424}};
671 int3x1 i31 = {{3111, 3121, 3131}};
672 int3x2 i32 = {{3211, 3221, 3231}, {3212, 3222, 3232}};
673 int3x3 i33 = {{3311, 3321, 3331}, {3312, 3322, 3332},
675 int3x4 i34 = {{3411, 3421, 3431}, {3412, 3422, 3432},
676 {3413, 3423, 3433}, {3414, 3424, 3434}};
677 int4x1 i41 = {{4111, 4121, 4131, 4141}};
678 int4x2 i42 = {{4211, 4221, 4231, 4241}, {4212, 4222, 4232, 4242}};
679 int4x3 i43 = {{4311, 4321, 4331, 4341}, {4312, 4322, 4332, 4342},
680 {4313, 4323, 4333, 4343}};
681 int4x4 i44 = {{4411, 4421, 4431, 4441}, {4412, 4422, 4432, 4442},
682 {4413, 4423, 4433, 4443}, {4414, 4424, 4434, 4444}};
683 int i_2[2] = {0101, 0102};
684 int1 i1_2[2] = {{1101}, {1102}};
685 int2 i2_2[2] = {{2101, 2201}, {2102, 2202}};
686 int3 i3_2[2] = {{3101, 3201, 3301}, {3102, 3202, 3302}};
687 int4 i4_2[2] = {{4101, 4201, 4301, 4401}, {4102, 4202, 4302, 4402}};
688 int1x1 i11_2[2] = {{11101}, {11102}};
689 int1x2 i12_2[2] = {{12101, 12201}, {12102, 12202}};
690 int1x3 i13_2[2] = {{13101, 13201, 13301}, {13102, 13202, 13302}};
691 int1x4 i14_2[2] = {{14101, 14201, 14301, 14401}, {14102, 14202, 14302, 14402}};
692 int2x1 i21_2[2] = {{{211101, 212101}}, {{211102, 212102}}};
693 int2x2 i22_2[2] = {{{221101, 222101}, {221201, 222201}}, {{221102, 222102}, {221202, 222202}}};
694 int2x3 i23_2[2] = {{{231101, 232101}, {231201, 232201}, {231301, 232301}}, {{231102, 232102},
695 {231202, 232202}, {231302, 232302}}};
696 int2x4 i24_2[2] = {{{241101, 242101}, {241201, 242201}, {241301, 242301}, {241401, 242401}},
697 {{241102, 242102}, {241202, 242202}, {241302, 242302}, {241402, 242402}}};
698 int3x1 i31_2[2] = {{{311101, 312101, 313101}}, {{311102, 312102, 313102}}};
699 int3x2 i32_2[2] = {{{321101, 322101, 323101}, {321201, 322201, 323201}},
700 {{321102, 322102, 323102}, {321202, 322202, 323202}}};
701 int3x3 i33_2[2] = {{{331101, 332101, 333101}, {331201, 332201, 333201},
702 {331301, 332301, 333301}}, {{331102, 332102, 333102}, {331202, 332202, 333202},
703 {331302, 332302, 333302}}};
704 int3x4 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}}};
707 int4x1 i41_2[2] = {{{411101, 412101, 413101, 414101}}, {{411102, 412102, 413102, 414102}}};
708 int4x2 i42_2[2] = {{{421101, 422101, 423101, 424101}, {421201, 422201, 423201, 424201}},
709 {{421102, 422102, 423102, 424102}, {421202, 422202, 423202, 424202}}};
710 int4x3 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}}};
713 int4x4 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}}};
717 technique
t {
pass p { } }
721 0xfeff0901, 0x00000b80, 0x00000000, 0x00000002, 0x00000000, 0x00000024, 0x00000000, 0x00000000,
722 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000069, 0x00000002, 0x00000001, 0x0000004c,
723 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x0000000b, 0x00000003, 0x00003169, 0x00000002,
724 0x00000001, 0x00000078, 0x00000000, 0x00000000, 0x00000002, 0x00000001, 0x00000015, 0x00000016,
725 0x00000003, 0x00003269, 0x00000002, 0x00000001, 0x000000a8, 0x00000000, 0x00000000, 0x00000003,
726 0x00000001, 0x0000001f, 0x00000020, 0x00000021, 0x00000003, 0x00003369, 0x00000002, 0x00000001,
727 0x000000dc, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000029, 0x0000002a, 0x0000002b,
728 0x0000002c, 0x00000003, 0x00003469, 0x00000002, 0x00000002, 0x00000104, 0x00000000, 0x00000000,
729 0x00000001, 0x00000001, 0x0000006f, 0x00000004, 0x00313169, 0x00000002, 0x00000002, 0x00000130,
730 0x00000000, 0x00000000, 0x00000001, 0x00000002, 0x00000079, 0x0000007a, 0x00000004, 0x00323169,
731 0x00000002, 0x00000002, 0x00000160, 0x00000000, 0x00000000, 0x00000001, 0x00000003, 0x00000083,
732 0x00000084, 0x00000085, 0x00000004, 0x00333169, 0x00000002, 0x00000002, 0x00000194, 0x00000000,
733 0x00000000, 0x00000001, 0x00000004, 0x0000008d, 0x0000008e, 0x0000008f, 0x00000090, 0x00000004,
734 0x00343169, 0x00000002, 0x00000002, 0x000001c0, 0x00000000, 0x00000000, 0x00000002, 0x00000001,
735 0x0000083f, 0x00000849, 0x00000004, 0x00313269, 0x00000002, 0x00000002, 0x000001f4, 0x00000000,
736 0x00000000, 0x00000002, 0x00000002, 0x000008a3, 0x000008ad, 0x000008a4, 0x000008ae, 0x00000004,
737 0x00323269, 0x00000002, 0x00000002, 0x00000230, 0x00000000, 0x00000000, 0x00000002, 0x00000003,
738 0x00000907, 0x00000911, 0x00000908, 0x00000912, 0x00000909, 0x00000913, 0x00000004, 0x00333269,
739 0x00000002, 0x00000002, 0x00000274, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x0000096b,
740 0x00000975, 0x0000096c, 0x00000976, 0x0000096d, 0x00000977, 0x0000096e, 0x00000978, 0x00000004,
741 0x00343269, 0x00000002, 0x00000002, 0x000002a4, 0x00000000, 0x00000000, 0x00000003, 0x00000001,
742 0x00000c27, 0x00000c31, 0x00000c3b, 0x00000004, 0x00313369, 0x00000002, 0x00000002, 0x000002e0,
743 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000c8b, 0x00000c95, 0x00000c9f, 0x00000c8c,
744 0x00000c96, 0x00000ca0, 0x00000004, 0x00323369, 0x00000002, 0x00000002, 0x00000328, 0x00000000,
745 0x00000000, 0x00000003, 0x00000003, 0x00000cef, 0x00000cf9, 0x00000d03, 0x00000cf0, 0x00000cfa,
746 0x00000d04, 0x00000cf1, 0x00000cfb, 0x00000d05, 0x00000004, 0x00333369, 0x00000002, 0x00000002,
747 0x0000037c, 0x00000000, 0x00000000, 0x00000003, 0x00000004, 0x00000d53, 0x00000d5d, 0x00000d67,
748 0x00000d54, 0x00000d5e, 0x00000d68, 0x00000d55, 0x00000d5f, 0x00000d69, 0x00000d56, 0x00000d60,
749 0x00000d6a, 0x00000004, 0x00343369, 0x00000002, 0x00000002, 0x000003b0, 0x00000000, 0x00000000,
750 0x00000004, 0x00000001, 0x0000100f, 0x00001019, 0x00001023, 0x0000102d, 0x00000004, 0x00313469,
751 0x00000002, 0x00000002, 0x000003f4, 0x00000000, 0x00000000, 0x00000004, 0x00000002, 0x00001073,
752 0x0000107d, 0x00001087, 0x00001091, 0x00001074, 0x0000107e, 0x00001088, 0x00001092, 0x00000004,
753 0x00323469, 0x00000002, 0x00000002, 0x00000448, 0x00000000, 0x00000000, 0x00000004, 0x00000003,
754 0x000010d7, 0x000010e1, 0x000010eb, 0x000010f5, 0x000010d8, 0x000010e2, 0x000010ec, 0x000010f6,
755 0x000010d9, 0x000010e3, 0x000010ed, 0x000010f7, 0x00000004, 0x00333469, 0x00000002, 0x00000002,
756 0x000004ac, 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x0000113b, 0x00001145, 0x0000114f,
757 0x00001159, 0x0000113c, 0x00001146, 0x00001150, 0x0000115a, 0x0000113d, 0x00001147, 0x00001151,
758 0x0000115b, 0x0000113e, 0x00001148, 0x00001152, 0x0000115c, 0x00000004, 0x00343469, 0x00000002,
759 0x00000000, 0x000004d8, 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x00000041, 0x00000042,
760 0x00000004, 0x00325f69, 0x00000002, 0x00000001, 0x00000504, 0x00000000, 0x00000002, 0x00000001,
761 0x00000001, 0x0000044d, 0x0000044e, 0x00000005, 0x325f3169, 0x00000000, 0x00000002, 0x00000001,
762 0x0000053c, 0x00000000, 0x00000002, 0x00000002, 0x00000001, 0x00000835, 0x00000899, 0x00000836,
763 0x0000089a, 0x00000005, 0x325f3269, 0x00000000, 0x00000002, 0x00000001, 0x0000057c, 0x00000000,
764 0x00000002, 0x00000003, 0x00000001, 0x00000c1d, 0x00000c81, 0x00000ce5, 0x00000c1e, 0x00000c82,
765 0x00000ce6, 0x00000005, 0x325f3369, 0x00000000, 0x00000002, 0x00000001, 0x000005c4, 0x00000000,
766 0x00000002, 0x00000004, 0x00000001, 0x00001005, 0x00001069, 0x000010cd, 0x00001131, 0x00001006,
767 0x0000106a, 0x000010ce, 0x00001132, 0x00000005, 0x325f3469, 0x00000000, 0x00000002, 0x00000002,
768 0x000005f4, 0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x00002b5d, 0x00002b5e, 0x00000006,
769 0x5f313169, 0x00000032, 0x00000002, 0x00000002, 0x0000062c, 0x00000000, 0x00000002, 0x00000001,
770 0x00000002, 0x00002f45, 0x00002fa9, 0x00002f46, 0x00002faa, 0x00000006, 0x5f323169, 0x00000032,
771 0x00000002, 0x00000002, 0x0000066c, 0x00000000, 0x00000002, 0x00000001, 0x00000003, 0x0000332d,
772 0x00003391, 0x000033f5, 0x0000332e, 0x00003392, 0x000033f6, 0x00000006, 0x5f333169, 0x00000032,
773 0x00000002, 0x00000002, 0x000006b4, 0x00000000, 0x00000002, 0x00000001, 0x00000004, 0x00003715,
774 0x00003779, 0x000037dd, 0x00003841, 0x00003716, 0x0000377a, 0x000037de, 0x00003842, 0x00000006,
775 0x5f343169, 0x00000032, 0x00000002, 0x00000002, 0x000006ec, 0x00000000, 0x00000002, 0x00000002,
776 0x00000001, 0x0003389d, 0x00033c85, 0x0003389e, 0x00033c86, 0x00000006, 0x5f313269, 0x00000032,
777 0x00000002, 0x00000002, 0x00000734, 0x00000000, 0x00000002, 0x00000002, 0x00000002, 0x00035fad,
778 0x00036395, 0x00036011, 0x000363f9, 0x00035fae, 0x00036396, 0x00036012, 0x000363fa, 0x00000006,
779 0x5f323269, 0x00000032, 0x00000002, 0x00000002, 0x0000078c, 0x00000000, 0x00000002, 0x00000002,
780 0x00000003, 0x000386bd, 0x00038aa5, 0x00038721, 0x00038b09, 0x00038785, 0x00038b6d, 0x000386be,
781 0x00038aa6, 0x00038722, 0x00038b0a, 0x00038786, 0x00038b6e, 0x00000006, 0x5f333269, 0x00000032,
782 0x00000002, 0x00000002, 0x000007f4, 0x00000000, 0x00000002, 0x00000002, 0x00000004, 0x0003adcd,
783 0x0003b1b5, 0x0003ae31, 0x0003b219, 0x0003ae95, 0x0003b27d, 0x0003aef9, 0x0003b2e1, 0x0003adce,
784 0x0003b1b6, 0x0003ae32, 0x0003b21a, 0x0003ae96, 0x0003b27e, 0x0003aefa, 0x0003b2e2, 0x00000006,
785 0x5f343269, 0x00000032, 0x00000002, 0x00000002, 0x00000834, 0x00000000, 0x00000002, 0x00000003,
786 0x00000001, 0x0004bf3d, 0x0004c325, 0x0004c70d, 0x0004bf3e, 0x0004c326, 0x0004c70e, 0x00000006,
787 0x5f313369, 0x00000032, 0x00000002, 0x00000002, 0x0000088c, 0x00000000, 0x00000002, 0x00000003,
788 0x00000002, 0x0004e64d, 0x0004ea35, 0x0004ee1d, 0x0004e6b1, 0x0004ea99, 0x0004ee81, 0x0004e64e,
789 0x0004ea36, 0x0004ee1e, 0x0004e6b2, 0x0004ea9a, 0x0004ee82, 0x00000006, 0x5f323369, 0x00000032,
790 0x00000002, 0x00000002, 0x000008fc, 0x00000000, 0x00000002, 0x00000003, 0x00000003, 0x00050d5d,
791 0x00051145, 0x0005152d, 0x00050dc1, 0x000511a9, 0x00051591, 0x00050e25, 0x0005120d, 0x000515f5,
792 0x00050d5e, 0x00051146, 0x0005152e, 0x00050dc2, 0x000511aa, 0x00051592, 0x00050e26, 0x0005120e,
793 0x000515f6, 0x00000006, 0x5f333369, 0x00000032, 0x00000002, 0x00000002, 0x00000984, 0x00000000,
794 0x00000002, 0x00000003, 0x00000004, 0x0005346d, 0x00053855, 0x00053c3d, 0x000534d1, 0x000538b9,
795 0x00053ca1, 0x00053535, 0x0005391d, 0x00053d05, 0x00053599, 0x00053981, 0x00053d69, 0x0005346e,
796 0x00053856, 0x00053c3e, 0x000534d2, 0x000538ba, 0x00053ca2, 0x00053536, 0x0005391e, 0x00053d06,
797 0x0005359a, 0x00053982, 0x00053d6a, 0x00000006, 0x5f343369, 0x00000032, 0x00000002, 0x00000002,
798 0x000009cc, 0x00000000, 0x00000002, 0x00000004, 0x00000001, 0x000645dd, 0x000649c5, 0x00064dad,
799 0x00065195, 0x000645de, 0x000649c6, 0x00064dae, 0x00065196, 0x00000006, 0x5f313469, 0x00000032,
800 0x00000002, 0x00000002, 0x00000a34, 0x00000000, 0x00000002, 0x00000004, 0x00000002, 0x00066ced,
801 0x000670d5, 0x000674bd, 0x000678a5, 0x00066d51, 0x00067139, 0x00067521, 0x00067909, 0x00066cee,
802 0x000670d6, 0x000674be, 0x000678a6, 0x00066d52, 0x0006713a, 0x00067522, 0x0006790a, 0x00000006,
803 0x5f323469, 0x00000032, 0x00000002, 0x00000002, 0x00000abc, 0x00000000, 0x00000002, 0x00000004,
804 0x00000003, 0x000693fd, 0x000697e5, 0x00069bcd, 0x00069fb5, 0x00069461, 0x00069849, 0x00069c31,
805 0x0006a019, 0x000694c5, 0x000698ad, 0x00069c95, 0x0006a07d, 0x000693fe, 0x000697e6, 0x00069bce,
806 0x00069fb6, 0x00069462, 0x0006984a, 0x00069c32, 0x0006a01a, 0x000694c6, 0x000698ae, 0x00069c96,
807 0x0006a07e, 0x00000006, 0x5f333469, 0x00000032, 0x00000002, 0x00000002, 0x00000b64, 0x00000000,
808 0x00000002, 0x00000004, 0x00000004, 0x0006bb0d, 0x0006bef5, 0x0006c2dd, 0x0006c6c5, 0x0006bb71,
809 0x0006bf59, 0x0006c341, 0x0006c729, 0x0006bbd5, 0x0006bfbd, 0x0006c3a5, 0x0006c78d, 0x0006bc39,
810 0x0006c021, 0x0006c409, 0x0006c7f1, 0x0006bb0e, 0x0006bef6, 0x0006c2de, 0x0006c6c6, 0x0006bb72,
811 0x0006bf5a, 0x0006c342, 0x0006c72a, 0x0006bbd6, 0x0006bfbe, 0x0006c3a6, 0x0006c78e, 0x0006bc3a,
812 0x0006c022, 0x0006c40a, 0x0006c7f2, 0x00000006, 0x5f343469, 0x00000032, 0x00000002, 0x00000070,
813 0x00000002, 0x00000074, 0x0000002a, 0x00000001, 0x00000001, 0x00000001, 0x00000004, 0x00000020,
814 0x00000000, 0x00000000, 0x0000002c, 0x00000048, 0x00000000, 0x00000000, 0x00000054, 0x00000070,
815 0x00000000, 0x00000000, 0x00000080, 0x0000009c, 0x00000000, 0x00000000, 0x000000b0, 0x000000cc,
816 0x00000000, 0x00000000, 0x000000e4, 0x00000100, 0x00000000, 0x00000000, 0x0000010c, 0x00000128,
817 0x00000000, 0x00000000, 0x00000138, 0x00000154, 0x00000000, 0x00000000, 0x00000168, 0x00000184,
818 0x00000000, 0x00000000, 0x0000019c, 0x000001b8, 0x00000000, 0x00000000, 0x000001c8, 0x000001e4,
819 0x00000000, 0x00000000, 0x000001fc, 0x00000218, 0x00000000, 0x00000000, 0x00000238, 0x00000254,
820 0x00000000, 0x00000000, 0x0000027c, 0x00000298, 0x00000000, 0x00000000, 0x000002ac, 0x000002c8,
821 0x00000000, 0x00000000, 0x000002e8, 0x00000304, 0x00000000, 0x00000000, 0x00000330, 0x0000034c,
822 0x00000000, 0x00000000, 0x00000384, 0x000003a0, 0x00000000, 0x00000000, 0x000003b8, 0x000003d4,
823 0x00000000, 0x00000000, 0x000003fc, 0x00000418, 0x00000000, 0x00000000, 0x00000450, 0x0000046c,
824 0x00000000, 0x00000000, 0x000004b4, 0x000004d0, 0x00000000, 0x00000000, 0x000004e0, 0x000004fc,
825 0x00000000, 0x00000000, 0x00000510, 0x0000052c, 0x00000000, 0x00000000, 0x00000548, 0x00000564,
826 0x00000000, 0x00000000, 0x00000588, 0x000005a4, 0x00000000, 0x00000000, 0x000005d0, 0x000005ec,
827 0x00000000, 0x00000000, 0x00000600, 0x0000061c, 0x00000000, 0x00000000, 0x00000638, 0x00000654,
828 0x00000000, 0x00000000, 0x00000678, 0x00000694, 0x00000000, 0x00000000, 0x000006c0, 0x000006dc,
829 0x00000000, 0x00000000, 0x000006f8, 0x00000714, 0x00000000, 0x00000000, 0x00000740, 0x0000075c,
830 0x00000000, 0x00000000, 0x00000798, 0x000007b4, 0x00000000, 0x00000000, 0x00000800, 0x0000081c,
831 0x00000000, 0x00000000, 0x00000840, 0x0000085c, 0x00000000, 0x00000000, 0x00000898, 0x000008b4,
832 0x00000000, 0x00000000, 0x00000908, 0x00000924, 0x00000000, 0x00000000, 0x00000990, 0x000009ac,
833 0x00000000, 0x00000000, 0x000009d8, 0x000009f4, 0x00000000, 0x00000000, 0x00000a40, 0x00000a5c,
834 0x00000000, 0x00000000, 0x00000ac8, 0x00000ae4, 0x00000000, 0x00000000, 0x00000b78, 0x00000000,
835 0x00000001, 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},
889 string s_2[2] = {
"test1",
"test2"};
895 technique
t {
pass p { } }
899 0xfeff0901, 0x00000100, 0x00000000, 0x00000004, 0x00000004, 0x0000001c, 0x00000000, 0x00000000,
900 0x00000001, 0x00000002, 0x00000073, 0x00000004, 0x00000004, 0x00000040, 0x00000000, 0x00000002,
901 0x00000002, 0x00000003, 0x00000004, 0x00325f73, 0x00000007, 0x00000004, 0x00000060, 0x00000000,
902 0x00000000, 0x00000004, 0x00000004, 0x00786574, 0x00000010, 0x00000004, 0x00000080, 0x00000000,
903 0x00000000, 0x00000005, 0x00000002, 0x00000076, 0x00000010, 0x00000004, 0x000000a4, 0x00000000,
904 0x00000002, 0x00000006, 0x00000007, 0x00000004, 0x00325f76, 0x0000000f, 0x00000004, 0x000000c4,
905 0x00000000, 0x00000000, 0x00000008, 0x00000002, 0x00000070, 0x0000000f, 0x00000004, 0x000000e8,
906 0x00000000, 0x00000002, 0x00000009, 0x0000000a, 0x00000004, 0x00325f70, 0x00000002, 0x00000070,
907 0x00000002, 0x00000074, 0x00000007, 0x00000001, 0x00000007, 0x0000000b, 0x00000004, 0x00000018,
908 0x00000000, 0x00000000, 0x00000024, 0x00000038, 0x00000000, 0x00000000, 0x00000048, 0x0000005c,
909 0x00000000, 0x00000000, 0x00000068, 0x0000007c, 0x00000000, 0x00000000, 0x00000088, 0x0000009c,
910 0x00000000, 0x00000000, 0x000000ac, 0x000000c0, 0x00000000, 0x00000000, 0x000000cc, 0x000000e0,
911 0x00000000, 0x00000000, 0x000000f8, 0x00000000, 0x00000001, 0x000000f0, 0x00000000, 0x00000000,
912 0x0000000a, 0x00000000, 0x00000009, 0x00000000, 0x0000000a, 0x00000000, 0x00000008, 0x00000000,
913 0x00000006, 0x00000000, 0x00000007, 0x00000000, 0x00000005, 0x00000000, 0x00000004, 0x00000000,
914 0x00000002, 0x00000006, 0x74736574, 0x00000031, 0x00000003, 0x00000006, 0x74736574, 0x00000032,
915 0x00000001, 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},
933 float3
f3 = {-3.1, 153.2, 283.3};
934 float3 f3min = {-31.1, -31.2, -31.3};
935 float3 f3max = {320.1, 320.2, 320.3};
936 float4
f4 = {-4.1, 154.2, 284.3, 34.4};
937 float4 f4min = {-41.1, -41.2, -41.3, -41.4};
938 float4 f4max = {420.1, 42.20, 420.3, 420.4};
939 technique
t {
pass p { } }
943 0xfeff0901, 0x00000150, 0x00000000, 0x00000003, 0x00000001, 0x0000002c, 0x00000000, 0x00000000,
944 0x00000003, 0x00000001, 0xc0466666, 0x43193333, 0x438da666, 0x00000003, 0x00003366, 0x00000003,
945 0x00000001, 0x0000005c, 0x00000000, 0x00000000, 0x00000003, 0x00000001, 0xc1f8cccd, 0xc1f9999a,
946 0xc1fa6666, 0x00000006, 0x696d3366, 0x0000006e, 0x00000003, 0x00000001, 0x00000090, 0x00000000,
947 0x00000000, 0x00000003, 0x00000001, 0x43a00ccd, 0x43a0199a, 0x43a02666, 0x00000006, 0x616d3366,
948 0x00000078, 0x00000003, 0x00000001, 0x000000c8, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
949 0xc0833333, 0x431a3333, 0x438e2666, 0x4209999a, 0x00000003, 0x00003466, 0x00000003, 0x00000001,
950 0x000000fc, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0xc2246666, 0xc224cccd, 0xc2253333,
951 0xc225999a, 0x00000006, 0x696d3466, 0x0000006e, 0x00000003, 0x00000001, 0x00000134, 0x00000000,
952 0x00000000, 0x00000004, 0x00000001, 0x43d20ccd, 0x4228cccd, 0x43d22666, 0x43d23333, 0x00000006,
953 0x616d3466, 0x00000078, 0x00000002, 0x00000070, 0x00000002, 0x00000074, 0x00000006, 0x00000001,
954 0x00000001, 0x00000001, 0x00000004, 0x00000020, 0x00000000, 0x00000000, 0x00000034, 0x00000050,
955 0x00000000, 0x00000000, 0x00000068, 0x00000084, 0x00000000, 0x00000000, 0x0000009c, 0x000000b8,
956 0x00000000, 0x00000000, 0x000000d0, 0x000000ec, 0x00000000, 0x00000000, 0x00000108, 0x00000124,
957 0x00000000, 0x00000000, 0x00000148, 0x00000000, 0x00000001, 0x00000140, 0x00000000, 0x00000000,
958 0x00000000, 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);
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.0
f) ++
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.0
f) ++
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.0
f) ++
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.0
f) ++
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.0
f) ++
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.0
f) ++
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.0
f) ++
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.0
f) ++
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);
2589 struct {
float e;}
f;
2590 float g <
float h[1] = {3};>;
2591 struct s {
float j;};
2592 float i <
s k[1] = {4};>;
2593 technique
t <
s l[1] = {5};> {
pass p <
s m[1] = {6};> { } }
2597 0xfeff0901, 0x0000024c, 0x00000000, 0x00000003, 0x00000000, 0x00000024, 0x00000000, 0x00000000,
2598 0x00000001, 0x00000001, 0x40066666, 0x00000002, 0x00000061, 0x00000003, 0x00000000, 0x0000004c,
2599 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0x00000002, 0x00000062, 0x00000003,
2600 0x00000000, 0x0000009c, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x40400000,
2601 0x00000003, 0x00000000, 0x00000094, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000002,
2602 0x00000064, 0x00000002, 0x00000063, 0x00000000, 0x00000005, 0x000000dc, 0x00000000, 0x00000000,
2603 0x00000001, 0x00000003, 0x00000000, 0x000000e4, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
2604 0x00000000, 0x00000002, 0x00000066, 0x00000002, 0x00000065, 0x00000003, 0x00000000, 0x00000134,
2605 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x40400000, 0x00000003, 0x00000000,
2606 0x0000012c, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000002, 0x00000068, 0x00000002,
2607 0x00000067, 0x00000003, 0x00000000, 0x000001a4, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
2608 0x00000000, 0x40800000, 0x00000000, 0x00000005, 0x00000194, 0x00000000, 0x00000001, 0x00000001,
2609 0x00000003, 0x00000000, 0x0000019c, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000002,
2610 0x0000006b, 0x00000002, 0x0000006a, 0x00000002, 0x00000069, 0x40a00000, 0x00000000, 0x00000005,
2611 0x000001e4, 0x00000000, 0x00000001, 0x00000001, 0x00000003, 0x00000000, 0x000001ec, 0x00000000,
2612 0x00000000, 0x00000001, 0x00000001, 0x00000002, 0x0000006c, 0x00000002, 0x0000006a, 0x40c00000,
2613 0x00000000, 0x00000005, 0x0000022c, 0x00000000, 0x00000001, 0x00000001, 0x00000003, 0x00000000,
2614 0x00000234, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000002, 0x0000006d, 0x00000002,
2615 0x0000006a, 0x00000002, 0x00000070, 0x00000002, 0x00000074, 0x00000006, 0x00000001, 0x00000001,
2616 0x00000001, 0x00000004, 0x00000020, 0x00000000, 0x00000000, 0x0000002c, 0x00000048, 0x00000000,
2617 0x00000000, 0x00000054, 0x00000070, 0x00000000, 0x00000001, 0x00000078, 0x00000074, 0x000000a4,
2618 0x000000d8, 0x00000000, 0x00000000, 0x000000ec, 0x00000108, 0x00000000, 0x00000001, 0x00000110,
2619 0x0000010c, 0x0000013c, 0x00000158, 0x00000000, 0x00000001, 0x00000160, 0x0000015c, 0x00000244,
2620 0x00000001, 0x00000001, 0x000001b0, 0x000001ac, 0x0000023c, 0x00000001, 0x00000000, 0x000001f8,
2621 0x000001f4, 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);
2911 float4x4 camera : VIEW = {4.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0, 0.0,0.0,0.0,6.0};
2917 VertexShaderConstant1[1] = 3.0f;
2918 VertexShaderConstant4[2] = 1;
2919 VertexShaderConstant1[3] = {2, 2, 2, 2};
2920 VertexShaderConstant4[4] = {4, 4, 4, 4, 5, 5, 5, 5, 6};
2924 WorldTransform[1]={2.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0, 0.0,0.0,0.0,4.0};
2925 ViewTransform=(camera);
2926 LightEnable[2] =
TRUE;
2927 LightType[2] =
POINT;
2928 LightPosition[2] = {4.0f, 5.0f, 6.0f};
2929 Sampler[1] = sampler1;
2935 0xfeff0901, 0x00000368, 0x00000000, 0x00000010, 0x00000004, 0x00000020, 0x00000000, 0x00000002,
2936 0x00000001, 0x00000002, 0x00000008, 0x615f7376, 0x00317272, 0x0000000a, 0x00000004, 0x00000074,
2937 0x00000000, 0x00000000, 0x00000002, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000,
2938 0x00000001, 0x00000001, 0x00000001, 0x000000ab, 0x00000100, 0x00000044, 0x00000040, 0x00000009,
2939 0x706d6173, 0x3172656c, 0x00000000, 0x00000003, 0x00000002, 0x000000e0, 0x000000ec, 0x00000000,
2940 0x00000004, 0x00000004, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2941 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2942 0x00000000, 0x40c00000, 0x00000007, 0x656d6163, 0x00006172, 0x00000005, 0x57454956, 0x00000000,
2943 0x00000003, 0x00000010, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x40400000, 0x00000003,
2944 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x3f800000, 0x00000003,
2945 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x40000000, 0x40000000,
2946 0x40000000, 0x40000000, 0x00000003, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000004,
2947 0x00000001, 0x40800000, 0x40800000, 0x40800000, 0x40800000, 0x40a00000, 0x40a00000, 0x40a00000,
2948 0x40a00000, 0x40c00000, 0x00000003, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000009,
2949 0x00000001, 0x00000002, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
2950 0x00000001, 0x00000004, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
2951 0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
2952 0x00000001, 0x40000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2953 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2954 0x40800000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00000001,
2955 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2956 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2957 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x00000001,
2958 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001,
2959 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x40800000,
2960 0x40a00000, 0x40c00000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
2961 0x00000001, 0x00000000, 0x0000000a, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
2962 0x00003070, 0x00000006, 0x68636574, 0x00000030, 0x00000003, 0x00000001, 0x00000005, 0x00000004,
2963 0x00000004, 0x00000018, 0x00000000, 0x00000000, 0x0000002c, 0x00000060, 0x00000000, 0x00000000,
2964 0x00000084, 0x000000a0, 0x00000000, 0x00000000, 0x0000035c, 0x00000000, 0x00000001, 0x00000354,
2965 0x00000000, 0x0000000e, 0x00000092, 0x00000000, 0x000000fc, 0x000000f8, 0x00000098, 0x00000001,
2966 0x00000114, 0x00000110, 0x0000009b, 0x00000002, 0x00000134, 0x00000130, 0x00000098, 0x00000003,
2967 0x00000160, 0x00000150, 0x0000009b, 0x00000004, 0x000001a0, 0x0000017c, 0x0000004b, 0x00000000,
2968 0x000001c0, 0x000001bc, 0x0000006b, 0x00000003, 0x000001e0, 0x000001dc, 0x00000000, 0x00000000,
2969 0x00000200, 0x000001fc, 0x0000007d, 0x00000001, 0x0000025c, 0x0000021c, 0x0000007c, 0x00000000,
2970 0x000002b8, 0x00000278, 0x00000091, 0x00000002, 0x000002d8, 0x000002d4, 0x00000084, 0x00000002,
2971 0x000002f8, 0x000002f4, 0x00000088, 0x00000002, 0x00000320, 0x00000314, 0x000000b2, 0x00000001,
2972 0x00000340, 0x0000033c, 0x00000002, 0x00000003, 0x00000001, 0x0000002c, 0xfffe0101, 0x00000051,
2973 0xa00f0000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x00000001, 0xc00f0000, 0xa0e40000,
2974 0x0000ffff, 0x00000002, 0x0000002c, 0xfffe0200, 0x05000051, 0xa00f0000, 0x40000000, 0x40000000,
2975 0x40000000, 0x40000000, 0x02000001, 0xc00f0000, 0xa0e40000, 0x0000ffff, 0x00000000, 0x00000000,
2976 0xffffffff, 0x0000000d, 0x00000001, 0x00000009, 0x706d6173, 0x3172656c, 0x00000000, 0x00000000,
2977 0x00000000, 0xffffffff, 0x00000009, 0x00000000, 0x0000016c, 0x46580200, 0x0030fffe, 0x42415443,
2978 0x0000001c, 0x0000008b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000088, 0x00000030,
2979 0x00000002, 0x00000004, 0x00000038, 0x00000048, 0x656d6163, 0xab006172, 0x00030003, 0x00040004,
2980 0x00000001, 0x00000000, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2981 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
2982 0x00000000, 0x40c00000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c,
2983 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe,
2984 0x54494c43, 0x00000000, 0x0024fffe, 0x434c5846, 0x00000004, 0x10000004, 0x00000001, 0x00000000,
2985 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x10000004, 0x00000001, 0x00000000,
2986 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000004, 0x10000004, 0x00000001, 0x00000000,
2987 0x00000002, 0x00000008, 0x00000000, 0x00000004, 0x00000008, 0x10000004, 0x00000001, 0x00000000,
2988 0x00000002, 0x0000000c, 0x00000000, 0x00000004, 0x0000000c, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
2989 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000001, 0x0000000b, 0x615f7376, 0x5b317272,
2992 #define TEST_EFFECT_STATES_VSHADER_POS 315 3001 for (
i = 0;
i < 256; ++
i)
3012 -1.0f, 0.0f, 0.0f, 0.0f,
3013 0.0f, 0.0f, 0.0f, 0.0f,
3014 0.0f, 0.0f, 0.0f, 0.0f,
3015 0.0f, 0.0f, 0.0f, 0.0f
3017 static const D3DMATRIX test_mat_camera =
3019 4.0f, 0.0f, 0.0f, 0.0f,
3020 0.0f, 0.0f, 0.0f, 0.0f,
3021 0.0f, 0.0f, 0.0f, 0.0f,
3022 0.0f, 0.0f, 0.0f, 6.0f
3024 static const D3DMATRIX test_mat_world1 =
3026 2.0f, 0.0f, 0.0f, 0.0f,
3027 0.0f, 0.0f, 0.0f, 0.0f,
3028 0.0f, 0.0f, 0.0f, 0.0f,
3029 0.0f, 0.0f, 0.0f, 4.0f
3032 IDirect3DVertexShader9 *vshader;
3033 ID3DXEffect *effect;
3034 UINT byte_code_size;
3046 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3052 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3054 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3056 hr = effect->lpVtbl->Begin(effect, &npasses, 0);
3057 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3058 ok(npasses == 1,
"Expected 1 pass, got %u\n", npasses);
3061 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3063 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3065 hr = effect->lpVtbl->End(effect);
3066 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3069 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3070 ok(
value == 1,
"Got result %u, expected %u.\n",
value, 1);
3072 ok(
value == 2,
"Got result %u, expected %u.\n",
value, 2);
3077 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3079 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3082 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3084 ok(!
bval,
"Got result %u, expected 0.\n",
bval);
3087 hr = effect->lpVtbl->Begin(effect,
NULL, 0);
3088 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3091 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3092 ok(!
memcmp(
mat.m, test_mat.
m,
sizeof(
mat)),
"World matrix does not match.\n");
3096 hr = effect->lpVtbl->BeginPass(effect, 0);
3097 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3100 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3101 ok(!
memcmp(
mat.m, test_mat_world1.
m,
sizeof(
mat)),
"World matrix does not match.\n");
3104 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3105 ok(!
memcmp(
mat.m, test_mat_camera.
m,
sizeof(
mat)),
"View matrix does not match.\n");
3108 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3109 ok(
value == 2,
"Got result %u, expected %u\n",
value, 2);
3112 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3113 ok(vshader !=
NULL,
"Got NULL vshader.\n");
3117 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3120 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3121 ok(byte_code_size > 1,
"Got unexpected byte code size %u.\n", byte_code_size);
3123 "Incorrect shader selected.\n");
3129 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3131 ok(
bval,
"Got result %u, expected TRUE.\n",
bval);
3133 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3135 ok(
light.Position.x == 4.0f &&
light.Position.y == 5.0f &&
light.Position.z == 6.0f,
3136 "Got unexpected light position (%f, %f, %f).\n",
light.Position.x,
light.Position.y,
light.Position.z);
3141 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3142 ok(fvect.
x == 3.0f,
"Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3143 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3145 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3146 ok(fvect.
x == 1.0f,
"Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3147 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3150 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3151 ok(fvect.
x == 2.0f && fvect.
y == 2.0f && fvect.
z == 2.0f && fvect.
w == 2.0f,
3152 "Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3153 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3156 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3157 ok(fvect.
x == 4.0f && fvect.
y == 4.0f && fvect.
z == 4.0f && fvect.
w == 4.0f,
3158 "Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3159 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3161 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3162 ok(fvect.
x == 0.0f && fvect.
y == 0.0f && fvect.
z == 0.0f && fvect.
w == 0.0f,
3163 "Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3164 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3166 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3167 ok(fvect.
x == 0.0f && fvect.
y == 0.0f && fvect.
z == 0.0f && fvect.
w == 0.0f,
3168 "Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3169 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3171 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3173 "Got unexpected vertex shader constant (%.8e, %.8e, %.8e, %.8e).\n",
3174 fvect.
x, fvect.
y, fvect.
z, fvect.
w);
3176 hr = effect->lpVtbl->EndPass(effect);
3177 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3179 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3180 ok(
value == 2,
"Got result %u, expected %u\n",
value, 2);
3183 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3187 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3191 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3192 ok(
value == 4,
"Unexpected texture stage 3 AlphaOp %u.\n",
value);
3194 hr = effect->lpVtbl->End(effect);
3195 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3198 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3199 ok(!
memcmp(
mat.m, test_mat.
m,
sizeof(
mat)),
"World matrix not restored.\n");
3202 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3204 ok(!
bval,
"Got result %u, expected 0.\n",
bval);
3208 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3210 hr = effect->lpVtbl->Begin(effect, &npasses, 0);
3211 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3214 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3216 effect->lpVtbl->Release(effect);
3219 ok(
hr ==
D3D_OK,
"Got result %x, expected 0 (D3D_OK).\n",
hr);
3220 ok(
value == 3,
"Got result %u, expected %u.\n",
value, 1);
3229 float4 g_Selector[3] = {{0, 0, 0, 0}, {10, 10, 10, 10}, {5001, 5002, 5003, 5004}};
3231 float4 opvect1 = {0.0, -0.0, -2.2, 3.402823466e+38
F};
3232 float4 opvect2 = {1.0, 2.0, -3.0, 4.0};
3233 float4 opvect3 = {0.0, -0.0, -2.2, 3.402823466e+38
F};
3235 float4 vect_sampler = {1, 2, 3, 4};
3237 float3 vec3 = {1001, 1002, 1003};
3239 int4 g_iVect = {4, 3, 2, 1};
3263 float4x4 m4x4 = {{11, 12, 13, 14}, {21, 22, 23, 24}, {31, 32, 33, 34}, {41, 42, 43, 44}};
3265 row_major float4x3 m4x3row = {{11, 12, 13}, {21, 22, 23}, {31, 32, 33}, {41, 42, 43}};
3266 row_major float3x4 m3x4row = {{11, 12, 13, 14}, {21, 22, 23, 24}, {31, 32, 33, 34}};
3267 column_major float4x3 m4x3column = {{11, 12, 13},{21, 22, 23},{31, 32, 33},{41, 42, 43}};
3268 column_major float3x4 m3x4column = {{11, 12, 13, 14}, {21, 22, 23, 24}, {31, 32, 33, 34}};
3269 row_major float2x2 m2x2row = {{11, 12}, {21, 22}};
3270 column_major float2x2 m2x2column = {{11, 12}, {21, 22}};
3271 row_major float2x3 m2x3row = {{11, 12, 13}, {21, 22, 23}};
3272 column_major float2x3 m2x3column = {{11, 12, 13}, {21, 22, 23}};
3273 row_major float3x2 m3x2row = {{11, 12}, {21, 22}, {31, 32}};
3274 column_major float3x2 m3x2column = {{11, 12}, {21, 22}, {31, 32}};
3276 row_major bool2x3 mb2x3row = {{
true,
false,
true}, {
false,
true,
true}};
3277 column_major bool2x3 mb2x3column = {{
true,
false,
true}, {
false,
true,
true}};
3291 test_struct ts1[1] = {{{9, 10, 11}, 12, {13, 14, 15, 16}}};
3292 shared test_struct ts2[2] = {{{0, 0, 0}, 0, {0, 0, 0, 0}}, {{1, 2, 3}, 4, {5, 6, 7, 8}}};
3293 struct_array ts3 = {{{1, 2, 3}, 4, {5, 6, 7, 8}}, {{9, 10, 11}, 12, {13, 14, 15, 16}}};
3295 float arr1[1] = {91};
3296 shared
float arr2[2] = {92, 93};
3304 MinFilter = g_iVect.y;
3305 MagFilter = vect_sampler.x + vect_sampler.y;
3313 MagFilter = vect_sampler.x;
3318 MagFilter = vect_sampler.y;
3325 float2 TextureUV : TEXCOORD0;
3326 float4 Diffuse : COLOR0;
3328 VS_OUTPUT RenderSceneVS(float4 vPos :
POSITION,
3330 float2 vTexCoord0 : TEXCOORD0,
3331 uniform
int nNumLights,
3332 uniform
bool bTexture)
3336 if (g_Selector[1].
y > float4(0.5, 0.5, 0.5, 0.5).
y)
3337 Output.Position = -g_Pos1 * 2 - float4(-4, -5, -6, -7);
3339 Output.Position = -g_Pos2 * 3 - float4(-4, -5, -6, -7);
3340 Output.TextureUV = float2(0, 0);
3342 Output.Diffuse.xyz =
mul(vPos, m4x3column);
3343 Output.Diffuse +=
mul(vPos, m3x4column);
3345 Output.Diffuse.xyz +=
mul(vPos, m4x3row);
3352 Output.Diffuse +=
mul(vPos, ts3.ts[1].fv);
3353 Output.Diffuse +=
mul(vPos, ts3.ts[1].v2);
3354 Output.Diffuse += tex2Dlod(sampler1, g_Pos1);
3355 Output.Diffuse += tex2Dlod(samplers_array[1], g_Pos1);
3359 VS_OUTPUT RenderSceneVS2(float4 vPos :
POSITION)
3363 Output.Position = g_Pos1;
3364 Output.TextureUV = float2(0, 0);
3371 float4 RGBColor : COLOR0;
3373 PS_OUTPUT RenderScenePS( VS_OUTPUT
In, uniform bool2x3 mb)
3380 Output.RGBColor.xy +=
mul(
In.Diffuse, m2x2column);
3382 Output.RGBColor.xy +=
mul(
In.Diffuse, m3x2column);
3384 Output.RGBColor.xyz +=
mul(
In.Diffuse, m2x3column);
3385 for (
i = 0;
i < g_iVect.x; ++
i)
3386 Output.RGBColor.xyz +=
mul(
In.Diffuse, m2x3column);
3396 if (mb2x3column[0][0])
3405 Output.RGBColor += tex2D(sampler1,
In.TextureUV);
3406 Output.RGBColor += tex2D(samplers_array[0],
In.TextureUV);
3410 shared
vertexshader vs_arr2[2] = {compile vs_3_0 RenderSceneVS(1,
true), compile vs_3_0 RenderSceneVS2()};
3411 pixelshader ps_arr[1] = {compile ps_3_0 RenderScenePS(mb2x3row)};
3417 VertexShader = vs_arr2[g_iVect.w - 1];
3418 PixelShader = ps_arr[g_iVect.w - 1];
3420 LightEnable[0] =
TRUE;
3421 LightEnable[1] =
TRUE;
3422 LightEnable[2] =
TRUE;
3423 LightEnable[3] =
TRUE;
3424 LightEnable[4] =
TRUE;
3425 LightEnable[5] =
TRUE;
3426 LightEnable[6] =
TRUE;
3427 LightEnable[7] =
TRUE;
3428 LightType[0] =
POINT;
3429 LightType[1] =
POINT;
3430 LightType[2] =
POINT;
3431 LightType[3] =
POINT;
3432 LightType[4] =
POINT;
3433 LightType[5] =
POINT;
3434 LightType[6] =
POINT;
3435 LightType[7] =
POINT;
3436 LightDiffuse[0] = 1 / opvect1;
3437 LightDiffuse[1] = rsqrt(opvect1);
3438 LightDiffuse[2] = opvect1 * opvect2;
3439 LightDiffuse[3] = opvect1 + opvect2;
3440 LightDiffuse[4] = float4(opvect1 < opvect2);
3441 LightDiffuse[5] = float4(opvect1 >= opvect2);
3442 LightDiffuse[6] = -opvect1;
3443 LightDiffuse[7] = rcp(opvect1);
3445 LightAmbient[0] =
frac(opvect1);
3446 LightAmbient[1] =
min(opvect1, opvect2);
3447 LightAmbient[2] =
max(opvect1, opvect2);
3448 LightAmbient[3] =
sin(opvect1);
3449 LightAmbient[4] =
cos(opvect1);
3450 LightAmbient[5] = 1
e-2 / opvect1;
3451 LightAmbient[6] = float4(0, dot(opvect1, opvect2), dot(opvect2, opvect2), 0);
3452 LightAmbient[7] = opvect1 + 1
e-12 * opvect2 - opvect3;
3454 LightSpecular[0] = float4(dot(opvect1.zx, opvect2.xy), dot(opvect1.zzx, opvect2.xyz),
3455 dot(opvect1.zzzx, opvect2.xxyy), 0);
3456 LightSpecular[1] = float4(opvect1[g_iVect.z], g_iVect[opvect2.y + 1],
3457 g_Selector[4 + g_iVect.w].x + g_Selector[7 + g_iVect.w].y,
3458 g_Selector[g_iVect.w].x + g_Selector[g_iVect.x].y);
3459 LightSpecular[2] = float4(dot(m4x4[3 + g_iVect.z], m4x4[g_iVect.w * 2]), ts3.ts[g_iVect.x].fv,
3460 vec3[g_iVect.z], float3(1, 2, 3)[g_iVect.w]);
3463 FogDensity = ts2[0].fv;
3464 FogStart = ts2[1].fv;
3465 PointScale_A = ts3.ts[0].fv;
3466 PointScale_B = ts3.ts[1].fv;
3470 VertexShader = vs_arr[g_iVect.z];
3476 0xfeff0901, 0x00001160, 0x00000000, 0x00000003, 0x00000001, 0x00000030, 0x00000000, 0x00000000,
3477 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x6f505f67,
3478 0x00003173, 0x00000003, 0x00000001, 0x00000068, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
3479 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x6f505f67, 0x00003273, 0x00000003,
3480 0x00000001, 0x000000c0, 0x00000000, 0x00000003, 0x00000004, 0x00000001, 0x00000000, 0x00000000,
3481 0x00000000, 0x00000000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x459c4800, 0x459c5000,
3482 0x459c5800, 0x459c6000, 0x0000000b, 0x65535f67, 0x7463656c, 0x0000726f, 0x00000003, 0x00000001,
3483 0x000000fc, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x80000000, 0xc00ccccd,
3484 0x7f7fffff, 0x00000008, 0x6576706f, 0x00317463, 0x00000003, 0x00000001, 0x00000134, 0x00000000,
3485 0x00000000, 0x00000004, 0x00000001, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x00000008,
3486 0x6576706f, 0x00327463, 0x00000003, 0x00000001, 0x0000016c, 0x00000000, 0x00000000, 0x00000004,
3487 0x00000001, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x00000008, 0x6576706f, 0x00337463,
3488 0x00000003, 0x00000001, 0x000001a4, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x3f800000,
3489 0x40000000, 0x40400000, 0x40800000, 0x0000000d, 0x74636576, 0x6d61735f, 0x72656c70, 0x00000000,
3490 0x00000003, 0x00000001, 0x000001e0, 0x00000000, 0x00000000, 0x00000003, 0x00000001, 0x447a4000,
3491 0x447a8000, 0x447ac000, 0x00000005, 0x33636576, 0x00000000, 0x00000002, 0x00000001, 0x00000218,
3492 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000004, 0x00000003, 0x00000002, 0x00000001,
3493 0x00000008, 0x56695f67, 0x00746365, 0x00000010, 0x00000004, 0x00000244, 0x00000000, 0x00000003,
3494 0x00000001, 0x00000002, 0x00000003, 0x00000007, 0x615f7376, 0x00007272, 0x00000003, 0x00000002,
3495 0x000002ac, 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x41300000, 0x41400000, 0x41500000,
3496 0x41600000, 0x41a80000, 0x41b00000, 0x41b80000, 0x41c00000, 0x41f80000, 0x42000000, 0x42040000,
3497 0x42080000, 0x42240000, 0x42280000, 0x422c0000, 0x42300000, 0x00000005, 0x3478346d, 0x00000000,
3498 0x00000003, 0x00000002, 0x00000304, 0x00000000, 0x00000000, 0x00000004, 0x00000003, 0x41300000,
3499 0x41400000, 0x41500000, 0x41a80000, 0x41b00000, 0x41b80000, 0x41f80000, 0x42000000, 0x42040000,
3500 0x42240000, 0x42280000, 0x422c0000, 0x00000008, 0x3378346d, 0x00776f72, 0x00000003, 0x00000002,
3501 0x0000035c, 0x00000000, 0x00000000, 0x00000003, 0x00000004, 0x41300000, 0x41400000, 0x41500000,
3502 0x41600000, 0x41a80000, 0x41b00000, 0x41b80000, 0x41c00000, 0x41f80000, 0x42000000, 0x42040000,
3503 0x42080000, 0x00000008, 0x3478336d, 0x00776f72, 0x00000003, 0x00000002, 0x000003b4, 0x00000000,