Nikolay Sivov : include: Add newer D2D command sink interface definitions.

Alexandre Julliard julliard at winehq.org
Thu Aug 4 14:46:39 CDT 2022


Module: wine
Branch: master
Commit: bb83067bd797501f6ed308e18a0807cf28f2d5e0
URL:    https://gitlab.winehq.org/wine/wine/-/commit/bb83067bd797501f6ed308e18a0807cf28f2d5e0

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Wed Aug  3 23:35:54 2022 +0300

include: Add newer D2D command sink interface definitions.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>

---

 include/d2d1_2.idl | 12 +++++++++++
 include/d2d1_3.idl | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 74 insertions(+)

diff --git a/include/d2d1_2.idl b/include/d2d1_2.idl
index 1fc9111151c..982131667df 100644
--- a/include/d2d1_2.idl
+++ b/include/d2d1_2.idl
@@ -89,3 +89,15 @@ interface ID2D1Factory2 : ID2D1Factory1
         [out] ID2D1Device1 **device
     );
 }
+
+[
+    object,
+    uuid(9eb767fd-4269-4467-b8c2-eb30cb305743),
+    local,
+]
+interface ID2D1CommandSink1 : ID2D1CommandSink
+{
+    HRESULT SetPrimitiveBlend1(
+        [in] D2D1_PRIMITIVE_BLEND primitive_blend
+    );
+}
diff --git a/include/d2d1_3.idl b/include/d2d1_3.idl
index 07dc98968f8..29bcc8df56d 100644
--- a/include/d2d1_3.idl
+++ b/include/d2d1_3.idl
@@ -19,6 +19,8 @@
 import "d2d1_2.idl";
 import "d2d1effects_2.idl";
 
+interface ID2D1SpriteBatch;
+
 typedef enum D2D1_INK_NIB_SHAPE
 {
     D2D1_INK_NIB_SHAPE_ROUND = 0x0,
@@ -69,6 +71,13 @@ typedef enum D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS
     D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_FORCE_DWORD = 0xffffffff
 } D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS;
 
+typedef enum D2D1_SPRITE_OPTIONS
+{
+    D2D1_SPRITE_OPTIONS_NONE = 0x0,
+    D2D1_SPRITE_OPTIONS_CLAMP_TO_SOURCE_RECTANGLE = 0x1,
+    D2D1_SPRITE_OPTIONS_FORCE_DWORD = 0xffffffff
+} D2D1_SPRITE_OPTIONS;
+
 typedef struct D2D1_INK_POINT
 {
     float x;
@@ -356,3 +365,56 @@ interface ID2D1Factory3 : ID2D1Factory2
         [out] ID2D1Device2 **d2d_device
     );
 }
+
+[
+    object,
+    uuid(3bab440e-417e-47df-a2e2-bc0be6a00916),
+    local,
+]
+interface ID2D1CommandSink2 : ID2D1CommandSink1
+{
+    HRESULT DrawInk(
+        [in] ID2D1Ink *ink,
+        [in] ID2D1Brush *brush,
+        [in] ID2D1InkStyle *ink_style
+    );
+
+    HRESULT DrawGradientMesh(
+        [in] ID2D1GradientMesh *gradient_mesh
+    );
+
+    HRESULT DrawGdiMetafile(
+        [in] ID2D1GdiMetafile *gdi_metafile,
+        [in] const D2D1_RECT_F *dest_rect,
+        [in] const D2D1_RECT_F *src_rect
+    );
+}
+
+[
+    object,
+    uuid(18079135-4cf3-4868-bc8e-06067e6d242d),
+    local,
+]
+interface ID2D1CommandSink3 : ID2D1CommandSink2
+{
+    HRESULT DrawSpriteBatch(
+        [in] ID2D1SpriteBatch *sprite_batch,
+        [in] UINT32 start_index,
+        [in] UINT32 sprite_count,
+        [in] ID2D1Bitmap *bitmap,
+        [in] D2D1_BITMAP_INTERPOLATION_MODE interpolation_mode,
+        [in] D2D1_SPRITE_OPTIONS sprite_options
+    );
+}
+
+[
+    object,
+    uuid(c78a6519-40d6-4218-b2de-beeeb744bb3e),
+    local,
+]
+interface ID2D1CommandSink4 : ID2D1CommandSink3
+{
+    HRESULT SetPrimitiveBlend2(
+        [in] D2D1_PRIMITIVE_BLEND primitive_blend
+    );
+}




More information about the wine-cvs mailing list