[v2 PATCH] d3dx9: Implement D3DXFrameFind()
Nikolay Sivov
nsivov at codeweavers.com
Mon Nov 6 04:31:10 CST 2017
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
v2: now only non-terminal nodes are queued
dlls/d3dx9_24/d3dx9_24.spec | 2 +-
dlls/d3dx9_25/d3dx9_25.spec | 2 +-
dlls/d3dx9_26/d3dx9_26.spec | 2 +-
dlls/d3dx9_27/d3dx9_27.spec | 2 +-
dlls/d3dx9_28/d3dx9_28.spec | 2 +-
dlls/d3dx9_29/d3dx9_29.spec | 2 +-
dlls/d3dx9_30/d3dx9_30.spec | 2 +-
dlls/d3dx9_31/d3dx9_31.spec | 2 +-
dlls/d3dx9_32/d3dx9_32.spec | 2 +-
dlls/d3dx9_33/d3dx9_33.spec | 2 +-
dlls/d3dx9_34/d3dx9_34.spec | 2 +-
dlls/d3dx9_35/d3dx9_35.spec | 2 +-
dlls/d3dx9_36/d3dx9_36.spec | 2 +-
dlls/d3dx9_36/mesh.c | 80 +++++++++++++++++++++++++++++++++++++++++++++
dlls/d3dx9_36/tests/mesh.c | 76 ++++++++++++++++++++++++++++++++++++++++++
dlls/d3dx9_37/d3dx9_37.spec | 2 +-
dlls/d3dx9_38/d3dx9_38.spec | 2 +-
dlls/d3dx9_39/d3dx9_39.spec | 2 +-
dlls/d3dx9_40/d3dx9_40.spec | 2 +-
dlls/d3dx9_41/d3dx9_41.spec | 2 +-
dlls/d3dx9_42/d3dx9_42.spec | 2 +-
dlls/d3dx9_43/d3dx9_43.spec | 2 +-
22 files changed, 176 insertions(+), 20 deletions(-)
diff --git a/dlls/d3dx9_24/d3dx9_24.spec b/dlls/d3dx9_24/d3dx9_24.spec
index b524fadf93..0ca8777efe 100644
--- a/dlls/d3dx9_24/d3dx9_24.spec
+++ b/dlls/d3dx9_24/d3dx9_24.spec
@@ -132,7 +132,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_25/d3dx9_25.spec b/dlls/d3dx9_25/d3dx9_25.spec
index 9344e44d68..a5449810a4 100644
--- a/dlls/d3dx9_25/d3dx9_25.spec
+++ b/dlls/d3dx9_25/d3dx9_25.spec
@@ -132,7 +132,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_26/d3dx9_26.spec b/dlls/d3dx9_26/d3dx9_26.spec
index 7a28ca6e7e..9e1200442f 100644
--- a/dlls/d3dx9_26/d3dx9_26.spec
+++ b/dlls/d3dx9_26/d3dx9_26.spec
@@ -136,7 +136,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_27/d3dx9_27.spec b/dlls/d3dx9_27/d3dx9_27.spec
index 7a28ca6e7e..9e1200442f 100644
--- a/dlls/d3dx9_27/d3dx9_27.spec
+++ b/dlls/d3dx9_27/d3dx9_27.spec
@@ -136,7 +136,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_28/d3dx9_28.spec b/dlls/d3dx9_28/d3dx9_28.spec
index da49c9e23b..b316a23baf 100644
--- a/dlls/d3dx9_28/d3dx9_28.spec
+++ b/dlls/d3dx9_28/d3dx9_28.spec
@@ -136,7 +136,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_29/d3dx9_29.spec b/dlls/d3dx9_29/d3dx9_29.spec
index da49c9e23b..b316a23baf 100644
--- a/dlls/d3dx9_29/d3dx9_29.spec
+++ b/dlls/d3dx9_29/d3dx9_29.spec
@@ -136,7 +136,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_30/d3dx9_30.spec b/dlls/d3dx9_30/d3dx9_30.spec
index c8648fb984..e00fa54786 100644
--- a/dlls/d3dx9_30/d3dx9_30.spec
+++ b/dlls/d3dx9_30/d3dx9_30.spec
@@ -136,7 +136,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_31/d3dx9_31.spec b/dlls/d3dx9_31/d3dx9_31.spec
index 7f881ddaf8..d308939ef6 100644
--- a/dlls/d3dx9_31/d3dx9_31.spec
+++ b/dlls/d3dx9_31/d3dx9_31.spec
@@ -135,7 +135,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_32/d3dx9_32.spec b/dlls/d3dx9_32/d3dx9_32.spec
index 2f51ece333..c2292dff39 100644
--- a/dlls/d3dx9_32/d3dx9_32.spec
+++ b/dlls/d3dx9_32/d3dx9_32.spec
@@ -135,7 +135,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_33/d3dx9_33.spec b/dlls/d3dx9_33/d3dx9_33.spec
index 2f51ece333..c2292dff39 100644
--- a/dlls/d3dx9_33/d3dx9_33.spec
+++ b/dlls/d3dx9_33/d3dx9_33.spec
@@ -135,7 +135,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_34/d3dx9_34.spec b/dlls/d3dx9_34/d3dx9_34.spec
index 2f51ece333..c2292dff39 100644
--- a/dlls/d3dx9_34/d3dx9_34.spec
+++ b/dlls/d3dx9_34/d3dx9_34.spec
@@ -135,7 +135,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_35/d3dx9_35.spec b/dlls/d3dx9_35/d3dx9_35.spec
index 2f51ece333..c2292dff39 100644
--- a/dlls/d3dx9_35/d3dx9_35.spec
+++ b/dlls/d3dx9_35/d3dx9_35.spec
@@ -135,7 +135,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
index 0408ff9ffd..0fdf4e135e 100644
--- a/dlls/d3dx9_36/d3dx9_36.spec
+++ b/dlls/d3dx9_36/d3dx9_36.spec
@@ -136,7 +136,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c
index c26aa7271f..6294ce624f 100644
--- a/dlls/d3dx9_36/mesh.c
+++ b/dlls/d3dx9_36/mesh.c
@@ -7555,3 +7555,83 @@ HRESULT WINAPI D3DXConvertMeshSubsetToSingleStrip(struct ID3DXBaseMesh *mesh_in,
return E_NOTIMPL;
}
+
+struct frame_node
+{
+ struct list entry;
+ D3DXFRAME *frame;
+};
+
+static BOOL queue_frame_node(struct list *queue, D3DXFRAME *frame)
+{
+ struct frame_node *node;
+
+ if (!frame->pFrameFirstChild)
+ return TRUE;
+
+ node = HeapAlloc(GetProcessHeap(), 0, sizeof(*node));
+ if (!node)
+ return FALSE;
+
+ node->frame = frame;
+ list_add_tail(queue, &node->entry);
+
+ return TRUE;
+}
+
+static void empty_frame_queue(struct list *queue)
+{
+ struct frame_node *cur, *cur2;
+ LIST_FOR_EACH_ENTRY_SAFE(cur, cur2, queue, struct frame_node, entry)
+ {
+ list_remove(&cur->entry);
+ HeapFree(GetProcessHeap(), 0, cur);
+ }
+}
+
+D3DXFRAME * WINAPI D3DXFrameFind(const D3DXFRAME *root, const char *name)
+{
+ D3DXFRAME *found = NULL, *frame;
+ struct list queue;
+
+ TRACE("root frame %p, name %s.\n", root, debugstr_a(name));
+
+ if (!root)
+ return NULL;
+
+ list_init(&queue);
+
+ frame = (D3DXFRAME *)root;
+
+ for (;;)
+ {
+ struct frame_node *node;
+
+ while (frame)
+ {
+ if ((name && frame->Name && !strcmp(frame->Name, name)) || (!name && !frame->Name))
+ {
+ found = frame;
+ goto cleanup;
+ }
+
+ if (!queue_frame_node(&queue, frame))
+ goto cleanup;
+
+ frame = frame->pFrameSibling;
+ }
+
+ if (list_empty(&queue))
+ break;
+
+ node = LIST_ENTRY(list_head(&queue), struct frame_node, entry);
+ list_remove(&node->entry);
+ frame = node->frame->pFrameFirstChild;
+ HeapFree(GetProcessHeap(), 0, node);
+ }
+
+cleanup:
+ empty_frame_queue(&queue);
+
+ return found;
+}
diff --git a/dlls/d3dx9_36/tests/mesh.c b/dlls/d3dx9_36/tests/mesh.c
index 95dd06e466..d0b1adb00e 100644
--- a/dlls/d3dx9_36/tests/mesh.c
+++ b/dlls/d3dx9_36/tests/mesh.c
@@ -11188,6 +11188,81 @@ static void D3DXCreateAnimationControllerTest(void)
animation->lpVtbl->Release(animation);
}
+static void test_D3DXFrameFind(void)
+{
+ static char n1[] = "name1";
+ static char n2[] = "name2";
+ static char n3[] = "name3";
+ static char n4[] = "name4";
+ static char n5[] = "name5";
+ static char n6[] = "name6";
+ static char N1[] = "Name1";
+ D3DXFRAME root, sibling, sibling2, child, *ret;
+ D3DXFRAME child2, child3;
+
+ ret = D3DXFrameFind(NULL, NULL);
+ ok(ret == NULL, "Unexpected frame, %p.\n", ret);
+
+ ret = D3DXFrameFind(NULL, "test");
+ ok(ret == NULL, "Unexpected frame, %p.\n", ret);
+
+ memset(&root, 0, sizeof(root));
+
+ ret = D3DXFrameFind(&root, NULL);
+ ok(ret == &root, "Unexpected frame, %p.\n", ret);
+
+ root.Name = n1;
+ ret = D3DXFrameFind(&root, NULL);
+ ok(ret == NULL, "Unexpected frame, %p.\n", ret);
+
+ ret = D3DXFrameFind(&root, n1);
+ ok(ret == &root, "Unexpected frame, %p.\n", ret);
+
+ ret = D3DXFrameFind(&root, N1);
+ ok(ret == NULL, "Unexpected frame, %p.\n", ret);
+
+ /* Test siblings order traversal. */
+ memset(&sibling, 0, sizeof(sibling));
+ sibling.Name = n2;
+ root.pFrameSibling = &sibling;
+ ret = D3DXFrameFind(&root, n2);
+ ok(ret == &sibling, "Unexpected frame, %p.\n", ret);
+
+ memset(&sibling2, 0, sizeof(sibling2));
+ sibling2.Name = n2;
+ sibling.pFrameSibling = &sibling2;
+ ret = D3DXFrameFind(&root, n2);
+ ok(ret == &sibling, "Unexpected frame, %p.\n", ret);
+
+ sibling2.Name = n3;
+ ret = D3DXFrameFind(&root, n3);
+ ok(ret == &sibling2, "Unexpected frame, %p.\n", ret);
+
+ /* Siblings first. */
+ memset(&child, 0, sizeof(child));
+ child.Name = n2;
+ root.pFrameFirstChild = &child;
+ ret = D3DXFrameFind(&root, n2);
+ ok(ret == &sibling, "Unexpected frame, %p.\n", ret);
+
+ child.Name = n4;
+ ret = D3DXFrameFind(&root, n4);
+ ok(ret == &child, "Unexpected frame, %p.\n", ret);
+
+ /* Link a grandchild and another one for sibling. */
+ memset(&child2, 0, sizeof(child2));
+ memset(&child3, 0, sizeof(child3));
+ child2.Name = child3.Name = n5;
+ sibling.pFrameFirstChild = &child2;
+ child.pFrameFirstChild = &child3;
+ ret = D3DXFrameFind(&root, n5);
+ ok(ret == &child2, "Unexpected frame, %p.\n", ret);
+
+ child3.Name = n6;
+ ret = D3DXFrameFind(&root, n6);
+ ok(ret == &child3, "Unexpected frame, %p.\n", ret);
+}
+
START_TEST(mesh)
{
D3DXBoundProbeTest();
@@ -11218,4 +11293,5 @@ START_TEST(mesh)
test_valid_mesh();
test_optimize_faces();
test_compute_normals();
+ test_D3DXFrameFind();
}
diff --git a/dlls/d3dx9_37/d3dx9_37.spec b/dlls/d3dx9_37/d3dx9_37.spec
index 0408ff9ffd..0fdf4e135e 100644
--- a/dlls/d3dx9_37/d3dx9_37.spec
+++ b/dlls/d3dx9_37/d3dx9_37.spec
@@ -136,7 +136,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_38/d3dx9_38.spec b/dlls/d3dx9_38/d3dx9_38.spec
index 0408ff9ffd..0fdf4e135e 100644
--- a/dlls/d3dx9_38/d3dx9_38.spec
+++ b/dlls/d3dx9_38/d3dx9_38.spec
@@ -136,7 +136,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_39/d3dx9_39.spec b/dlls/d3dx9_39/d3dx9_39.spec
index 0408ff9ffd..0fdf4e135e 100644
--- a/dlls/d3dx9_39/d3dx9_39.spec
+++ b/dlls/d3dx9_39/d3dx9_39.spec
@@ -136,7 +136,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_40/d3dx9_40.spec b/dlls/d3dx9_40/d3dx9_40.spec
index 0408ff9ffd..0fdf4e135e 100644
--- a/dlls/d3dx9_40/d3dx9_40.spec
+++ b/dlls/d3dx9_40/d3dx9_40.spec
@@ -136,7 +136,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_41/d3dx9_41.spec b/dlls/d3dx9_41/d3dx9_41.spec
index 0408ff9ffd..0fdf4e135e 100644
--- a/dlls/d3dx9_41/d3dx9_41.spec
+++ b/dlls/d3dx9_41/d3dx9_41.spec
@@ -136,7 +136,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_42/d3dx9_42.spec b/dlls/d3dx9_42/d3dx9_42.spec
index 23bb40d7b1..2f2ac5fd61 100644
--- a/dlls/d3dx9_42/d3dx9_42.spec
+++ b/dlls/d3dx9_42/d3dx9_42.spec
@@ -134,7 +134,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
diff --git a/dlls/d3dx9_43/d3dx9_43.spec b/dlls/d3dx9_43/d3dx9_43.spec
index 23bb40d7b1..2f2ac5fd61 100644
--- a/dlls/d3dx9_43/d3dx9_43.spec
+++ b/dlls/d3dx9_43/d3dx9_43.spec
@@ -134,7 +134,7 @@
@ stub D3DXFrameAppendChild(ptr ptr)
@ stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr)
@ stdcall D3DXFrameDestroy(ptr ptr)
-@ stub D3DXFrameFind(ptr str)
+@ stdcall D3DXFrameFind(ptr str)
@ stub D3DXFrameNumNamedMatrices(ptr)
@ stub D3DXFrameRegisterNamedMatrices(ptr ptr)
@ stdcall D3DXFresnelTerm(float float)
--
2.14.2
More information about the wine-patches
mailing list