mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Added patch to implement stubs for D3DXCreateAnimationController interface.
This commit is contained in:
parent
56a8b5698c
commit
294abd9164
@ -37,8 +37,9 @@ Wine. All those differences are also documented on the
|
||||
Included bug fixes and improvements
|
||||
===================================
|
||||
|
||||
**Bugfixes and features included in the next upcoming release [11]:**
|
||||
**Bugfixes and features included in the next upcoming release [12]:**
|
||||
|
||||
* Add stubs for D3DXCreateAnimationController interface
|
||||
* Anno 1602 installer depends on Windows 98 behavior of SHFileOperationW ([Wine Bug #37916](https://bugs.winehq.org/show_bug.cgi?id=37916))
|
||||
* Avseq crashes when multisampling is enabled ([Wine Bug #31998](https://bugs.winehq.org/show_bug.cgi?id=31998))
|
||||
* Child of Light expects FindConnectionPoint to succeed and increase the refcount ([Wine Bug #36408](https://bugs.winehq.org/show_bug.cgi?id=36408))
|
||||
|
1
debian/changelog
vendored
1
debian/changelog
vendored
@ -8,6 +8,7 @@ wine-staging (1.7.35) UNRELEASED; urgency=low
|
||||
* Added patch to avoid appending duplicate NULL character when importing keys with regedit.
|
||||
* Added patch for IConnectionPoint/INetworkListManagerEvents stub interface.
|
||||
* Added patch to fix init of LONGLONG variable with a negative value in TGA decoder.
|
||||
* Added patch to implement stubs for D3DXCreateAnimationController interface.
|
||||
* Removed patch to set last error on success in WSARecv (accepted upstream).
|
||||
* Removed patch to fix handling of subdirectory in FtpFindFirstFile (accepted upstream).
|
||||
* Removed patch to initialize irp.Tail.Overlay.OriginalFileObject with stub file object (accepted upstream).
|
||||
|
@ -0,0 +1,502 @@
|
||||
From 68e6f505ad61148ddd881f00d9a03ce7185a8797 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Sat, 17 Jan 2015 23:54:14 +0100
|
||||
Subject: d3dx9_36: Implement D3DXCreateAnimationController with a stubbed
|
||||
ID3DXAnimationController interface.
|
||||
|
||||
---
|
||||
dlls/d3dx9_36/Makefile.in | 1 +
|
||||
dlls/d3dx9_36/animation.c | 455 ++++++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/d3dx9_36/d3dx9_36.spec | 2 +-
|
||||
3 files changed, 457 insertions(+), 1 deletion(-)
|
||||
create mode 100644 dlls/d3dx9_36/animation.c
|
||||
|
||||
diff --git a/dlls/d3dx9_36/Makefile.in b/dlls/d3dx9_36/Makefile.in
|
||||
index aa387b5..fd710c2 100644
|
||||
--- a/dlls/d3dx9_36/Makefile.in
|
||||
+++ b/dlls/d3dx9_36/Makefile.in
|
||||
@@ -3,6 +3,7 @@ IMPORTLIB = d3dx9
|
||||
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
|
||||
|
||||
C_SRCS = \
|
||||
+ animation.c \
|
||||
core.c \
|
||||
d3dx9_36_main.c \
|
||||
effect.c \
|
||||
diff --git a/dlls/d3dx9_36/animation.c b/dlls/d3dx9_36/animation.c
|
||||
new file mode 100644
|
||||
index 0000000..72f685f
|
||||
--- /dev/null
|
||||
+++ b/dlls/d3dx9_36/animation.c
|
||||
@@ -0,0 +1,455 @@
|
||||
+/*
|
||||
+ * Animation Controller operations specific to D3DX9.
|
||||
+ *
|
||||
+ * Copyright (C) 2015 Christian Costa
|
||||
+ *
|
||||
+ * This library is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU Lesser General Public
|
||||
+ * License as published by the Free Software Foundation; either
|
||||
+ * version 2.1 of the License, or (at your option) any later version.
|
||||
+ *
|
||||
+ * This library is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ * Lesser General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU Lesser General Public
|
||||
+ * License along with this library; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
+ */
|
||||
+
|
||||
+#include "wine/debug.h"
|
||||
+#include "d3dx9_36_private.h"
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(d3dx);
|
||||
+
|
||||
+struct d3dx9_animation_controller
|
||||
+{
|
||||
+ ID3DXAnimationController ID3DXAnimationController_iface;
|
||||
+ LONG ref;
|
||||
+};
|
||||
+
|
||||
+static inline struct d3dx9_animation_controller *impl_from_ID3DXAnimationController(ID3DXAnimationController *iface)
|
||||
+{
|
||||
+ return CONTAINING_RECORD(iface, struct d3dx9_animation_controller, ID3DXAnimationController_iface);
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_QueryInterface(ID3DXAnimationController *iface, REFIID riid, void **out)
|
||||
+{
|
||||
+ TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
|
||||
+
|
||||
+ if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_ID3DXAnimationController))
|
||||
+ {
|
||||
+ IUnknown_AddRef(iface);
|
||||
+ *out = iface;
|
||||
+ return D3D_OK;
|
||||
+ }
|
||||
+
|
||||
+ WARN("%s not implemented, returning E_NOINTERFACE\n", debugstr_guid(riid));
|
||||
+
|
||||
+ *out = NULL;
|
||||
+ return E_NOINTERFACE;
|
||||
+}
|
||||
+
|
||||
+static ULONG WINAPI d3dx9_animation_controller_AddRef(ID3DXAnimationController *iface)
|
||||
+{
|
||||
+ struct d3dx9_animation_controller *animation = impl_from_ID3DXAnimationController(iface);
|
||||
+ ULONG refcount = InterlockedIncrement(&animation->ref);
|
||||
+
|
||||
+ TRACE("%p increasing refcount to %u.\n", animation, refcount);
|
||||
+
|
||||
+ return refcount;
|
||||
+}
|
||||
+
|
||||
+static ULONG WINAPI d3dx9_animation_controller_Release(ID3DXAnimationController *iface)
|
||||
+{
|
||||
+ struct d3dx9_animation_controller *animation = impl_from_ID3DXAnimationController(iface);
|
||||
+ ULONG refcount = InterlockedDecrement(&animation->ref);
|
||||
+
|
||||
+ TRACE("%p decreasing refcount to %u.\n", animation, refcount);
|
||||
+
|
||||
+ if (!refcount)
|
||||
+ {
|
||||
+ HeapFree(GetProcessHeap(), 0, animation);
|
||||
+ }
|
||||
+
|
||||
+ return refcount;
|
||||
+}
|
||||
+
|
||||
+static UINT WINAPI d3dx9_animation_controller_GetMaxNumAnimationOutputs(ID3DXAnimationController *iface)
|
||||
+{
|
||||
+ FIXME("iface %p stub.\n", iface);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static UINT WINAPI d3dx9_animation_controller_GetMaxNumAnimationSets(ID3DXAnimationController *iface)
|
||||
+{
|
||||
+ FIXME("iface %p stub.\n", iface);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static UINT WINAPI d3dx9_animation_controller_GetMaxNumTracks(ID3DXAnimationController *iface)
|
||||
+{
|
||||
+ FIXME("iface %p stub.\n", iface);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static UINT WINAPI d3dx9_animation_controller_GetMaxNumEvents(ID3DXAnimationController *iface)
|
||||
+{
|
||||
+ FIXME("iface %p stub.\n", iface);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_RegisterAnimationOutput(ID3DXAnimationController *iface,
|
||||
+ const char *name, D3DXMATRIX *matrix, D3DXVECTOR3 *scale, D3DXQUATERNION *rotation, D3DXVECTOR3 *translation)
|
||||
+{
|
||||
+ FIXME("iface %p, name %s, matrix %p, scale %p, rotation %p, translation %p stub.\n", iface, wine_dbgstr_a(name),
|
||||
+ matrix, scale, rotation, translation);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_RegisterAnimationSet(ID3DXAnimationController *iface,
|
||||
+ ID3DXAnimationSet *anim_set)
|
||||
+{
|
||||
+ FIXME("iface %p, anim_set %p stub.\n", iface, anim_set);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_UnregisterAnimationSet(ID3DXAnimationController *iface,
|
||||
+ ID3DXAnimationSet *anim_set)
|
||||
+{
|
||||
+ FIXME("iface %p, anim_set %p stub.\n", iface, anim_set);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static UINT WINAPI d3dx9_animation_controller_GetNumAnimationSets(ID3DXAnimationController *iface)
|
||||
+{
|
||||
+ FIXME("iface %p stub.\n", iface);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_GetAnimationSet(ID3DXAnimationController *iface,
|
||||
+ UINT index, ID3DXAnimationSet **anim_set)
|
||||
+{
|
||||
+ FIXME("iface %p, index %u, anim_set %p stub.\n", iface, index, anim_set);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_GetAnimationSetByName(ID3DXAnimationController *iface,
|
||||
+ const char *name, ID3DXAnimationSet **anim_set)
|
||||
+{
|
||||
+ FIXME("iface %p, name %s, anim_set %p stub.\n", iface, wine_dbgstr_a(name), anim_set);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_AdvanceTime(ID3DXAnimationController *iface, DOUBLE time_delta,
|
||||
+ ID3DXAnimationCallbackHandler **callback_handler)
|
||||
+{
|
||||
+ FIXME("iface %p, time_delta %g, callback_handler %p stub.\n", iface, time_delta, callback_handler);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_Reset(ID3DXAnimationController *iface)
|
||||
+{
|
||||
+ FIXME("iface %p stub.\n", iface);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static DOUBLE WINAPI d3dx9_animation_controller_GetTime(ID3DXAnimationController *iface)
|
||||
+{
|
||||
+ FIXME("iface %p stub.\n", iface);
|
||||
+
|
||||
+ return 0.0;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_SetTrackAnimationSet(ID3DXAnimationController *iface,
|
||||
+ UINT track, ID3DXAnimationSet *anim_set)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u, anim_set %p stub.\n", iface, track, anim_set);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_GetTrackAnimationSet(ID3DXAnimationController *iface,
|
||||
+ UINT track, ID3DXAnimationSet **anim_set)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u, anim_set %p stub.\n", iface, track, anim_set);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_GetTrackPriority(ID3DXAnimationController *iface,
|
||||
+ UINT track, D3DXPRIORITY_TYPE *priority)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u, priority %p stub.\n", iface, track, priority);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_SetTrackSpeed(ID3DXAnimationController *iface,
|
||||
+ UINT track, FLOAT speed)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u, speed %f stub.\n", iface, track, speed);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_SetTrackWeight(ID3DXAnimationController *iface,
|
||||
+ UINT track, FLOAT weight)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u, weight %f stub.\n", iface, track, weight);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_SetTrackPosition(ID3DXAnimationController *iface,
|
||||
+ UINT track, DOUBLE position)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u, position %g stub.\n", iface, track, position);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_SetTrackEnable(ID3DXAnimationController *iface,
|
||||
+ UINT track, BOOL enable)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u, enable %u stub.\n", iface, track, enable);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_SetTrackDesc(ID3DXAnimationController *iface,
|
||||
+ UINT track, D3DXTRACK_DESC *desc)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u, desc %p stub.\n", iface, track, desc);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_GetTrackDesc(ID3DXAnimationController *iface,
|
||||
+ UINT track, D3DXTRACK_DESC *desc)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u, desc %p stub.\n", iface, track, desc);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_SetPriorityBlend(ID3DXAnimationController *iface,
|
||||
+ FLOAT blend_weight)
|
||||
+{
|
||||
+ FIXME("iface %p, blend_weight %f stub.\n", iface, blend_weight);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static FLOAT WINAPI d3dx9_animation_controller_GetPriorityBlend(ID3DXAnimationController *iface)
|
||||
+{
|
||||
+ FIXME("iface %p stub.\n", iface);
|
||||
+
|
||||
+ return 0.0;
|
||||
+}
|
||||
+
|
||||
+static D3DXEVENTHANDLE WINAPI d3dx9_animation_controller_KeyTrackSpeed(ID3DXAnimationController *iface,
|
||||
+ UINT track, FLOAT new_speed, DOUBLE start_time, DOUBLE duration, D3DXTRANSITION_TYPE transition)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u, new_speed %f, start_time %g, duration %g, transition %u stub.\n", iface,
|
||||
+ track, new_speed, start_time, duration, transition);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static D3DXEVENTHANDLE WINAPI d3dx9_animation_controller_KeyTrackWeight(ID3DXAnimationController *iface,
|
||||
+ UINT track, FLOAT new_weight, DOUBLE start_time, DOUBLE duration, D3DXTRANSITION_TYPE transition)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u, new_weight %f, start_time %g, duration %g, transition %u stub.\n", iface,
|
||||
+ track, new_weight, start_time, duration, transition);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static D3DXEVENTHANDLE WINAPI d3dx9_animation_controller_KeyTrackPosition(ID3DXAnimationController *iface,
|
||||
+ UINT track, DOUBLE new_position, DOUBLE start_time)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u, new_position %g, start_time %g stub.\n", iface,
|
||||
+ track, new_position, start_time);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static D3DXEVENTHANDLE WINAPI d3dx9_animation_controller_KeyTrackEnable(ID3DXAnimationController *iface,
|
||||
+ UINT track, BOOL new_enable, DOUBLE start_time)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u, new_enable %u, start_time %g stub.\n", iface,
|
||||
+ track, new_enable, start_time);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static D3DXEVENTHANDLE WINAPI d3dx9_animation_controller_KeyTrackBlend(ID3DXAnimationController *iface,
|
||||
+ FLOAT new_blend_weight, DOUBLE start_time, DOUBLE duration, D3DXTRANSITION_TYPE transition)
|
||||
+{
|
||||
+ FIXME("iface %p, new_blend_weight %f, start_time %g, duration %g, transition %u stub.\n", iface,
|
||||
+ new_blend_weight, start_time, duration, transition);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_UnkeyEvent(ID3DXAnimationController *iface, D3DXEVENTHANDLE event)
|
||||
+{
|
||||
+ FIXME("iface %p, event %u stub.\n", iface, event);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_UnkeyAllTrackEvents(ID3DXAnimationController *iface, UINT track)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u stub.\n", iface, track);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_UnkeyAllPriorityBlends(ID3DXAnimationController *iface)
|
||||
+{
|
||||
+ FIXME("iface %p stub.\n", iface);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static D3DXEVENTHANDLE WINAPI d3dx9_animation_controller_GetCurrentTrackEvent(ID3DXAnimationController *iface,
|
||||
+ UINT track, D3DXEVENT_TYPE event_type)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u, event_type %u stub.\n", iface, track, event_type);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static D3DXEVENTHANDLE WINAPI d3dx9_animation_controller_GetCurrentPriorityBlend(ID3DXAnimationController *iface)
|
||||
+{
|
||||
+ FIXME("iface %p stub.\n", iface);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static D3DXEVENTHANDLE WINAPI d3dx9_animation_controller_GetUpcomingTrackEvent(ID3DXAnimationController *iface,
|
||||
+ UINT track, D3DXEVENTHANDLE event)
|
||||
+{
|
||||
+ FIXME("iface %p, track %u, event %u stub.\n", iface, track, event);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static D3DXEVENTHANDLE WINAPI d3dx9_animation_controller_GetUpcomingPriorityBlend(ID3DXAnimationController *iface,
|
||||
+ D3DXEVENTHANDLE handle)
|
||||
+{
|
||||
+ FIXME("iface %p, handle %u stub.\n", iface, handle);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_ValidateEvent(ID3DXAnimationController *iface, D3DXEVENTHANDLE event)
|
||||
+{
|
||||
+ FIXME("iface %p, event %u stub.\n", iface, event);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_GetEventDesc(ID3DXAnimationController *iface,
|
||||
+ D3DXEVENTHANDLE event, D3DXEVENT_DESC *desc)
|
||||
+{
|
||||
+ FIXME("iface %p, event %u, desc %p stub.\n", iface, event, desc);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI d3dx9_animation_controller_CloneAnimationController(ID3DXAnimationController *iface, UINT max_num_anim_outputs,
|
||||
+ UINT max_num_anim_sets, UINT max_num_tracks, UINT max_num_events, ID3DXAnimationController **anim_controller)
|
||||
+{
|
||||
+ FIXME("iface %p, max_num_anim_outputs %u, max_num_anim_sets %u, max_num_tracks %u, max_num_events %u, anim_controller %p stub.\n",
|
||||
+ iface, max_num_anim_outputs, max_num_anim_sets, max_num_tracks, max_num_events, anim_controller);
|
||||
+
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static const struct ID3DXAnimationControllerVtbl d3dx9_animation_controller_vtbl =
|
||||
+{
|
||||
+ d3dx9_animation_controller_QueryInterface,
|
||||
+ d3dx9_animation_controller_AddRef,
|
||||
+ d3dx9_animation_controller_Release,
|
||||
+ d3dx9_animation_controller_GetMaxNumAnimationOutputs,
|
||||
+ d3dx9_animation_controller_GetMaxNumAnimationSets,
|
||||
+ d3dx9_animation_controller_GetMaxNumTracks,
|
||||
+ d3dx9_animation_controller_GetMaxNumEvents,
|
||||
+ d3dx9_animation_controller_RegisterAnimationOutput,
|
||||
+ d3dx9_animation_controller_RegisterAnimationSet,
|
||||
+ d3dx9_animation_controller_UnregisterAnimationSet,
|
||||
+ d3dx9_animation_controller_GetNumAnimationSets,
|
||||
+ d3dx9_animation_controller_GetAnimationSet,
|
||||
+ d3dx9_animation_controller_GetAnimationSetByName,
|
||||
+ d3dx9_animation_controller_AdvanceTime,
|
||||
+ d3dx9_animation_controller_Reset,
|
||||
+ d3dx9_animation_controller_GetTime,
|
||||
+ d3dx9_animation_controller_SetTrackAnimationSet,
|
||||
+ d3dx9_animation_controller_GetTrackAnimationSet,
|
||||
+ d3dx9_animation_controller_GetTrackPriority,
|
||||
+ d3dx9_animation_controller_SetTrackSpeed,
|
||||
+ d3dx9_animation_controller_SetTrackWeight,
|
||||
+ d3dx9_animation_controller_SetTrackPosition,
|
||||
+ d3dx9_animation_controller_SetTrackEnable,
|
||||
+ d3dx9_animation_controller_SetTrackDesc,
|
||||
+ d3dx9_animation_controller_GetTrackDesc,
|
||||
+ d3dx9_animation_controller_SetPriorityBlend,
|
||||
+ d3dx9_animation_controller_GetPriorityBlend,
|
||||
+ d3dx9_animation_controller_KeyTrackSpeed,
|
||||
+ d3dx9_animation_controller_KeyTrackWeight,
|
||||
+ d3dx9_animation_controller_KeyTrackPosition,
|
||||
+ d3dx9_animation_controller_KeyTrackEnable,
|
||||
+ d3dx9_animation_controller_KeyTrackBlend,
|
||||
+ d3dx9_animation_controller_UnkeyEvent,
|
||||
+ d3dx9_animation_controller_UnkeyAllTrackEvents,
|
||||
+ d3dx9_animation_controller_UnkeyAllPriorityBlends,
|
||||
+ d3dx9_animation_controller_GetCurrentTrackEvent,
|
||||
+ d3dx9_animation_controller_GetCurrentPriorityBlend,
|
||||
+ d3dx9_animation_controller_GetUpcomingTrackEvent,
|
||||
+ d3dx9_animation_controller_GetUpcomingPriorityBlend,
|
||||
+ d3dx9_animation_controller_ValidateEvent,
|
||||
+ d3dx9_animation_controller_GetEventDesc,
|
||||
+ d3dx9_animation_controller_CloneAnimationController
|
||||
+};
|
||||
+
|
||||
+/***********************************************************************
|
||||
+ * D3DXCreateAnimationController (D3DX9_36.@)
|
||||
+ */
|
||||
+HRESULT WINAPI D3DXCreateAnimationController(UINT MaxNumAnimationOutputs, UINT MaxNumAnimationSets,
|
||||
+ UINT MaxNumTracks, UINT MaxNumEvents, ID3DXAnimationController **AnimationController)
|
||||
+{
|
||||
+ struct d3dx9_animation_controller* object;
|
||||
+
|
||||
+ TRACE("MaxNumAnimationOutputs %u, MaxNumAnimationSets %u, MaxNumTracks %u, MaxNumEvents %u, AnimationController %p.\n",
|
||||
+ MaxNumAnimationOutputs, MaxNumAnimationSets, MaxNumTracks, MaxNumEvents, AnimationController);
|
||||
+
|
||||
+ if (!AnimationController)
|
||||
+ return D3DERR_INVALIDCALL;
|
||||
+
|
||||
+ object = HeapAlloc(GetProcessHeap(), 0, sizeof(*object));
|
||||
+ if (!object)
|
||||
+ return E_OUTOFMEMORY;
|
||||
+
|
||||
+ object->ID3DXAnimationController_iface.lpVtbl = &d3dx9_animation_controller_vtbl;
|
||||
+ object->ref = 1;
|
||||
+
|
||||
+ *AnimationController = &object->ID3DXAnimationController_iface;
|
||||
+
|
||||
+ return D3D_OK;
|
||||
+}
|
||||
diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
|
||||
index 13f0d99..4182f59 100644
|
||||
--- a/dlls/d3dx9_36/d3dx9_36.spec
|
||||
+++ b/dlls/d3dx9_36/d3dx9_36.spec
|
||||
@@ -30,7 +30,7 @@
|
||||
@ stub D3DXConcatenateMeshes(ptr long long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXConvertMeshSubsetToSingleStrip(ptr long long ptr ptr)
|
||||
@ stub D3DXConvertMeshSubsetToStrips(ptr long long ptr ptr ptr ptr)
|
||||
-@ stub D3DXCreateAnimationController(long long long long ptr)
|
||||
+@ stdcall D3DXCreateAnimationController(long long long long ptr)
|
||||
@ stdcall D3DXCreateBox(ptr float float float ptr ptr)
|
||||
@ stdcall D3DXCreateBuffer(long ptr)
|
||||
@ stub D3DXCreateCompressedAnimationSet(ptr long long ptr long ptr ptr)
|
||||
--
|
||||
2.2.1
|
||||
|
@ -0,0 +1,2 @@
|
||||
Fixes: Add stubs for D3DXCreateAnimationController interface
|
||||
Depends: d3dx9_36-DXTn
|
@ -64,6 +64,7 @@ patch_enable_all ()
|
||||
enable_configure_Absolute_RPATH="$1"
|
||||
enable_d3d9_Surface_Refcount="$1"
|
||||
enable_d3dx9_36_ConvertToIndexedBlended="$1"
|
||||
enable_d3dx9_36_D3DXCreateAnimationController="$1"
|
||||
enable_d3dx9_36_D3DXStubs="$1"
|
||||
enable_d3dx9_36_DDS="$1"
|
||||
enable_d3dx9_36_DXTn="$1"
|
||||
@ -216,6 +217,9 @@ patch_enable ()
|
||||
d3dx9_36-ConvertToIndexedBlended)
|
||||
enable_d3dx9_36_ConvertToIndexedBlended="$2"
|
||||
;;
|
||||
d3dx9_36-D3DXCreateAnimationController)
|
||||
enable_d3dx9_36_D3DXCreateAnimationController="$2"
|
||||
;;
|
||||
d3dx9_36-D3DXStubs)
|
||||
enable_d3dx9_36_D3DXStubs="$2"
|
||||
;;
|
||||
@ -853,6 +857,13 @@ if test "$enable_ntdll_Junction_Points" -eq 1; then
|
||||
enable_ntdll_Fix_Free=1
|
||||
fi
|
||||
|
||||
if test "$enable_d3dx9_36_D3DXCreateAnimationController" -eq 1; then
|
||||
if test "$enable_d3dx9_36_DXTn" -gt 1; then
|
||||
abort "Patchset d3dx9_36-DXTn disabled, but d3dx9_36-D3DXCreateAnimationController depends on that."
|
||||
fi
|
||||
enable_d3dx9_36_DXTn=1
|
||||
fi
|
||||
|
||||
if test "$enable_d3dx9_36_DXTn" -eq 1; then
|
||||
if test "$enable_wined3d_DXTn" -gt 1; then
|
||||
abort "Patchset wined3d-DXTn disabled, but d3dx9_36-DXTn depends on that."
|
||||
@ -1080,6 +1091,60 @@ if test "$enable_d3dx9_36_ConvertToIndexedBlended" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-DXTn
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#25486] Lego Stunt Rally requires DXTn software de/encoding support
|
||||
# | * [#29586] Tumblebugs 2 requires DXTn software encoding support
|
||||
# | * [#14939] Black & White needs DXTn software decoding support
|
||||
# | * [#17913] Port Royale doesn't display ocean correctly
|
||||
# | * [#29598] eRacer Demo doesn't correctly display text
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * configure.ac, dlls/wined3d/Makefile.in, dlls/wined3d/dxtn.c, dlls/wined3d/surface.c, dlls/wined3d/wined3d.spec,
|
||||
# | dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h, include/wine/wined3d.h
|
||||
# |
|
||||
if test "$enable_wined3d_DXTn" -eq 1; then
|
||||
patch_apply wined3d-DXTn/0001-wined3d-Add-support-for-DXTn-software-decoding-throu.patch
|
||||
patch_apply wined3d-DXTn/0002-wined3d-Improve-DXTn-support-and-export-conversion-f.patch
|
||||
patch_apply wined3d-DXTn/0003-wined3d-add-DXT1-to-B4G4R4A4-DXT1-to-B5G5R5A1-and-DX.patch
|
||||
(
|
||||
echo '+ { "Michael Müller", "wined3d: Add support for DXTn software decoding through libtxc_dxtn.", 2 },';
|
||||
echo '+ { "Christian Costa", "wined3d: Improve DXTn support and export conversion functions for d3dx9_36.", 1 },';
|
||||
echo '+ { "Michael Müller", "wined3d: add DXT1 to B4G4R4A4, DXT1 to B5G5R5A1 and DXT3 to B4G4R4A4 conversion.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset d3dx9_36-DXTn
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#33768] Fix texture corruption in CSI: Fatal Conspiracy
|
||||
# | * [#19231] Fix crash of Trine Demo on start
|
||||
# | * [#37391] Exception during start of fr-043 caused by missing DXTn support
|
||||
# | * [#34692] Fix wrong colors in Wolfenstein (2009)
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/d3dx9_36/Makefile.in, dlls/d3dx9_36/surface.c, dlls/d3dx9_36/tests/surface.c
|
||||
# |
|
||||
if test "$enable_d3dx9_36_DXTn" -eq 1; then
|
||||
patch_apply d3dx9_36-DXTn/0001-d3dx9_36-Add-dxtn-support.patch
|
||||
(
|
||||
echo '+ { "Christian Costa", "d3dx9_36: Add dxtn support.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset d3dx9_36-D3DXCreateAnimationController
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/d3dx9_36/Makefile.in, dlls/d3dx9_36/animation.c, dlls/d3dx9_36/d3dx9_36.spec
|
||||
# |
|
||||
if test "$enable_d3dx9_36_D3DXCreateAnimationController" -eq 1; then
|
||||
patch_apply d3dx9_36-D3DXCreateAnimationController/0001-d3dx9_36-Implement-D3DXCreateAnimationController-wit.patch
|
||||
(
|
||||
echo '+ { "Christian Costa", "d3dx9_36: Implement D3DXCreateAnimationController with a stubbed ID3DXAnimationController interface.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset d3dx9_36-D3DXStubs
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -1126,48 +1191,6 @@ if test "$enable_d3dx9_36_DDS" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-DXTn
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#25486] Lego Stunt Rally requires DXTn software de/encoding support
|
||||
# | * [#29586] Tumblebugs 2 requires DXTn software encoding support
|
||||
# | * [#14939] Black & White needs DXTn software decoding support
|
||||
# | * [#17913] Port Royale doesn't display ocean correctly
|
||||
# | * [#29598] eRacer Demo doesn't correctly display text
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * configure.ac, dlls/wined3d/Makefile.in, dlls/wined3d/dxtn.c, dlls/wined3d/surface.c, dlls/wined3d/wined3d.spec,
|
||||
# | dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h, include/wine/wined3d.h
|
||||
# |
|
||||
if test "$enable_wined3d_DXTn" -eq 1; then
|
||||
patch_apply wined3d-DXTn/0001-wined3d-Add-support-for-DXTn-software-decoding-throu.patch
|
||||
patch_apply wined3d-DXTn/0002-wined3d-Improve-DXTn-support-and-export-conversion-f.patch
|
||||
patch_apply wined3d-DXTn/0003-wined3d-add-DXT1-to-B4G4R4A4-DXT1-to-B5G5R5A1-and-DX.patch
|
||||
(
|
||||
echo '+ { "Michael Müller", "wined3d: Add support for DXTn software decoding through libtxc_dxtn.", 2 },';
|
||||
echo '+ { "Christian Costa", "wined3d: Improve DXTn support and export conversion functions for d3dx9_36.", 1 },';
|
||||
echo '+ { "Michael Müller", "wined3d: add DXT1 to B4G4R4A4, DXT1 to B5G5R5A1 and DXT3 to B4G4R4A4 conversion.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset d3dx9_36-DXTn
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#33768] Fix texture corruption in CSI: Fatal Conspiracy
|
||||
# | * [#19231] Fix crash of Trine Demo on start
|
||||
# | * [#37391] Exception during start of fr-043 caused by missing DXTn support
|
||||
# | * [#34692] Fix wrong colors in Wolfenstein (2009)
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/d3dx9_36/Makefile.in, dlls/d3dx9_36/surface.c, dlls/d3dx9_36/tests/surface.c
|
||||
# |
|
||||
if test "$enable_d3dx9_36_DXTn" -eq 1; then
|
||||
patch_apply d3dx9_36-DXTn/0001-d3dx9_36-Add-dxtn-support.patch
|
||||
(
|
||||
echo '+ { "Christian Costa", "d3dx9_36: Add dxtn support.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset d3dx9_36-DrawText
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -2788,21 +2811,6 @@ if test "$enable_winebuild_LinkerVersion" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-Color_Key
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#37748] Fix color key regression causing pink rectangles around text
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/wined3d/surface.c
|
||||
# |
|
||||
if test "$enable_wined3d_Color_Key" -eq 1; then
|
||||
patch_apply wined3d-Color_Key/0001-wined3d-Use-proper-color-key-type-define-when-callin.patch
|
||||
(
|
||||
echo '+ { "Christian Costa", "wined3d: Use proper color key type define when calling wined3d_texture_set_color_key.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-CSMT_Helper
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -2819,6 +2827,21 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-Color_Key
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#37748] Fix color key regression causing pink rectangles around text
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/wined3d/surface.c
|
||||
# |
|
||||
if test "$enable_wined3d_Color_Key" -eq 1; then
|
||||
patch_apply wined3d-Color_Key/0001-wined3d-Use-proper-color-key-type-define-when-callin.patch
|
||||
(
|
||||
echo '+ { "Christian Costa", "wined3d: Use proper color key type define when calling wined3d_texture_set_color_key.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-CSMT_Main
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
|
Loading…
Reference in New Issue
Block a user