[4/4] d3dx9: Report usage of unsupported sprite flags.

Matteo Bruni matteo.mystral at gmail.com
Fri Oct 15 09:03:07 CDT 2010


-------------- next part --------------
From 829ce81e5104df9a955f2b4be1abd3f3df4063fa Mon Sep 17 00:00:00 2001
From: Matteo Bruni <mbruni at codeweavers.com>
Date: Thu, 7 Oct 2010 18:08:48 +0200
Subject: d3dx9: Report usage of unsupported sprite flags.

---
 dlls/d3dx9_36/sprite.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/dlls/d3dx9_36/sprite.c b/dlls/d3dx9_36/sprite.c
index c7b4240..341efc1 100644
--- a/dlls/d3dx9_36/sprite.c
+++ b/dlls/d3dx9_36/sprite.c
@@ -219,7 +219,6 @@ static HRESULT WINAPI ID3DXSpriteImpl_Begin(LPD3DXSPRITE iface, DWORD flags)
     if(flags>D3DXSPRITE_FLAGLIMIT || This->ready) return D3DERR_INVALIDCALL;
 
 /* TODO: Implement flags:
-D3DXSPRITE_ALPHABLEND: enables alpha blending
 D3DXSPRITE_BILLBOARD: makes the sprite always face the camera
 D3DXSPRITE_DONOTMODIFY_RENDERSTATE: name says it all
 D3DXSPRITE_OBJECTSPACE: do not change device transforms
@@ -227,6 +226,15 @@ 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)
 */
+/* Seems like alpha blending is always enabled, regardless of D3DXSPRITE_ALPHABLEND flag */
+    if(flags & (D3DXSPRITE_BILLBOARD |
+                D3DXSPRITE_DONOTMODIFY_RENDERSTATE | D3DXSPRITE_OBJECTSPACE |
+                D3DXSPRITE_SORT_DEPTH_BACKTOFRONT))
+        FIXME("Flags unsupported: %#x\n", flags);
+    /* These flags should only matter to performances */
+    else if(flags & (D3DXSPRITE_SORT_DEPTH_FRONTTOBACK | D3DXSPRITE_SORT_TEXTURE))
+        TRACE("Flags unsupported: %#x\n", flags);
+
     if(This->vdecl==NULL) {
         static const D3DVERTEXELEMENT9 elements[] =
         {
-- 
1.7.2.2


More information about the wine-patches mailing list