No subject


Wed Jun 18 16:37:37 CDT 2008


---=0A dlls/d3dx9_36/Makefile.in        |    3 +-=0A dlls/d3dx9_36/d3dx9_36=
.spec      |    2 +-=0A dlls/d3dx9_36/d3dx9_36_private.h |    9 ++=0A dlls/=
d3dx9_36/sprite.c           |  179 ++++++++++++++++++++++++++++++++++++++=
=0A 4 files changed, 191 insertions(+), 2 deletions(-)=0A create mode 10064=
4 dlls/d3dx9_36/sprite.c=0A=0Adiff --git a/dlls/d3dx9_36/Makefile.in b/dlls=
/d3dx9_36/Makefile.in=0Aindex 2ed85ea..18a5928 100644=0A--- a/dlls/d3dx9_36=
/Makefile.in=0A+++ b/dlls/d3dx9_36/Makefile.in=0A@@ -9,7 +9,8 @@ IMPORTS   =
=3D d3d9 d3dx8 kernel32=0A C_SRCS =3D \=0A =09d3dx9_36_main.c \=0A =09font.=
c \=0A-=09math.c=0A+=09math.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.spec=
=0Aindex e616d23..a368b8b 100644=0A--- a/dlls/d3dx9_36/d3dx9_36.spec=0A+++ =
b/dlls/d3dx9_36/d3dx9_36.spec=0A@@ -88,7 +88,7 @@=0A @ stub D3DXCreateSkinI=
nfoFromBlendedMesh=0A @ stub D3DXCreateSkinInfoFVF=0A @ stub D3DXCreateSphe=
re=0A-@ stub D3DXCreateSprite=0A+@ stdcall D3DXCreateSprite(ptr ptr)=0A @ s=
tub D3DXCreateTeapot=0A @ stub D3DXCreateTextA=0A @ stub D3DXCreateTextW=0A=
diff --git a/dlls/d3dx9_36/d3dx9_36_private.h b/dlls/d3dx9_36/d3dx9_36_priv=
ate.h=0Aindex 33d83b2..3a9d97d 100644=0A--- a/dlls/d3dx9_36/d3dx9_36_privat=
e.h=0A+++ b/dlls/d3dx9_36/d3dx9_36_private.h=0A@@ -36,5 +36,14 @@ typedef s=
truct ID3DXFontImpl=0A   /* ID3DXFont fields */=0A } ID3DXFontImpl;=0A =0A+=
typedef struct ID3DXSpriteImpl=0A+{=0A+  /* IUnknown fields */=0A+  const I=
D3DXSpriteVtbl *lpVtbl;=0A+  LONG ref;=0A+=0A+  /* ID3DXSprite fields */=0A=
+} ID3DXSpriteImpl;=0A+=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..20cf787=0A--- /dev/null=0A+++ b/dlls/d3dx9_36/sprite=
.c=0A@@ -0,0 +1,179 @@=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,=0A+                                =
           CONST D3DXVECTOR3 *position, D3DCOLOR color)=0A+{=0A+    ID3DXSp=
riteImpl *This=3D(ID3DXSpriteImpl*)iface;=0A+    FIXME("(%p): stub\n", This=
);=0A+    return D3D_OK;=0A+}=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_=
Flush(LPD3DXSPRITE iface)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSpriteI=
mpl*)iface;=0A+    FIXME("(%p): stub\n", This);=0A+    return D3D_OK;=0A+}=
=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_End(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 I=
D3DXSpriteImpl_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 WINAPI ID3DXSpriteImpl_OnResetD=
evice(LPD3DXSPRITE iface)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSpriteI=
mpl*)iface;=0A+    FIXME("(%p): stub\n", This);=0A+    return D3D_OK;=0A+}=
=0A+=0A+static const ID3DXSpriteVtbl D3DXSprite_Vtbl =3D=0A+{=0A+    /*** I=
Unknown methods ***/=0A+    ID3DXSpriteImpl_QueryInterface,=0A+    ID3DXSpr=
iteImpl_AddRef,=0A+    ID3DXSpriteImpl_Release,=0A+    /*** ID3DXSprite met=
hods ***/=0A+    ID3DXSpriteImpl_GetDevice,=0A+    ID3DXSpriteImpl_GetTrans=
form,=0A+    ID3DXSpriteImpl_SetTransform,=0A+    ID3DXSpriteImpl_SetWorldV=
iewRH,=0A+    ID3DXSpriteImpl_SetWorldViewLH,=0A+    ID3DXSpriteImpl_Begin,=
=0A+    ID3DXSpriteImpl_Draw,=0A+    ID3DXSpriteImpl_Flush,=0A+    ID3DXSpr=
iteImpl_End,=0A+    ID3DXSpriteImpl_OnLostDevice,=0A+    ID3DXSpriteImpl_On=
ResetDevice=0A+};=0A+=0A+HRESULT WINAPI D3DXCreateSprite(LPDIRECT3DDEVICE9 =
device, LPD3DXSPRITE *sprite)=0A+{=0A+    ID3DXSpriteImpl *object;=0A+=0A+ =
   FIXME("stub\n");=0A+=0A+    if(device=3D=3DNULL || sprite=3D=3DNULL) ret=
urn D3DERR_INVALIDCALL;=0A+=0A+    object=3DHeapAlloc(GetProcessHeap(), HEA=
P_ZERO_MEMORY, sizeof(ID3DXSpriteImpl));=0A+    if(object=3D=3DNULL) {=0A+ =
       *sprite=3DNULL;=0A+        return E_OUTOFMEMORY;=0A+    }=0A+    obj=
ect->lpVtbl=3D&D3DXSprite_Vtbl;=0A+    object->ref=3D1;=0A+=0A+    *sprite=
=3D(ID3DXSprite*)object;=0A+=0A+    return D3D_OK;=0A+}=0A-- =0A1.5.4.3=0A=
=0A

--bbf35b867d71bdc400dbcbd32745c8ae7--



More information about the wine-patches mailing list