Signed-off-by: Ziqing Hui zhui@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 + ); +};