28 1.0f, 0.0f, 0.0f, 0.0f,
29 0.0f, 1.0f, 0.0f, 0.0f,
30 0.0f, 0.0f, 1.0f, 0.0f,
31 0.0f, 0.0f, 0.0f, 1.0f,
128 float sin_theta, cos_theta, vers_theta;
131 sin_theta =
sinf(theta);
132 cos_theta =
cosf(theta);
133 vers_theta = 1.0f - cos_theta;
135 matrix->_11 = vers_theta * axis->u1.
x * axis->u1.
x + cos_theta;
136 matrix->_21 = vers_theta * axis->u1.
x * axis->u2.
y - sin_theta * axis->u3.
z;
137 matrix->_31 = vers_theta * axis->u1.
x * axis->u3.
z + sin_theta * axis->u2.
y;
140 matrix->_12 = vers_theta * axis->u2.
y * axis->u1.
x + sin_theta * axis->u3.
z;
141 matrix->_22 = vers_theta * axis->u2.
y * axis->u2.
y + cos_theta;
142 matrix->_32 = vers_theta * axis->u2.
y * axis->u3.
z - sin_theta * axis->u1.
x;
145 matrix->_13 = vers_theta * axis->u3.
z * axis->u1.
x - sin_theta * axis->u2.
y;
146 matrix->_23 = vers_theta * axis->u3.
z * axis->u2.
y + sin_theta * axis->u1.
x;
147 matrix->_33 = vers_theta * axis->u3.
z * axis->u3.
z + cos_theta;
160 tmp.u1.
x =
v->u1.x *
m->_11 +
v->u2.y *
m->_21 +
v->u3.z *
m->_31 +
m->_41;
161 tmp.u2.
y =
v->u1.x *
m->_12 +
v->u2.y *
m->_22 +
v->u3.z *
m->_32 +
m->_42;
162 tmp.u3.
z =
v->u1.x *
m->_13 +
v->u2.y *
m->_23 +
v->u3.z *
m->_33 +
m->_43;
190 TRACE(
"%p increasing refcount to %u.\n", iface, refcount);
201 TRACE(
"%p decreasing refcount to %u.\n", iface, refcount);
220 TRACE(
"iface %p.\n", iface);
230 TRACE(
"iface %p, index %u, frame %p.\n", iface,
index, frame);
261 if (!(
array = heap_alloc_zero(
sizeof(*
array))))
266 array->size = frame_count;
276 for (
i = 0;
i < frame_count; ++
i)
308 TRACE(
"%p increasing refcount to %u.\n", iface, refcount);
319 TRACE(
"%p decreasing refcount to %u.\n", iface, refcount);
338 TRACE(
"iface %p.\n", iface);
348 TRACE(
"iface %p, index %u, visual %p.\n", iface,
index, visual);
379 if (!(
array = heap_alloc_zero(
sizeof(*
array))))
384 array->size = visual_count;
394 for (
i = 0;
i < visual_count; ++
i)
427 TRACE(
"%p increasing refcount to %u.\n", iface, refcount);
438 TRACE(
"%p decreasing refcount to %u.\n", iface, refcount);
457 TRACE(
"iface %p.\n", iface);
498 if (!(
array = heap_alloc_zero(
sizeof(*
array))))
503 array->size = light_count;
513 for (
i = 0;
i < light_count; ++
i)
578 TRACE(
"%p increasing refcount to %u.\n", iface, refcount);
587 TRACE(
"iface %p.\n", iface);
596 TRACE(
"iface %p.\n", iface);
607 TRACE(
"%p decreasing refcount to %u.\n", iface, refcount);
638 TRACE(
"iface %p.\n", iface);
647 TRACE(
"iface %p.\n", iface);
681 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
691 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
701 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
711 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
721 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
731 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
740 TRACE(
"iface %p, data %#x.\n", iface,
data);
751 TRACE(
"iface %p, data %#x.\n", iface,
data);
760 TRACE(
"iface %p, data %#x.\n", iface,
data);
769 TRACE(
"iface %p.\n", iface);
771 return frame->
obj.appdata;
778 TRACE(
"iface %p.\n", iface);
787 TRACE(
"iface %p.\n", iface);
885 IDirect3DRMFrame3*
parent = &child_obj->
parent->IDirect3DRMFrame3_iface;
905 child_obj->
parent = frame;
913 IDirect3DRMFrame3 *child3;
987 FIXME(
"iface %p, cb %p, ctx %p flags %#x stub!\n", iface,
cb,
ctx,
flags);
995 FIXME(
"iface %p, cb %p, ctx %p stub!\n", iface,
cb,
ctx);
1003 FIXME(
"iface %p, cb %p, ctx %p stub!\n", iface,
cb,
ctx);
1016 if (
m->_14 != 0.0f ||
m->_24 != 0.0f ||
m->_34 != 0.0f ||
m->_44 != 1.0f)
1066 TRACE(
"iface %p, type %#x, x %.8e, y %.8e, z %.8e.\n", iface,
type,
x,
y,
z);
1102 TRACE(
"iface %p, type %#x, x %.8e, y %.8e, z %.8e.\n", iface,
type,
x,
y,
z);
1112 TRACE(
"iface %p, type %#x, x %.8e, y %.8e, z %.8e.\n", iface,
type,
x,
y,
z);
1122 TRACE(
"iface %p, type %#x, sx %.8e, sy %.8e, sz %.8e.\n", iface,
type, sx, sy, sz);
1173 TRACE(
"iface %p, type %#x, sx %.8e, sy %.8e, sz %.8e.\n", iface,
type, sx, sy, sz);
1183 TRACE(
"iface %p, type %#x, sx %.8e, sy %.8e, sz %.8e.\n", iface,
type, sx, sy, sz);
1195 TRACE(
"iface %p, type %#x, x %.8e, y %.8e, z %.8e, theta %.8e.\n", iface,
type,
x,
y,
z, theta);
1230 TRACE(
"iface %p, type %#x, x %.8e, y %.8e, z %.8e, theta %.8e.\n", iface,
type,
x,
y,
z, theta);
1240 TRACE(
"iface %p, type %#x, x %.8e, y %.8e, z %.8e, theta %.8e.\n", iface,
type,
x,
y,
z, theta);
1250 TRACE(
"iface %p, visual %p.\n", iface, visual);
1257 if (frame->
visuals[
i] == (IDirect3DRMVisual *)visual)
1274 TRACE(
"iface %p, visual %p.\n", iface, visual);
1283 TRACE(
"iface %p, visual %p.\n", iface, visual);
1293 TRACE(
"iface %p, children %p.\n", iface, children);
1301 *children = &
array->IDirect3DRMFrameArray_iface;
1326 FIXME(
"iface %p stub!\n", iface);
1333 FIXME(
"iface %p stub!\n", iface);
1340 FIXME(
"iface %p stub!\n", iface);
1383 FIXME(
"iface %p stub!\n", iface);
1390 FIXME(
"iface %p stub!\n", iface);
1397 FIXME(
"iface %p stub!\n", iface);
1458 FIXME(
"iface %p, reference %p, position %p stub!\n", iface,
reference, position);
1466 FIXME(
"iface %p, reference %p, position %p stub!\n", iface,
reference, position);
1474 FIXME(
"iface %p, reference %p, position %p stub!\n", iface,
reference, position);
1483 FIXME(
"iface %p, reference %p, axis %p, theta %p stub!\n", iface,
reference, axis, theta);
1491 FIXME(
"iface %p, reference %p, axis %p, theta %p stub!\n", iface,
reference, axis, theta);
1499 FIXME(
"iface %p, reference %p, axis %p, theta %p stub!\n", iface,
reference, axis, theta);
1508 TRACE(
"iface %p, scene %p.\n", iface, scene);
1525 IDirect3DRMFrame3 *frame3;
1528 TRACE(
"iface %p, scene %p.\n", iface, scene);
1550 TRACE(
"iface %p, scene %p.\n", iface, scene);
1557 FIXME(
"iface %p stub!\n", iface);
1564 FIXME(
"iface %p stub!\n", iface);
1571 FIXME(
"iface %p stub!\n", iface);
1637 FIXME(
"iface %p, reference %p, velocity %p, with_rotation %#x stub!\n",
1638 iface,
reference, velocity, with_rotation);
1646 FIXME(
"iface %p, reference %p, velocity %p, with_rotation %#x stub!\n",
1647 iface,
reference, velocity, with_rotation);
1655 FIXME(
"iface %p, reference %p, velocity %p, with_rotation %#x stub!\n",
1656 iface,
reference, velocity, with_rotation);
1721 FIXME(
"iface %p, wrap_u %p, wrap_v %p stub!\n", iface, wrap_u, wrap_v);
1728 FIXME(
"iface %p, wrap_u %p, wrap_v %p stub!\n", iface, wrap_u, wrap_v);
1735 FIXME(
"iface %p, d %p, s %p stub!\n", iface,
d,
s);
1742 FIXME(
"iface %p, d %p, s %p stub!\n", iface,
d,
s);
1749 FIXME(
"iface %p, d %p, s %p stub!\n", iface,
d,
s);
1757 FIXME(
"iface %p, filename %p, name %p, flags %#x, cb %p, ctx %p stub!\n",
1766 FIXME(
"iface %p, filename %p, name %p, flags %#x, cb %p, ctx %p stub!\n",
1775 FIXME(
"iface %p, filename %p, name %p, flags %#x, cb %p, ctx %p stub!\n",
1784 FIXME(
"iface %p, target %p, reference %p, constraint %#x stub!\n", iface,
target,
reference, constraint);
1792 FIXME(
"iface %p, target %p, reference %p, constraint %#x stub!\n", iface,
target,
reference, constraint);
1800 FIXME(
"iface %p, target %p, reference %p, constraint %#x stub!\n", iface,
target,
reference, constraint);
1807 FIXME(
"iface %p, delta %.8e stub!\n", iface, delta);
1814 FIXME(
"iface %p, delta %.8e stub!\n", iface, delta);
1821 FIXME(
"iface %p, delta %.8e stub!\n", iface, delta);
1832 TRACE(
"iface %p, child %p.\n", iface,
child);
1858 IDirect3DRMFrame3 *child3;
1861 TRACE(
"iface %p, child %p.\n", iface,
child);
1877 TRACE(
"iface %p, child %p.\n", iface,
child);
1890 TRACE(
"iface %p, light %p.\n", iface,
light);
1916 TRACE(
"iface %p, light %p.\n", iface,
light);
1925 TRACE(
"iface %p, light %p.\n", iface,
light);
1933 FIXME(
"iface %p, cb %p, ctx %p stub!\n", iface,
cb,
ctx);
1941 FIXME(
"iface %p, cb %p, ctx %p stub!\n", iface,
cb,
ctx);
1949 FIXME(
"iface %p, cb %p, ctx %p stub!\n", iface,
cb,
ctx);
1959 TRACE(
"iface %p, visual %p.\n", iface, visual);
1967 if (frame->
visuals[
i] == (IDirect3DRMVisual *)visual)
1985 TRACE(
"iface %p, visual %p.\n", iface, visual);
1994 TRACE(
"iface %p, visual %p.\n", iface, visual);
2003 TRACE(
"iface %p.\n", iface);
2012 TRACE(
"iface %p.\n", iface);
2021 TRACE(
"iface %p.\n", iface);
2027 IDirectDrawSurface **surface)
2029 FIXME(
"iface %p, surface %p stub!\n", iface, surface);
2035 IDirectDrawSurface **surface)
2037 FIXME(
"iface %p, surface %p stub!\n", iface, surface);
2043 IDirectDrawSurface **surface)
2045 FIXME(
"iface %p, surface %p stub!\n", iface, surface);
2052 FIXME(
"iface %p stub!\n", iface);
2059 FIXME(
"iface %p stub!\n", iface);
2066 FIXME(
"iface %p stub!\n", iface);
2073 FIXME(
"iface %p stub!\n", iface);
2080 FIXME(
"iface %p stub!\n", iface);
2087 FIXME(
"iface %p stub!\n", iface);
2094 FIXME(
"iface %p stub!\n", iface);
2101 FIXME(
"iface %p stub!\n", iface);
2108 FIXME(
"iface %p stub!\n", iface);
2116 FIXME(
"iface %p, start %p, end %p, density %p stub!\n", iface,
start,
end, density);
2124 FIXME(
"iface %p, start %p, end %p, density %p stub!\n", iface,
start,
end, density);
2132 FIXME(
"iface %p, start %p, end %p, density %p stub!\n", iface,
start,
end, density);
2141 TRACE(
"iface %p, color 0x%08x.\n", iface,
color);
2152 TRACE(
"iface %p, color 0x%08x.\n", iface,
color);
2161 TRACE(
"iface %p, color 0x%08x.\n", iface,
color);
2199 IDirectDrawSurface *surface)
2201 FIXME(
"iface %p, surface %p stub!\n", iface, surface);
2207 IDirectDrawSurface *surface)
2209 FIXME(
"iface %p, surface %p stub!\n", iface, surface);
2215 IDirectDrawSurface *surface)
2217 FIXME(
"iface %p, surface %p stub!\n", iface, surface);
2248 FIXME(
"iface %p, enable %#x stub!\n", iface,
enable);
2255 FIXME(
"iface %p, enable %#x stub!\n", iface,
enable);
2262 FIXME(
"iface %p, enable %#x stub!\n", iface,
enable);
2269 FIXME(
"iface %p, color 0x%08x stub!\n", iface,
color);
2276 FIXME(
"iface %p, color 0x%08x stub!\n", iface,
color);
2283 FIXME(
"iface %p, color 0x%08x stub!\n", iface,
color);
2290 FIXME(
"iface %p, mode %#x stub!\n", iface,
mode);
2297 FIXME(
"iface %p, mode %#x stub!\n", iface,
mode);
2304 FIXME(
"iface %p, mode %#x stub!\n", iface,
mode);
2312 FIXME(
"iface %p, start %.8e, end %.8e, density %.8e stub!\n", iface,
start,
end, density);
2320 FIXME(
"iface %p, start %.8e, end %.8e, density %.8e stub!\n", iface,
start,
end, density);
2328 FIXME(
"iface %p, start %.8e, end %.8e, density %.8e stub!\n", iface,
start,
end, density);
2335 FIXME(
"iface %p, color 0x%08x stub!\n", iface,
color);
2342 FIXME(
"iface %p, color 0x%08x stub!\n", iface,
color);
2349 FIXME(
"iface %p, color 0x%08x stub!\n", iface,
color);
2357 FIXME(
"iface %p, red %.8e, green %.8e, blue %.8e stub!\n", iface,
red,
green,
blue);
2365 FIXME(
"iface %p, red %.8e, green %.8e, blue %.8e stub!\n", iface,
red,
green,
blue);
2373 FIXME(
"iface %p, red %.8e, green %.8e, blue %.8e stub!\n", iface,
red,
green,
blue);
2380 FIXME(
"iface %p stub!\n", iface);
2387 FIXME(
"iface %p stub!\n", iface);
2394 FIXME(
"iface %p stub!\n", iface);
2401 FIXME(
"iface %p, mode %#x stub!\n", iface,
mode);
2408 FIXME(
"iface %p, mode %#x stub!\n", iface,
mode);
2415 FIXME(
"iface %p, mode %#x stub!\n", iface,
mode);
2423 FIXME(
"iface %p, reference %p, dx %.8e, dy %.8e, dz %.8e, ux %.8e, uy %.8e, uz %.8e stub!\n",
2432 FIXME(
"iface %p, reference %p, dx %.8e, dy %.8e, dz %.8e, ux %.8e, uy %.8e, uz %.8e stub!\n",
2441 FIXME(
"iface %p, reference %p, dx %.8e, dy %.8e, dz %.8e, ux %.8e, uy %.8e, uz %.8e stub!\n",
2450 FIXME(
"iface %p, reference %p, x %.8e, y %.8e, z %.8e stub!\n", iface,
reference,
x,
y,
z);
2458 FIXME(
"iface %p, reference %p, x %.8e, y %.8e, z %.8e stub!\n", iface,
reference,
x,
y,
z);
2466 FIXME(
"iface %p, reference %p, x %.8e, y %.8e, z %.8e stub!\n", iface,
reference,
x,
y,
z);
2474 FIXME(
"iface %p, reference %p, x %.8e, y %.8e, z %.8e, theta %.8e stub!\n",
2483 FIXME(
"iface %p, reference %p, x %.8e, y %.8e, z %.8e, theta %.8e stub!\n",
2492 FIXME(
"iface %p, reference %p, x %.8e, y %.8e, z %.8e, theta %.8e stub!\n",
2500 FIXME(
"iface %p, mode %#x stub!\n", iface,
mode);
2507 FIXME(
"iface %p, mode %#x stub!\n", iface,
mode);
2514 FIXME(
"iface %p, mode %#x stub!\n", iface,
mode);
2542 FIXME(
"iface %p, wrap_u %#x, wrap_v %#x stub!\n", iface, wrap_u, wrap_v);
2549 FIXME(
"iface %p, wrap_u %#x, wrap_v %#x stub!\n", iface, wrap_u, wrap_v);
2557 FIXME(
"iface %p, reference %p, x %.8e, y %.8e, z %.8e, with_rotation %#x.\n",
2566 FIXME(
"iface %p, reference %p, x %.8e, y %.8e, z %.8e, with_rotation %#x stub!\n",
2575 FIXME(
"iface %p, reference %p, x %.8e, y %.8e, z %.8e, with_rotation %#x stub!\n",
2583 FIXME(
"iface %p, mode %#x stub!\n", iface,
mode);
2590 FIXME(
"iface %p, mode %#x stub!\n", iface,
mode);
2597 FIXME(
"iface %p, mode %#x stub!\n", iface,
mode);
2606 TRACE(
"iface %p, d %p, s %p.\n", iface,
d,
s);
2609 while ((frame = frame->
parent))
2621 TRACE(
"iface %p, d %p, s %p.\n", iface,
d,
s);
2630 TRACE(
"iface %p, d %p, s %p.\n", iface,
d,
s);
2638 FIXME(
"iface %p, cb %p, ctx %p, flags %#x stub!\n", iface,
cb,
ctx,
flags);
2645 FIXME(
"iface %p, box %p stub!\n", iface,
box);
2652 FIXME(
"iface %p, box %p stub!\n", iface,
box);
2659 FIXME(
"iface %p stub!\n", iface);
2666 FIXME(
"iface %p stub!\n", iface);
2673 FIXME(
"iface %p, dir %p, up %p stub!\n", iface,
dir,
up);
2680 FIXME(
"iface %p, dir %p, up %p stub!\n", iface,
dir,
up);
2687 FIXME(
"iface %p, material %p stub!\n", iface, material);
2694 FIXME(
"iface %p, material %p stub!\n", iface, material);
2701 FIXME(
"iface %p stub!\n", iface);
2708 FIXME(
"iface %p stub!\n", iface);
2715 FIXME(
"iface %p, box %p stub!\n", iface,
box);
2722 FIXME(
"iface %p, box %p stub!\n", iface,
box);
2729 FIXME(
"iface %p, box %p stub!\n", iface,
box);
2736 FIXME(
"iface %p, enable %#x stub!\n", iface,
enable);
2744 FIXME(
"iface %p, dx %.8e, dy %.8e, dz %.8e, ux %.8e, uy %.8e, uz %.8e stub!\n",
2745 iface,
dx,
dy, dz, ux, uy, uz);
2752 FIXME(
"iface %p, inherit %#x stub!\n", iface, inherit);
2759 FIXME(
"iface %p, material %p stub!\n", iface, material);
2775 FIXME(
"iface %p, reference %p, ray %p, flags %#x, visuals %p stub!\n",
2784 FIXME(
"iface %p, filename %s, format %#x, flags %#x stub!\n",
2813 if (
options & ~supported_options)
2837 FIXME(
"iface %p, flags %#x stub!\n", iface,
flags);
2844 FIXME(
"iface %p, fog_mode %p stub!\n", iface, fog_mode);
2852 FIXME(
"iface %p, override %p stub!\n", iface,
override);
2860 FIXME(
"iface %p, override %p stub!\n", iface,
override);
3131 static const char classname[] =
"Frame";
3135 TRACE(
"frame %p, parent_frame %p, d3drm %p.\n", frame, parent_frame,
d3drm);
3137 if (!(
object = heap_alloc_zero(
sizeof(*
object))))
3143 object->d3drm =
d3drm;
3154 IDirect3DRMFrame3 *
p;
3213 TRACE(
"%p increasing refcount to %u.\n", iface, refcount);
3229 TRACE(
"%p decreasing refcount to %u.\n", iface, refcount);
3270 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
3280 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
3290 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
3300 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
3309 TRACE(
"iface %p, data %#x.\n", iface,
data);
3311 animation->
obj.appdata =
data;
3320 TRACE(
"iface %p, data %#x.\n", iface,
data);
3329 TRACE(
"iface %p.\n", iface);
3331 return animation->
obj.appdata;
3338 TRACE(
"iface %p.\n", iface);
3405 if (!(
options & supported_options))
3476 if (!keys->
count || time < keys->keys[0].time)
3490 if (!keys->
count || time_max < keys->keys[0].time
3491 || time_min > keys->
keys[keys->
count - 1].time)
3507 TRACE(
"iface %p, key %p.\n", iface,
key);
3509 if (!
key ||
key->dwSize !=
sizeof(*
key))
3512 switch (
key->dwKeyType)
3532 if (index < keys->
count)
3535 switch (
key->dwKeyType)
3556 TRACE(
"iface %p, time %.8e, q %p.\n", iface,
time,
q);
3558 key.dwSize =
sizeof(
key);
3562 key.u.dqRotateKey = *
q;
3571 TRACE(
"iface %p, time %.8e, q %p.\n", iface,
time,
q);
3581 TRACE(
"iface %p, time %.8e, x %.8e, y %.8e, z %.8e.\n", iface,
time,
x,
y,
z);
3583 key.dwSize =
sizeof(
key);
3587 key.u.dvPositionKey.u1.x =
x;
3588 key.u.dvPositionKey.u2.y =
y;
3589 key.u.dvPositionKey.u3.z =
z;
3599 TRACE(
"iface %p, time %.8e, x %.8e, y %.8e, z %.8e.\n", iface,
time,
x,
y,
z);
3609 TRACE(
"iface %p, time %.8e, x %.8e, y %.8e, z %.8e.\n", iface,
time,
x,
y,
z);
3611 key.dwSize =
sizeof(
key);
3615 key.u.dvScaleKey.u1.x =
x;
3616 key.u.dvScaleKey.u2.y =
y;
3617 key.u.dvScaleKey.u3.z =
z;
3627 TRACE(
"iface %p, time %.8e, x %.8e, y %.8e, z %.8e.\n", iface,
time,
x,
y,
z);
3636 if (index < keys->
count - 1)
3646 TRACE(
"iface %p, time %.8e.\n", iface,
time);
3664 TRACE(
"iface %p, time %.8e.\n", iface,
time);
3674 TRACE(
"iface %p, frame %p.\n", iface,
frame);
3690 FIXME(
"iface %p, time %.8e.\n", iface,
time);
3699 TRACE(
"iface %p.\n", iface);
3708 TRACE(
"iface %p.\n", iface);
3717 TRACE(
"iface %p, frame %p.\n", iface,
frame);
3726 FIXME(
"iface %p, time %.8e.\n", iface,
time);
3735 TRACE(
"iface %p, frame %p.\n", iface,
frame);
3749 FIXME(
"iface %p, id %#x.\n", iface,
id);
3756 FIXME(
"iface %p, key %p.\n", iface,
key);
3768 TRACE(
"iface %p, time min %.8e, time max %.8e, key_count %p, keys %p.\n",
3769 iface, time_min, time_max, key_count, keys);
3782 keys[
i].
dwSize =
sizeof(*keys);
3790 *key_count +=
count;
3799 keys[
i].
dwSize =
sizeof(*keys);
3807 *key_count +=
count;
3814 for (
i = 0; keys &&
i <
count; ++
i)
3816 keys[
i].
dwSize =
sizeof(*keys);