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-=09shader.c=0A+=09shader.c \=0A+=09sprite.c=0A =0A RC=
_SRCS =3D version.rc=0A=0Adiff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d=
3dx9_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 D3DXCreateSkinInfoFromBlendedMesh=0A @ stub D3DXCreateSkinInfoFVF=0A =
@ stub D3DXCreateSphere=0A-@ stub D3DXCreateSprite=0A+@ stdcall D3DXCreateS=
prite(ptr ptr)=0A @ stub D3DXCreateTeapot=0A @ stub D3DXCreateTextA=0A @ st=
ub D3DXCreateTextW=0Adiff --git a/dlls/d3dx9_36/d3dx9_36_private.h b/dlls/d=
3dx9_36/d3dx9_36_private.h=0Aindex 33d83b2..3a9d97d 100644=0A--- a/dlls/d3d=
x9_36/d3dx9_36_private.h=0A+++ b/dlls/d3dx9_36/d3dx9_36_private.h=0A@@ -36,=
5 +36,14 @@ typedef struct ID3DXFontImpl=0A   /* ID3DXFont fields */=0A } I=
D3DXFontImpl;=0A =0A+typedef struct ID3DXSpriteImpl=0A+{=0A+  /* IUnknown f=
ields */=0A+  const ID3DXSpriteVtbl *lpVtbl;=0A+  LONG ref;=0A+=0A+  /* ID3=
DXSprite fields */=0A+} ID3DXSpriteImpl;=0A+=0A =0A #endif /* __WINE_D3DX9_=
36_PRIVATE_H */=0Adiff --git a/dlls/d3dx9_36/sprite.c b/dlls/d3dx9_36/sprit=
e.c=0Anew file mode 100644=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 redistribu=
te it and/or=0A+ * modify it under the terms of the GNU Lesser General Publ=
ic=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 is distributed in the hope that it will be useful,=0A+ =
* but WITHOUT ANY WARRANTY; without even the implied warranty of=0A+ * MERC=
HANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU=0A+ * Lesser =
General Public License for more details.=0A+ *=0A+ * You should have receiv=
ed a copy of the GNU Lesser General Public=0A+ * License along with this li=
brary; if not, write to the Free Software=0A+ * Foundation, Inc., 51 Frankl=
in St, Fifth Floor, Boston, MA 02110-1301, USA=0A+ *=0A+ */=0A+=0A+#include=
 "config.h"=0A+#include "wine/port.h"=0A+=0A+#include "wine/debug.h"=0A+#in=
clude "d3dx9_36_private.h"=0A+=0A+WINE_DEFAULT_DEBUG_CHANNEL(d3dx);=0A+=0A+=
static HRESULT WINAPI ID3DXSpriteImpl_QueryInterface(LPD3DXSPRITE iface, RE=
FIID riid, LPVOID *object)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSprite=
Impl*)iface;=0A+=0A+    TRACE("(%p): QueryInterface from %s\n", This, debug=
str_guid(riid));=0A+    if(IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(=
riid, &IID_ID3DXSprite)) {=0A+        IUnknown_AddRef(iface);=0A+        *o=
bject=3DThis;=0A+        return S_OK;=0A+    }=0A+    WARN("(%p)->(%s, %p):=
 not found\n", iface, debugstr_guid(riid), *object);=0A+    return E_NOINTE=
RFACE;=0A+}=0A+=0A+static ULONG WINAPI ID3DXSpriteImpl_AddRef(LPD3DXSPRITE =
iface)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSpriteImpl*)iface;=0A+    =
ULONG ref=3DInterlockedIncrement(&This->ref);=0A+    TRACE("(%p): AddRef fr=
om %d\n", This, ref-1);=0A+    return ref;=0A+}=0A+=0A+static ULONG WINAPI =
ID3DXSpriteImpl_Release(LPD3DXSPRITE iface)=0A+{=0A+    ID3DXSpriteImpl *Th=
is=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(ID3DXSpriteImpl*)iface;=0A+    FIXME("(%p): stub\n", This);=0A+   =
 return D3D_OK;=0A+}=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_GetTransf=
orm(LPD3DXSPRITE iface, D3DXMATRIX *transform)=0A+{=0A+    ID3DXSpriteImpl =
*This=3D(ID3DXSpriteImpl*)iface;=0A+    FIXME("(%p): stub\n", This);=0A+   =
 return D3D_OK;=0A+}=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_SetTransf=
orm(LPD3DXSPRITE iface, CONST D3DXMATRIX *transform)=0A+{=0A+    ID3DXSprit=
eImpl *This=3D(ID3DXSpriteImpl*)iface;=0A+    FIXME("(%p): stub\n", This);=
=0A+    return D3D_OK;=0A+}=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_Se=
tWorldViewRH(LPD3DXSPRITE iface, CONST D3DXMATRIX *world, CONST D3DXMATRIX =
*view)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSpriteImpl*)iface;=0A+    =
FIXME("(%p): stub\n", This);=0A+    return D3D_OK;=0A+}=0A+=0A+static HRESU=
LT WINAPI ID3DXSpriteImpl_SetWorldViewLH(LPD3DXSPRITE iface, CONST D3DXMATR=
IX *world, CONST D3DXMATRIX *view)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3=
DXSpriteImpl*)iface;=0A+    FIXME("(%p): stub\n", This);=0A+    return D3D_=
OK;=0A+}=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_Begin(LPD3DXSPRITE if=
ace, DWORD flags)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSpriteImpl*)ifa=
ce;=0A+    FIXME("(%p): stub\n", This);=0A+    return D3D_OK;=0A+}=0A+=0A+s=
tatic HRESULT WINAPI ID3DXSpriteImpl_Draw(LPD3DXSPRITE iface, LPDIRECT3DTEX=
TURE9 texture, CONST RECT *rect, CONST D3DXVECTOR3 *center,=0A+            =
                               CONST D3DXVECTOR3 *position, D3DCOLOR color)=
=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_Flush(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_End(LPD3DX=
SPRITE iface)=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_OnLostDevice(LPD3DXSPRITE iface)=0A+{=0A+=
    ID3DXSpriteImpl *This=3D(ID3DXSpriteImpl*)iface;=0A+    FIXME("(%p): st=
ub\n", This);=0A+    return D3D_OK;=0A+}=0A+=0A+static HRESULT WINAPI ID3DX=
SpriteImpl_OnResetDevice(LPD3DXSPRITE iface)=0A+{=0A+    ID3DXSpriteImpl *T=
his=3D(ID3DXSpriteImpl*)iface;=0A+    FIXME("(%p): stub\n", This);=0A+    r=
eturn D3D_OK;=0A+}=0A+=0A+static const ID3DXSpriteVtbl D3DXSprite_Vtbl =3D=
=0A+{=0A+    /*** IUnknown methods ***/=0A+    ID3DXSpriteImpl_QueryInterfa=
ce,=0A+    ID3DXSpriteImpl_AddRef,=0A+    ID3DXSpriteImpl_Release,=0A+    /=
*** ID3DXSprite methods ***/=0A+    ID3DXSpriteImpl_GetDevice,=0A+    ID3DX=
SpriteImpl_GetTransform,=0A+    ID3DXSpriteImpl_SetTransform,=0A+    ID3DXS=
priteImpl_SetWorldViewRH,=0A+    ID3DXSpriteImpl_SetWorldViewLH,=0A+    ID3=
DXSpriteImpl_Begin,=0A+    ID3DXSpriteImpl_Draw,=0A+    ID3DXSpriteImpl_Flu=
sh,=0A+    ID3DXSpriteImpl_End,=0A+    ID3DXSpriteImpl_OnLostDevice,=0A+   =
 ID3DXSpriteImpl_OnResetDevice=0A+};=0A+=0A+HRESULT WINAPI D3DXCreateSprite=
(LPDIRECT3DDEVICE9 device, LPD3DXSPRITE *sprite)=0A+{=0A+    ID3DXSpriteImp=
l *object;=0A+=0A+    FIXME("stub\n");=0A+=0A+    if(device=3D=3DNULL || sp=
rite=3D=3DNULL) return D3DERR_INVALIDCALL;=0A+=0A+    object=3DHeapAlloc(Ge=
tProcessHeap(), HEAP_ZERO_MEMORY, sizeof(ID3DXSpriteImpl));=0A+    if(objec=
t=3D=3DNULL) {=0A+        *sprite=3DNULL;=0A+        return E_OUTOFMEMORY;=
=0A+    }=0A+    object->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

--bc8e43999e2fa6d315b59674b772a5e5b--



More information about the wine-patches mailing list