No subject
Wed Feb 20 09:39:33 CST 2008
=0A---=0A dlls/d3dx9_36/d3dx9_36_private.h | 26 ++++++++++++++-------=0A =
dlls/d3dx9_36/offscreen.c | 44 +++++++++++++++++++++++++++++++++++=
+-=0A 2 files changed, 59 insertions(+), 11 deletions(-)=0A=0Adiff --git a/=
dlls/d3dx9_36/d3dx9_36_private.h b/dlls/d3dx9_36/d3dx9_36_private.h=0Aindex=
2705872..0e32e2e 100644=0A--- a/dlls/d3dx9_36/d3dx9_36_private.h=0A+++ b/d=
lls/d3dx9_36/d3dx9_36_private.h=0A@@ -29,20 +29,28 @@=0A =0A typedef struct=
ID3DXFontImpl=0A {=0A- /* IUnknown fields */=0A- const ID3DXFontVtbl *lp=
Vtbl;=0A- LONG ref;=0A+ /* IUnknown fields */=0A+ const ID3DXFontVtb=
l *lpVtbl;=0A+ LONG ref;=0A =0A- /* ID3DXFont fields */=0A+ /* ID3DX=
Font fields */=0A } ID3DXFontImpl;=0A =0A typedef struct ID3DXRenderToSurfa=
ceImpl=0A {=0A- /* IUnknown fields */=0A- const ID3DXRenderToSurfaceVtbl =
*lpVtbl;=0A- LONG ref;=0A-=0A- /* ID3DXRenderToSurface fields */=0A+ /=
* IUnknown fields */=0A+ const ID3DXRenderToSurfaceVtbl *lpVtbl;=0A+ =
LONG ref;=0A+=0A+ /* ID3DXRenderToSurface fields */=0A+ IDirect3DDevi=
ce9 *device;=0A+ D3DXRTS_DESC desc;=0A+ IDirect3DSurface9 *target;=0A=
+ IDirect3DSurface9 *buffer;=0A+ IDirect3DSurface9 *stencil;=0A+ I=
Direct3DSurface9 *oldtarget;=0A+ IDirect3DSurface9 *oldstencil;=0A+ I=
Direct3DStateBlock9 *stateblock;=0A } ID3DXRenderToSurfaceImpl;=0A =0A #end=
if /* __WINE_D3DX9_36_PRIVATE_H */=0Adiff --git a/dlls/d3dx9_36/offscreen.c=
b/dlls/d3dx9_36/offscreen.c=0Aindex 2db1037..b192eb0 100644=0A--- a/dlls/d=
3dx9_36/offscreen.c=0A+++ b/dlls/d3dx9_36/offscreen.c=0A@@ -116,19 +116,59 =
@@ static const ID3DXRenderToSurfaceVtbl D3DXRenderToSurface_Vtbl =3D=0A =
ID3DXRenderToSurfaceImpl_OnResetDevice=0A };=0A =0A+/********************=
****************************************=0A+ * D3DXCreateRe=
nderToSurface=0A+ *=0A+ * Creates an ID3DXRenderToSurface object.=0A+ =
* The refcount of the D3D device will be incremented here.=0A+ *=0A+ *=
PARAMS=0A+ * device [I] D3D device object=0A+ * width =
[I] width of the surface=0A+ * height [I] height of =
the surface=0A+ * format [I] format of the surface=0A+ * =
stencil [I] wether the surface supports a depth buffer or not=0A+ =
* stencil_format [I] format of the depth buffer if stencil is true=0A=
+ * rts [O] pointer to the RTS object=0A+ *=0A+ * RETU=
RNS=0A+ * Success: D3D_OK=0A+ * Failure: E_OUTOFMEMORY=0A+ * =
D3DERR_INVALIDCALL=0A+ *=0A+ * TODOS=0A+ * Check if the nati=
ve interface supports multiple render targets=0A+ * (which is unl=
ikely though as the native d3dx9 doesn't check for them in the Direct3D Cap=
s)=0A+ *=0A+ */=0A HRESULT WINAPI D3DXCreateRenderToSurface(LPDIRECT3DD=
EVICE9 device, UINT width, UINT height, D3DFORMAT format, BOOL stencil, D3D=
FORMAT stencil_format, LPD3DXRENDERTOSURFACE *rts)=0A {=0A ID3DXRenderT=
oSurfaceImpl *object;=0A =0A- FIXME("stub\n");=0A+ TRACE("(void): rel=
ay\n");=0A =0A- object=3DHeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, s=
izeof(ID3DXRenderToSurfaceImpl));=0A+ if(rts=3D=3DNULL) return D3DERR_IN=
VALIDCALL;=0A+=0A+ object=3DHeapAlloc(GetProcessHeap(), HEAP_GROWABLE, s=
izeof(ID3DXRenderToSurfaceImpl));=0A if(object=3D=3DNULL) {=0A =
*rts=3DNULL;=0A return E_OUTOFMEMORY;=0A }=0A object->lpVtb=
l=3D&D3DXRenderToSurface_Vtbl;=0A object->ref=3D1;=0A+ object->devic=
e=3Ddevice;=0A+ IDirect3DDevice9_AddRef(object->device);=0A+ object->=
desc.Width=3Dwidth;=0A+ object->desc.Height=3Dheight;=0A+ object->des=
c.Format=3Dformat;=0A+ object->desc.DepthStencil=3Dstencil;=0A+ objec=
t->desc.DepthStencilFormat=3Dstencil_format;=0A+ object->target=3DNULL;=
=0A+ object->buffer=3DNULL;=0A+ object->stencil=3DNULL;=0A+ object=
->oldtarget=3DNULL;=0A+ object->oldstencil=3DNULL;=0A+ object->stateb=
lock=3DNULL;=0A =0A *rts=3D(LPD3DXRENDERTOSURFACE)object;=0A =0A-- =0A1=
.5.3.7=0A=0A
--bb45d591816f98b3865f7db30e4c5e116--
More information about the wine-patches
mailing list