[PATCH] d3dx9: Recognize the D3DXSPRITE_OBJECTSPACE flag
Tony Wasserka
tony.wasserka at freenet.de
Mon Mar 9 11:15:59 CDT 2009
---
dlls/d3dx9_36/sprite.c | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/dlls/d3dx9_36/sprite.c b/dlls/d3dx9_36/sprite.c
index 6a7e65d..caaaa2f 100644
--- a/dlls/d3dx9_36/sprite.c
+++ b/dlls/d3dx9_36/sprite.c
@@ -200,12 +200,14 @@ static void set_states(ID3DXSpriteImpl *object)
}
/* Matrices */
- D3DXMatrixIdentity(&mat);
- IDirect3DDevice9_SetTransform(object->device, D3DTS_WORLD, &mat);
- IDirect3DDevice9_SetTransform(object->device, D3DTS_VIEW, &mat);
- IDirect3DDevice9_GetViewport(object->device, &vp);
- D3DXMatrixOrthoOffCenterLH(&mat, vp.X+0.5f, (float)vp.Width+vp.X+0.5f, (float)vp.Height+vp.Y+0.5f, vp.Y+0.5f, vp.MinZ, vp.MaxZ);
- IDirect3DDevice9_SetTransform(object->device, D3DTS_PROJECTION, &mat);
+ if(!(object->flags & D3DXSPRITE_OBJECTSPACE)) {
+ D3DXMatrixIdentity(&mat);
+ IDirect3DDevice9_SetTransform(object->device, D3DTS_WORLD, &mat);
+ IDirect3DDevice9_SetTransform(object->device, D3DTS_VIEW, &mat);
+ IDirect3DDevice9_GetViewport(object->device, &vp);
+ D3DXMatrixOrthoOffCenterLH(&mat, vp.X+0.5f, (float)vp.Width+vp.X+0.5f, (float)vp.Height+vp.Y+0.5f, vp.Y+0.5f, vp.MinZ, vp.MaxZ);
+ IDirect3DDevice9_SetTransform(object->device, D3DTS_PROJECTION, &mat);
+ }
}
static HRESULT WINAPI ID3DXSpriteImpl_Begin(LPD3DXSPRITE iface, DWORD flags)
@@ -221,7 +223,7 @@ static HRESULT WINAPI ID3DXSpriteImpl_Begin(LPD3DXSPRITE iface, DWORD flags)
D3DXSPRITE_ALPHABLEND: enables alpha blending
D3DXSPRITE_BILLBOARD: makes the sprite always face the camera
D3DXSPRITE_DONOTMODIFY_RENDERSTATE: name says it all (done)
-D3DXSPRITE_OBJECTSPACE: do not change device transforms
+D3DXSPRITE_OBJECTSPACE: do not change device transforms (done)
D3DXSPRITE_SORT_DEPTH_BACKTOFRONT: sort by position
D3DXSPRITE_SORT_DEPTH_FRONTTOBACK: sort by position
D3DXSPRITE_SORT_TEXTURE: sort by texture (so that it doesn't change too often)
--
1.5.6.6
--------------090709090907050901050001--
More information about the wine-patches
mailing list