[PATCH 4/6] include: Add defines for ID2D1DrawInfo.

Ziqing Hui zhui at codeweavers.com
Thu Apr 21 23:23:51 CDT 2022


Signed-off-by: Ziqing Hui <zhui at codeweavers.com>
---
 include/d2d1effectauthor.idl | 93 ++++++++++++++++++++++++++++++++++++
 1 file changed, 93 insertions(+)

diff --git a/include/d2d1effectauthor.idl b/include/d2d1effectauthor.idl
index ca3a2c9cdf4..9ac45ab1619 100644
--- a/include/d2d1effectauthor.idl
+++ b/include/d2d1effectauthor.idl
@@ -40,12 +40,73 @@ typedef enum D2D1_CHANNEL_DEPTH
     D2D1_CHANNEL_DEPTH_FORCE_DWORD = 0xffffffff
 } D2D1_CHANNEL_DEPTH;
 
+typedef enum D2D1_PIXEL_OPTIONS
+{
+    D2D1_PIXEL_OPTIONS_NONE             = 0x0,
+    D2D1_PIXEL_OPTIONS_TRIVIAL_SAMPLING = 0x1,
+    D2D1_PIXEL_OPTIONS_FORCE_DWORD = 0xffffffff
+} D2D1_PIXEL_OPTIONS;
+
+typedef enum D2D1_VERTEX_OPTIONS
+{
+    D2D1_VERTEX_OPTIONS_NONE              = 0x0,
+    D2D1_VERTEX_OPTIONS_DO_NOT_CLEAR      = 0x1,
+    D2D1_VERTEX_OPTIONS_USE_DEPTH_BUFFER  = 0x2,
+    D2D1_VERTEX_OPTIONS_ASSUME_NO_OVERLAP = 0x4,
+    D2D1_VERTEX_OPTIONS_FORCE_DWORD = 0xffffffff
+} D2D1_VERTEX_OPTIONS;
+
+typedef enum D2D1_BLEND_OPERATION
+{
+    D2D1_BLEND_OPERATION_ADD          = 0x1,
+    D2D1_BLEND_OPERATION_SUBTRACT     = 0x2,
+    D2D1_BLEND_OPERATION_REV_SUBTRACT = 0x3,
+    D2D1_BLEND_OPERATION_MIN          = 0x4,
+    D2D1_BLEND_OPERATION_MAX          = 0x5,
+    D2D1_BLEND_OPERATION_FORCE_DWORD = 0xffffffff
+} D2D1_BLEND_OPERATION;
+
+typedef enum D2D1_BLEND
+{
+    D2D1_BLEND_ZERO             = 0x1,
+    D2D1_BLEND_ONE              = 0x2,
+    D2D1_BLEND_SRC_COLOR        = 0x3,
+    D2D1_BLEND_INV_SRC_COLOR    = 0x4,
+    D2D1_BLEND_SRC_ALPHA        = 0x5,
+    D2D1_BLEND_INV_SRC_ALPHA    = 0x6,
+    D2D1_BLEND_DEST_ALPHA       = 0x7,
+    D2D1_BLEND_INV_DEST_ALPHA   = 0x8,
+    D2D1_BLEND_DEST_COLOR       = 0x9,
+    D2D1_BLEND_INV_DEST_COLOR   = 0xa,
+    D2D1_BLEND_SRC_ALPHA_SAT    = 0xb,
+    D2D1_BLEND_BLEND_FACTOR     = 0xe,
+    D2D1_BLEND_INV_BLEND_FACTOR = 0xf,
+    D2D1_BLEND_FORCE_DWORD = 0xffffffff
+} D2D1_BLEND;
+
 typedef struct D2D1_INPUT_DESCRIPTION
 {
     D2D1_FILTER filter;
     UINT32 levelOfDetailCount;
 } D2D1_INPUT_DESCRIPTION;
 
+typedef struct D2D1_VERTEX_RANGE
+{
+    UINT32 startVertex;
+    UINT32 vertexCount;
+} D2D1_VERTEX_RANGE;
+
+typedef struct D2D1_BLEND_DESCRIPTION
+{
+    D2D1_BLEND sourceBlend;
+    D2D1_BLEND destinationBlend;
+    D2D1_BLEND_OPERATION blendOperation;
+    D2D1_BLEND sourceBlendAlpha;
+    D2D1_BLEND destinationBlendAlpha;
+    D2D1_BLEND_OPERATION blendOperationAlpha;
+    float blendFactor[4];
+} D2D1_BLEND_DESCRIPTION;
+
 [
     object,
     uuid(9b8b1336-00a5-4668-92b7-ced5d8bf9b7b),
@@ -99,3 +160,35 @@ interface ID2D1RenderInfo : IUnknown
         [in] UINT32 instruction_count
     );
 };
+
+[
+    object,
+    uuid(693ce632-7f2f-45de-93fe-18d88b37aa21),
+    local,
+]
+interface ID2D1DrawInfo : ID2D1RenderInfo
+{
+    HRESULT SetPixelShaderConstantBuffer(
+        [in] const BYTE *buffer,
+        [in] UINT32 buffer_count
+    );
+    HRESULT SetResourceTexture(
+        [in] UINT32 texture_index,
+        [in] ID2D1ResourceTexture *resource_texture
+    );
+    HRESULT SetVertexShaderConstantBuffer(
+        [in] const BYTE *buffer,
+        [in] UINT32 buffer_count
+    );
+    HRESULT SetPixelShade(
+        [in] REFGUID shader_id,
+        [in] D2D1_PIXEL_OPTIONS pixel_options
+    );
+    HRESULT SetVertexProcessing(
+        [in, optional] ID2D1VertexBuffer *vertex_buffer,
+        [in] D2D1_VERTEX_OPTIONS vertex_options,
+        [in, optional] const D2D1_BLEND_DESCRIPTION *blend_description,
+        [in, optional] const D2D1_VERTEX_RANGE *vertex_range,
+        [in, optional] const GUID *vertex_shader
+    );
+};
-- 
2.25.1




More information about the wine-devel mailing list