[PATCH] wined3d: debug_d3dusage: flags can be combined

Erik Inge Bolsø knan-wine at anduin.net
Sat Jun 23 19:43:50 CDT 2007


---
 dlls/wined3d/utils.c |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index 65bff5c..f79c998 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -230,8 +230,10 @@ const char* debug_d3ddevicetype(WINED3DDEVTYPE devtype) {
 }
 
 const char* debug_d3dusage(DWORD usage) {
-  switch (usage & WINED3DUSAGE_MASK) {
-#define WINED3DUSAGE_TO_STR(u) case u: return #u
+    static char buffer[33*11];
+    buffer[0]='\0';
+
+#define WINED3DUSAGE_TO_STR(u) if (usage & WINED3DUSAGE_MASK & u) { if (buffer[0]!=0){strcat ((char *)&buffer,"|");} strcat ((char *)&buffer, #u); }
     WINED3DUSAGE_TO_STR(WINED3DUSAGE_RENDERTARGET);
     WINED3DUSAGE_TO_STR(WINED3DUSAGE_DEPTHSTENCIL);
     WINED3DUSAGE_TO_STR(WINED3DUSAGE_WRITEONLY);
@@ -244,11 +246,10 @@ const char* debug_d3dusage(DWORD usage) {
     WINED3DUSAGE_TO_STR(WINED3DUSAGE_AUTOGENMIPMAP);
     WINED3DUSAGE_TO_STR(WINED3DUSAGE_DMAP);
 #undef WINED3DUSAGE_TO_STR
-  case 0: return "none";
-  default:
-    FIXME("Unrecognized %u Usage!\n", usage);
-    return "unrecognized";
-  }
+
+    if ((usage & WINED3DUSAGE_MASK) == 0) return "none";
+
+    return (const char *) &buffer;
 }
 
 const char* debug_d3dusagequery(DWORD usagequery) {
-- 
1.4.4.2



More information about the wine-patches mailing list