No subject


Wed Feb 20 09:39:33 CST 2008


=0A=0A---=0A dlls/d3dx9_36/Makefile.in        |    3 +-=0A dlls/d3dx9_36/d3=
dx9_36.spec      |    2 +-=0A dlls/d3dx9_36/d3dx9_36_private.h |    9 ++=0A=
 dlls/d3dx9_36/sprite.c           |  176 ++++++++++++++++++++++++++++++++++=
++++=0A 4 files changed, 188 insertions(+), 2 deletions(-)=0A create mode 1=
00644 dlls/d3dx9_36/sprite.c=0A=0Adiff --git a/dlls/d3dx9_36/Makefile.in b/=
dlls/d3dx9_36/Makefile.in=0Aindex e7df76a..0067d37 100644=0A--- a/dlls/d3dx=
9_36/Makefile.in=0A+++ b/dlls/d3dx9_36/Makefile.in=0A@@ -9,7 +9,8 @@ IMPORT=
S   =3D d3d9 d3dx8 kernel32=0A C_SRCS =3D \=0A =09d3dx9_36_main.c \=0A =09f=
ont.c \=0A-=09line.c=0A+=09line.c \=0A+=09sprite.c=0A =0A @MAKE_DLL_RULES@=
=0A =0Adiff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.sp=
ec=0Aindex 2e81833..a2497a8 100644=0A--- a/dlls/d3dx9_36/d3dx9_36.spec=0A++=
+ b/dlls/d3dx9_36/d3dx9_36.spec=0A@@ -88,7 +88,7 @@=0A @ stub D3DXCreateSki=
nInfoFromBlendedMesh=0A @ stub D3DXCreateSkinInfoFVF=0A @ stub D3DXCreateSp=
here=0A-@ stub D3DXCreateSprite=0A+@ stdcall D3DXCreateSprite(ptr ptr)=0A @=
 stub D3DXCreateTeapot=0A @ stub D3DXCreateTextA=0A @ stub D3DXCreateTextW=
=0Adiff --git a/dlls/d3dx9_36/d3dx9_36_private.h b/dlls/d3dx9_36/d3dx9_36_p=
rivate.h=0Aindex 431a875..8392000 100644=0A--- a/dlls/d3dx9_36/d3dx9_36_pri=
vate.h=0A+++ b/dlls/d3dx9_36/d3dx9_36_private.h=0A@@ -45,4 +45,13 @@ typede=
f struct ID3DXLineImpl=0A   /* ID3DXLine fields */=0A } ID3DXLineImpl;=0A =
=0A+typedef struct ID3DXSpriteImpl=0A+{=0A+  /* IUnknown fields */=0A+  con=
st ID3DXSpriteVtbl *lpVtbl;=0A+  LONG ref;=0A+=0A+  /* ID3DXSprite fields *=
/=0A+} ID3DXSpriteImpl;=0A+=0A #endif /* __WINE_D3DX9_36_PRIVATE_H */=0Adif=
f --git a/dlls/d3dx9_36/sprite.c b/dlls/d3dx9_36/sprite.c=0Anew file mode 1=
00644=0Aindex 0000000..94e8a6b=0A--- /dev/null=0A+++ b/dlls/d3dx9_36/sprite=
.c=0A@@ -0,0 +1,176 @@=0A+/*=0A+ * Copyright (C) 2008 Tony Wasserka=0A+ *=
=0A+ * This library is free software; you can redistribute it and/or=0A+ * =
modify it under the terms of the GNU Lesser General Public=0A+ * License as=
 published by the Free Software Foundation; either=0A+ * version 2.1 of the=
 License, or (at your option) any later version.=0A+ *=0A+ * This library i=
s distributed in the hope that it will be useful,=0A+ * but WITHOUT ANY WAR=
RANTY; without even the implied warranty of=0A+ * MERCHANTABILITY or FITNES=
S FOR A PARTICULAR PURPOSE.  See the GNU=0A+ * Lesser General Public Licens=
e for more details.=0A+ *=0A+ * You should have received a copy of the GNU =
Lesser General Public=0A+ * License along with this library; if not, write =
to the Free Software=0A+ * Foundation, Inc., 51 Franklin St, Fifth Floor, B=
oston, MA 02110-1301, USA=0A+ *=0A+ */=0A+=0A+#include "config.h"=0A+#inclu=
de "wine/port.h"=0A+=0A+#include "wine/debug.h"=0A+#include "d3dx9_36_priva=
te.h"=0A+=0A+WINE_DEFAULT_DEBUG_CHANNEL(d3dx);=0A+=0A+static HRESULT WINAPI=
 ID3DXSpriteImpl_QueryInterface(LPD3DXSPRITE iface, REFIID riid, LPVOID *ob=
ject)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSpriteImpl*)iface;=0A+=0A+ =
   TRACE("(%p): QueryInterface from %s\n", This, debugstr_guid(riid));=0A+ =
   if(IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_ID3DXSprit=
e)) {=0A+        IUnknown_AddRef(iface);=0A+        *object=3DThis;=0A+    =
    return S_OK;=0A+    }=0A+    WARN("(%p)->(%s, %p): not found\n", iface,=
 debugstr_guid(riid), *object);=0A+    return E_NOINTERFACE;=0A+}=0A+=0A+st=
atic ULONG WINAPI ID3DXSpriteImpl_AddRef(LPD3DXSPRITE iface)=0A+{=0A+    ID=
3DXSpriteImpl *This=3D(ID3DXSpriteImpl*)iface;=0A+    ULONG ref=3DInterlock=
edIncrement(&This->ref);=0A+    TRACE("(%p): AddRef from %d\n", This, ref-1=
);=0A+    return ref;=0A+}=0A+=0A+static ULONG WINAPI ID3DXSpriteImpl_Relea=
se(LPD3DXSPRITE iface)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSpriteImpl=
*)iface;=0A+    ULONG ref=3DInterlockedDecrement(&This->ref);=0A+    TRACE(=
"(%p): ReleaseRef to %d\n", This, ref);=0A+=0A+    if(ref=3D=3D0) {=0A+    =
    HeapFree(GetProcessHeap(), 0, This);=0A+    }=0A+    return ref;=0A+}=
=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_GetDevice(LPD3DXSPRITE iface,=
 LPDIRECT3DDEVICE9 *device)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSprit=
eImpl*)iface;=0A+    FIXME("(%p): stub\n", This);=0A+    return D3D_OK;=0A+=
}=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_GetTransform(LPD3DXSPRITE if=
ace, D3DXMATRIX *transform)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSprit=
eImpl*)iface;=0A+    FIXME("(%p): stub\n", This);=0A+    return D3D_OK;=0A+=
}=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_SetTransform(LPD3DXSPRITE if=
ace, CONST D3DXMATRIX *transform)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3D=
XSpriteImpl*)iface;=0A+    FIXME("(%p): stub\n", This);=0A+    return D3D_O=
K;=0A+}=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_SetWorldViewRH(LPD3DXS=
PRITE iface, CONST D3DXMATRIX *world, CONST D3DXMATRIX *view)=0A+{=0A+    I=
D3DXSpriteImpl *This=3D(ID3DXSpriteImpl*)iface;=0A+    FIXME("(%p): stub\n"=
, This);=0A+    return D3D_OK;=0A+}=0A+=0A+static HRESULT WINAPI ID3DXSprit=
eImpl_SetWorldViewLH(LPD3DXSPRITE iface, CONST D3DXMATRIX *world, CONST D3D=
XMATRIX *view)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSpriteImpl*)iface;=
=0A+    FIXME("(%p): stub\n", This);=0A+    return D3D_OK;=0A+}=0A+=0A+stat=
ic HRESULT WINAPI ID3DXSpriteImpl_Begin(LPD3DXSPRITE iface, DWORD flags)=0A=
+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSpriteImpl*)iface;=0A+    FIXME("(%=
p): stub\n", This);=0A+    return D3D_OK;=0A+}=0A+=0A+static HRESULT WINAPI=
 ID3DXSpriteImpl_Draw(LPD3DXSPRITE iface, LPDIRECT3DTEXTURE9 texture, CONST=
 RECT *rect, CONST D3DXVECTOR3 *center, CONST D3DXVECTOR3 *position, D3DCOL=
OR color)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSpriteImpl*)iface;=0A+ =
   FIXME("(%p): stub\n", This);=0A+    return D3D_OK;=0A+}=0A+=0A+static HR=
ESULT WINAPI ID3DXSpriteImpl_Flush(LPD3DXSPRITE iface)=0A+{=0A+    ID3DXSpr=
iteImpl *This=3D(ID3DXSpriteImpl*)iface;=0A+    FIXME("(%p): stub\n", This)=
;=0A+    return D3D_OK;=0A+}=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_E=
nd(LPD3DXSPRITE iface)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSpriteImpl=
*)iface;=0A+    FIXME("(%p): stub\n", This);=0A+    return D3D_OK;=0A+}=0A+=
=0A+static HRESULT WINAPI ID3DXSpriteImpl_OnLostDevice(LPD3DXSPRITE iface)=
=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSpriteImpl*)iface;=0A+    FIXME(=
"(%p): stub\n", This);=0A+    return D3D_OK;=0A+}=0A+=0A+static HRESULT WIN=
API ID3DXSpriteImpl_OnResetDevice(LPD3DXSPRITE iface)=0A+{=0A+    ID3DXSpri=
teImpl *This=3D(ID3DXSpriteImpl*)iface;=0A+    FIXME("(%p): stub\n", This);=
=0A+    return D3D_OK;=0A+}=0A+=0A+static const ID3DXSpriteVtbl D3DXSprite_=
Vtbl =3D=0A+{=0A+    /*** IUnknown methods ***/=0A+    ID3DXSpriteImpl_Quer=
yInterface,=0A+    ID3DXSpriteImpl_AddRef,=0A+    ID3DXSpriteImpl_Release,=
=0A+    /*** ID3DXSprite methods ***/=0A+    ID3DXSpriteImpl_GetDevice,=0A+=
    ID3DXSpriteImpl_GetTransform,=0A+    ID3DXSpriteImpl_SetTransform,=0A+ =
   ID3DXSpriteImpl_SetWorldViewRH,=0A+    ID3DXSpriteImpl_SetWorldViewLH,=
=0A+    ID3DXSpriteImpl_Begin,=0A+    ID3DXSpriteImpl_Draw,=0A+    ID3DXSpr=
iteImpl_Flush,=0A+    ID3DXSpriteImpl_End,=0A+    ID3DXSpriteImpl_OnLostDev=
ice,=0A+    ID3DXSpriteImpl_OnResetDevice=0A+};=0A+=0A+HRESULT WINAPI D3DXC=
reateSprite(LPDIRECT3DDEVICE9 device, LPD3DXSPRITE *sprite)=0A+{=0A+    ID3=
DXSpriteImpl *object;=0A+=0A+    FIXME("stub\n");=0A+=0A+    object=3DHeapA=
lloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(ID3DXSpriteImpl));=0A+    i=
f(object=3D=3DNULL) {=0A+        *sprite=3DNULL;=0A+        return E_OUTOFM=
EMORY;=0A+    }=0A+    object->lpVtbl=3D&D3DXSprite_Vtbl;=0A+    object->re=
f=3D1;=0A+=0A+    *sprite=3D(LPD3DXSPRITE)object;=0A+=0A+    return D3D_OK;=
=0A+}=0A-- =0A1.5.3.7=0A=0A

--b7ebca74c6469bac98f10c6f3fc738599--



More information about the wine-patches mailing list