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 RC_SRCS =3D version.r=
c=0A=0Adiff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.sp=
ec=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 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 33d83b2..3a9d97d 100644=0A--- a/dlls/d3dx9_36/d3dx9_36_pri=
vate.h=0A+++ b/dlls/d3dx9_36/d3dx9_36_private.h=0A@@ -36,5 +36,14 @@ typede=
f struct ID3DXFontImpl=0A   /* ID3DXFont fields */=0A } ID3DXFontImpl;=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 =0A #endif /* __WINE_D3DX9_36_PRIVATE_H */=
=0Adiff --git a/dlls/d3dx9_36/sprite.c b/dlls/d3dx9_36/sprite.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 redistribute it and/or=
=0A+ * modify it under the terms of the GNU Lesser General Public=0A+ * Lic=
ense 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 li=
brary is distributed in the hope that it will be useful,=0A+ * but WITHOUT =
ANY WARRANTY; without even the implied warranty of=0A+ * MERCHANTABILITY or=
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU=0A+ * Lesser General Public=
 License for more details.=0A+ *=0A+ * You should have received a copy of t=
he GNU Lesser General Public=0A+ * License along with this library; if not,=
 write to the Free Software=0A+ * Foundation, Inc., 51 Franklin St, Fifth F=
loor, Boston, MA 02110-1301, USA=0A+ *=0A+ */=0A+=0A+#include "config.h"=0A=
+#include "wine/port.h"=0A+=0A+#include "wine/debug.h"=0A+#include "d3dx9_3=
6_private.h"=0A+=0A+WINE_DEFAULT_DEBUG_CHANNEL(d3dx);=0A+=0A+static HRESULT=
 WINAPI ID3DXSpriteImpl_QueryInterface(LPD3DXSPRITE iface, REFIID riid, LPV=
OID *object)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSpriteImpl*)iface;=
=0A+=0A+    TRACE("(%p): QueryInterface from %s\n", This, debugstr_guid(rii=
d));=0A+    if(IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_I=
D3DXSprite)) {=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+static ULONG WINAPI ID3DXSpriteImpl_AddRef(LPD3DXSPRITE iface)=0A+{=
=0A+    ID3DXSpriteImpl *This=3D(ID3DXSpriteImpl*)iface;=0A+    ULONG ref=
=3DInterlockedIncrement(&This->ref);=0A+    TRACE("(%p): AddRef from %d\n",=
 This, ref-1);=0A+    return ref;=0A+}=0A+=0A+static ULONG WINAPI ID3DXSpri=
teImpl_Release(LPD3DXSPRITE iface)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3=
DXSpriteImpl*)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+    ret=
urn ref;=0A+}=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_GetDevice(LPD3DX=
SPRITE iface, LPDIRECT3DDEVICE9 *device)=0A+{=0A+    ID3DXSpriteImpl *This=
=3D(ID3DXSpriteImpl*)iface;=0A+    FIXME("(%p): stub\n", This);=0A+    retu=
rn D3D_OK;=0A+}=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_GetTransform(L=
PD3DXSPRITE iface, D3DXMATRIX *transform)=0A+{=0A+    ID3DXSpriteImpl *This=
=3D(ID3DXSpriteImpl*)iface;=0A+    FIXME("(%p): stub\n", This);=0A+    retu=
rn D3D_OK;=0A+}=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_SetTransform(L=
PD3DXSPRITE iface, CONST 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_SetWorld=
ViewRH(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 HRESULT WIN=
API ID3DXSpriteImpl_SetWorldViewLH(LPD3DXSPRITE iface, CONST D3DXMATRIX *wo=
rld, CONST D3DXMATRIX *view)=0A+{=0A+    ID3DXSpriteImpl *This=3D(ID3DXSpri=
teImpl*)iface;=0A+    FIXME("(%p): stub\n", This);=0A+    return D3D_OK;=0A=
+}=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_Begin(LPD3DXSPRITE iface, D=
WORD 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+    ID3DXSpriteImpl *This=3D(ID3DXSpriteImpl*)iface;=0A+    FIXME("(%p)=
: stub\n", This);=0A+    return D3D_OK;=0A+}=0A+=0A+static HRESULT WINAPI I=
D3DXSpriteImpl_Flush(LPD3DXSPRITE iface)=0A+{=0A+    ID3DXSpriteImpl *This=
=3D(ID3DXSpriteImpl*)iface;=0A+    FIXME("(%p): stub\n", This);=0A+    retu=
rn D3D_OK;=0A+}=0A+=0A+static HRESULT WINAPI ID3DXSpriteImpl_End(LPD3DXSPRI=
TE iface)=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_OnLostDevice(LPD3DXSPRITE iface)=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_OnResetDevice(LPD3DXSPRITE iface)=0A+{=0A+    ID3DXSpriteImpl *This=
=3D(ID3DXSpriteImpl*)iface;=0A+    FIXME("(%p): stub\n", This);=0A+    retu=
rn D3D_OK;=0A+}=0A+=0A+static const ID3DXSpriteVtbl D3DXSprite_Vtbl =3D=0A+=
{=0A+    /*** IUnknown methods ***/=0A+    ID3DXSpriteImpl_QueryInterface,=
=0A+    ID3DXSpriteImpl_AddRef,=0A+    ID3DXSpriteImpl_Release,=0A+    /***=
 ID3DXSprite methods ***/=0A+    ID3DXSpriteImpl_GetDevice,=0A+    ID3DXSpr=
iteImpl_GetTransform,=0A+    ID3DXSpriteImpl_SetTransform,=0A+    ID3DXSpri=
teImpl_SetWorldViewRH,=0A+    ID3DXSpriteImpl_SetWorldViewLH,=0A+    ID3DXS=
priteImpl_Begin,=0A+    ID3DXSpriteImpl_Draw,=0A+    ID3DXSpriteImpl_Flush,=
=0A+    ID3DXSpriteImpl_End,=0A+    ID3DXSpriteImpl_OnLostDevice,=0A+    ID=
3DXSpriteImpl_OnResetDevice=0A+};=0A+=0A+HRESULT WINAPI D3DXCreateSprite(LP=
DIRECT3DDEVICE9 device, LPD3DXSPRITE *sprite)=0A+{=0A+    ID3DXSpriteImpl *=
object;=0A+=0A+    FIXME("stub\n");=0A+=0A+    if(device=3D=3DNULL || sprit=
e=3D=3DNULL) return D3DERR_INVALIDCALL;=0A+=0A+    object=3DHeapAlloc(GetPr=
ocessHeap(), HEAP_ZERO_MEMORY, sizeof(ID3DXSpriteImpl));=0A+    if(object=
=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

--b3e731f595fee313562ca272515ed9c03--



More information about the wine-devel mailing list