[PATCH 4/6] wined3d: Expose wined3d_color <--> d3dcolor conversion functions

Daniel Ansorregui mailszeros at gmail.com
Mon Oct 15 14:17:18 CDT 2018


* This is to allow conversion calls to be used in d3d9

Signed-off-by: Daniel Ansorregui <mailszeros at gmail.com>
---
 dlls/wined3d/wined3d_private.h | 13 -------------
 include/wine/wined3d.h         | 23 +++++++++++++++++++++++
 2 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index afa711f033..dbcf17e26c 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1428,19 +1428,6 @@ extern const struct wined3d_shader_backend_ops none_shader_backend DECLSPEC_HIDD
 
 #define GL_EXTCALL(f) (gl_info->gl_ops.ext.p_##f)
 
-#define D3DCOLOR_B_R(dw) (((dw) >> 16) & 0xff)
-#define D3DCOLOR_B_G(dw) (((dw) >>  8) & 0xff)
-#define D3DCOLOR_B_B(dw) (((dw) >>  0) & 0xff)
-#define D3DCOLOR_B_A(dw) (((dw) >> 24) & 0xff)
-
-static inline void wined3d_color_from_d3dcolor(struct wined3d_color *wined3d_color, DWORD d3d_color)
-{
-    wined3d_color->r = D3DCOLOR_B_R(d3d_color) / 255.0f;
-    wined3d_color->g = D3DCOLOR_B_G(d3d_color) / 255.0f;
-    wined3d_color->b = D3DCOLOR_B_B(d3d_color) / 255.0f;
-    wined3d_color->a = D3DCOLOR_B_A(d3d_color) / 255.0f;
-}
-
 #define HIGHEST_TRANSFORMSTATE WINED3D_TS_WORLD_MATRIX(255) /* Highest value in wined3d_transform_state. */
 
 void wined3d_check_gl_call(const struct wined3d_gl_info *gl_info,
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 286df47c77..3441fee16a 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -2793,4 +2793,27 @@ static inline void wined3d_box_set(struct wined3d_box *box, unsigned int left, u
     box->back = back;
 }
 
+#define D3DCOLOR_B_R(dw) (((dw) >> 16) & 0xff)
+#define D3DCOLOR_B_G(dw) (((dw) >>  8) & 0xff)
+#define D3DCOLOR_B_B(dw) (((dw) >>  0) & 0xff)
+#define D3DCOLOR_B_A(dw) (((dw) >> 24) & 0xff)
+
+static inline void wined3d_color_from_d3dcolor(struct wined3d_color *wined3d_color, DWORD d3d_color)
+{
+    wined3d_color->r = D3DCOLOR_B_R(d3d_color) / 255.0f;
+    wined3d_color->g = D3DCOLOR_B_G(d3d_color) / 255.0f;
+    wined3d_color->b = D3DCOLOR_B_B(d3d_color) / 255.0f;
+    wined3d_color->a = D3DCOLOR_B_A(d3d_color) / 255.0f;
+}
+
+static inline DWORD d3dcolor_from_wined3d_color(struct wined3d_color wined3d_color)
+{
+    DWORD d3d_color;
+    d3d_color  = ((DWORD)(wined3d_color.a * 255.0f + 0.5f) & 0xff) << 24;
+    d3d_color += ((DWORD)(wined3d_color.r * 255.0f + 0.5f) & 0xff) << 16;
+    d3d_color += ((DWORD)(wined3d_color.g * 255.0f + 0.5f) & 0xff) <<  8;
+    d3d_color += ((DWORD)(wined3d_color.b * 255.0f + 0.5f) & 0xff) <<  0;
+    return d3d_color;
+}
+
 #endif /* __WINE_WINED3D_H */
-- 
2.17.1




More information about the wine-devel mailing list