[PATCH 2/3] include: Add defines for ID2D1EffectContext.

Ziqing Hui zhui at codeweavers.com
Tue Apr 26 23:24:39 CDT 2022


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

diff --git a/include/d2d1effectauthor.idl b/include/d2d1effectauthor.idl
index 6838492c498..60cff9cc277 100644
--- a/include/d2d1effectauthor.idl
+++ b/include/d2d1effectauthor.idl
@@ -32,6 +32,13 @@ typedef enum D2D1_FILTER
     D2D1_FILTER_FORCE_DWORD = 0xffffffff
 } D2D1_FILTER;
 
+typedef enum D2D1_FEATURE
+{
+    D2D1_FEATURE_DOUBLES                  = 0x0,
+    D2D1_FEATURE_D3D10_X_HARDWARE_OPTIONS = 0x1,
+    D2D1_FEATURE_FORCE_DWORD = 0xffffffff
+} D2D1_FEATURE;
+
 typedef enum D2D1_CHANNEL_DEPTH
 {
     D2D1_CHANNEL_DEPTH_DEFAULT = 0x0,
@@ -56,6 +63,13 @@ typedef enum D2D1_VERTEX_OPTIONS
     D2D1_VERTEX_OPTIONS_FORCE_DWORD = 0xffffffff
 } D2D1_VERTEX_OPTIONS;
 
+typedef enum D2D1_VERTEX_USAGE
+{
+    D2D1_VERTEX_USAGE_STATIC  = 0x0,
+    D2D1_VERTEX_USAGE_DYNAMIC = 0x1,
+    D2D1_VERTEX_USAGE_FORCE_DWORD = 0xffffffff
+} D2D1_VERTEX_USAGE;
+
 typedef enum D2D1_BLEND_OPERATION
 {
     D2D1_BLEND_OPERATION_ADD          = 0x1,
@@ -107,6 +121,42 @@ typedef struct D2D1_BLEND_DESCRIPTION
     float blendFactor[4];
 } D2D1_BLEND_DESCRIPTION;
 
+typedef struct D2D1_RESOURCE_TEXTURE_PROPERTIES
+{
+    const UINT32 *extents;
+    UINT32 dimensions;
+    D2D1_BUFFER_PRECISION bufferPrecision;
+    D2D1_CHANNEL_DEPTH channelDepth;
+    D2D1_FILTER filter;
+    const D2D1_EXTEND_MODE *extendModes;
+} D2D1_RESOURCE_TEXTURE_PROPERTIES;
+
+typedef struct D2D1_INPUT_ELEMENT_DESC
+{
+    const char *semanticName;
+    UINT32 semanticIndex;
+    DXGI_FORMAT format;
+    UINT32 inputSlot;
+    UINT32 alignedByteOffset;
+} D2D1_INPUT_ELEMENT_DESC;
+
+typedef struct D2D1_VERTEX_BUFFER_PROPERTIES
+{
+    UINT32 inputCount;
+    D2D1_VERTEX_USAGE usage;
+    const BYTE *data;
+    UINT32 byteWidth;
+} D2D1_VERTEX_BUFFER_PROPERTIES;
+
+typedef struct D2D1_CUSTOM_VERTEX_BUFFER_PROPERTIES
+{
+    const BYTE *shaderBufferWithInputSignature;
+    UINT32 shaderBufferSize;
+    const D2D1_INPUT_ELEMENT_DESC *inputElements;
+    UINT32 elementCount;
+    UINT32 stride;
+} D2D1_CUSTOM_VERTEX_BUFFER_PROPERTIES;
+
 [
     object,
     uuid(9b8b1336-00a5-4668-92b7-ced5d8bf9b7b),
@@ -420,3 +470,109 @@ interface ID2D1BoundsAdjustmentTransform : ID2D1TransformNode
         [out] D2D1_RECT_L *bounds
     );
 }
+
+[
+    object,
+    uuid(3d9f916b-27dc-4ad7-b4f1-64945340f563),
+    local,
+]
+interface ID2D1EffectContext : IUnknown
+{
+    void GetDpi(
+        [out] float *dpi_x,
+        [out] float *dpi_y
+    );
+    HRESULT CreateEffect(
+        [in] REFCLSID clsid,
+        [out] ID2D1Effect **effect
+    );
+    HRESULT GetMaximumSupportedFeatureLevel(
+        [in] const D3D_FEATURE_LEVEL *levels,
+        [in] UINT32 level_count,
+        [out] D3D_FEATURE_LEVEL *max_level
+    );
+    HRESULT CreateTransformNodeFromEffect(
+        [in] ID2D1Effect *effect,
+        [out] ID2D1TransformNode **node
+    );
+    HRESULT CreateBlendTransform(
+        [in] UINT32 num_inputs,
+        [in] const D2D1_BLEND_DESCRIPTION *description,
+        [out] ID2D1BlendTransform **transform
+    );
+    HRESULT CreateBorderTransform(
+        [in] D2D1_EXTEND_MODE mode_x,
+        [in] D2D1_EXTEND_MODE mode_y,
+        [out] ID2D1BorderTransform **transform
+    );
+    HRESULT CreateOffsetTransform(
+        [in] D2D1_POINT_2L offset,
+        [out] ID2D1OffsetTransform **transform
+    );
+    HRESULT CreateBoundsAdjustmentTransform(
+        [in] const D2D1_RECT_L *output_rect,
+        [out] ID2D1BoundsAdjustmentTransform **transform
+    );
+    HRESULT LoadPixelShader(
+        [in] REFGUID shader_id,
+        [in] const BYTE *buffer,
+        [in] UINT32 buffer_size
+    );
+    HRESULT LoadVertexShader(
+        [in] REFGUID shader_id,
+        [in] const BYTE *buffer,
+        [in] UINT32 buffer_size
+    );
+    HRESULT LoadComputeShader(
+        [in] REFGUID shader_id,
+        [in] const BYTE *buffer,
+        [in] UINT32 buffer_size
+    );
+    BOOL IsShaderLoaded(
+        [in] REFGUID shader_id
+    );
+    HRESULT CreateResourceTexture(
+        [in, optional] const GUID *id,
+        [in] const D2D1_RESOURCE_TEXTURE_PROPERTIES *texture_properties,
+        [in] const BYTE *data,
+        [in] const UINT32 *strides,
+        [in] UINT32 data_size,
+        [out] ID2D1ResourceTexture **texture
+    );
+    HRESULT FindResourceTexture(
+        [in] const GUID *id,
+        [out] ID2D1ResourceTexture **texture
+    );
+    HRESULT CreateVertexBuffer(
+        [in] const D2D1_VERTEX_BUFFER_PROPERTIES *buffer_properties,
+        [in, optional] const GUID *id,
+        [in, optional] const D2D1_CUSTOM_VERTEX_BUFFER_PROPERTIES *custom_buffer_properties,
+        [out] ID2D1VertexBuffer **buffer
+    );
+    HRESULT FindVertexBuffer(
+        [in] const GUID *id,
+        [out] ID2D1VertexBuffer **buffer
+    );
+    HRESULT CreateColorContext(
+        [in] D2D1_COLOR_SPACE space,
+        [in] const BYTE *profile,
+        [in] UINT32 profile_size,
+        [out] ID2D1ColorContext **color_context
+    );
+    HRESULT CreateColorContextFromFilename(
+        [in] const WCHAR *filename,
+        [out] ID2D1ColorContext **color_context
+    );
+    HRESULT CreateColorContextFromWicColorContext(
+        [in] IWICColorContext *wic_color_context,
+        [out] ID2D1ColorContext **color_context
+    );
+    HRESULT CheckFeatureSupport(
+        [in] D2D1_FEATURE feature,
+        [out] void *data,
+        [in] UINT32 data_size
+    );
+    BOOL IsBufferPrecisionSupported(
+        [in] D2D1_BUFFER_PRECISION precision
+    );
+}
-- 
2.25.1




More information about the wine-devel mailing list