master
  1/**
  2 * This file has no copyright assigned and is placed in the Public Domain.
  3 * This file is part of the mingw-w64 runtime package.
  4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5 */
  6
  7#ifndef _D2D1_2_H_
  8#define _D2D1_2_H_
  9
 10#ifndef _D2D1_1_H_
 11#include <d2d1_1.h>
 12#endif
 13
 14#ifndef _D2D1_EFFECTS_1_
 15#include <d2d1effects_1.h>
 16#endif
 17
 18#include <winapifamily.h>
 19
 20#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
 21
 22#ifndef D2D_USE_C_DEFINITIONS
 23interface ID2D1Device1;
 24#else
 25typedef interface ID2D1Device1 ID2D1Device1;
 26#endif
 27
 28typedef enum D2D1_RENDERING_PRIORITY {
 29  D2D1_RENDERING_PRIORITY_NORMAL = 0,
 30  D2D1_RENDERING_PRIORITY_LOW = 1,
 31  D2D1_RENDERING_PRIORITY_FORCE_DWORD = 0xffffffff
 32} D2D1_RENDERING_PRIORITY;
 33
 34#ifndef D2D_USE_C_DEFINITIONS
 35interface ID2D1GeometryRealization : public ID2D1Resource
 36{
 37};
 38#else
 39typedef interface ID2D1GeometryRealization ID2D1GeometryRealization;
 40/* FIXME: Add full C declaration */
 41#endif
 42
 43DEFINE_GUID(IID_ID2D1GeometryRealization, 0xa16907d7, 0xbc02, 0x4801, 0x99, 0xe8, 0x8c, 0xf7, 0xf4, 0x85, 0xf7, 0x74);
 44__CRT_UUID_DECL(ID2D1GeometryRealization, 0xa16907d7, 0xbc02, 0x4801, 0x99, 0xe8, 0x8c, 0xf7, 0xf4, 0x85, 0xf7, 0x74);
 45
 46#ifndef D2D_USE_C_DEFINITIONS
 47interface ID2D1DeviceContext1 : public ID2D1DeviceContext
 48{
 49  STDMETHOD(CreateFilledGeometryRealization)(ID2D1Geometry *geometry, FLOAT flattening_tolerance, ID2D1GeometryRealization **geometry_realization) PURE;
 50  STDMETHOD(CreateStrokedGeometryRealization)(ID2D1Geometry *geometry, FLOAT flattening_tolerance, FLOAT stroke_width, ID2D1StrokeStyle *stroke_style, ID2D1GeometryRealization **geometry_realization) PURE;
 51  STDMETHOD_(void, DrawGeometryRealization)(ID2D1GeometryRealization *geometry_realization, ID2D1Brush *brush) PURE;
 52};
 53#else
 54typedef interface ID2D1DeviceContext1 ID2D1DeviceContext1;
 55/* FIXME: Add full C declaration */
 56#endif
 57
 58DEFINE_GUID(IID_ID2D1DeviceContext1, 0xd37f57e4, 0x6908, 0x459f, 0xa1, 0x99, 0xe7, 0x2f, 0x24, 0xf7, 0x99, 0x87);
 59__CRT_UUID_DECL(ID2D1DeviceContext1, 0xd37f57e4, 0x6908, 0x459f, 0xa1, 0x99, 0xe7, 0x2f, 0x24, 0xf7, 0x99, 0x87);
 60
 61#ifndef D2D_USE_C_DEFINITIONS
 62interface ID2D1Device1 : public ID2D1Device
 63{
 64  STDMETHOD_(D2D1_RENDERING_PRIORITY, GetRenderingPriority)() PURE;
 65  STDMETHOD_(void, SetRenderingPriority)(D2D1_RENDERING_PRIORITY rendering_priority) PURE;
 66  STDMETHOD(CreateDeviceContext)(D2D1_DEVICE_CONTEXT_OPTIONS options, ID2D1DeviceContext1 **device_context1) PURE;
 67
 68  using ID2D1Device::CreateDeviceContext;
 69};
 70#else
 71typedef interface ID2D1Device1 ID2D1Device1;
 72/* FIXME: Add full C declaration */
 73#endif
 74
 75DEFINE_GUID(IID_ID2D1Device1, 0xd21768e1, 0x23a4, 0x4823, 0xa1, 0x4b, 0x7c, 0x3e, 0xba, 0x85, 0xd6, 0x58);
 76__CRT_UUID_DECL(ID2D1Device1, 0xd21768e1, 0x23a4, 0x4823, 0xa1, 0x4b, 0x7c, 0x3e, 0xba, 0x85, 0xd6, 0x58);
 77
 78#ifndef D2D_USE_C_DEFINITIONS
 79interface ID2D1Factory2 : public ID2D1Factory1
 80{
 81  STDMETHOD(CreateDevice)(IDXGIDevice *dxgi_device, ID2D1Device1 **d2d_device1) PURE;
 82
 83  using ID2D1Factory1::CreateDevice;
 84};
 85#else
 86typedef interface ID2D1Factory2 ID2D1Factory2;
 87/* FIXME: Add full C declaration */
 88#endif
 89
 90DEFINE_GUID(IID_ID2D1Factory2, 0x94f81a73, 0x9212, 0x4376, 0x9c, 0x58, 0xb1, 0x6a, 0x3a, 0x0d, 0x39, 0x92);
 91__CRT_UUID_DECL(ID2D1Factory2, 0x94f81a73, 0x9212, 0x4376, 0x9c, 0x58, 0xb1, 0x6a, 0x3a, 0x0d, 0x39, 0x92);
 92
 93#ifndef D2D_USE_C_DEFINITIONS
 94interface ID2D1CommandSink1 : public ID2D1CommandSink
 95{
 96  STDMETHOD(SetPrimitiveBlend1)(D2D1_PRIMITIVE_BLEND primitive_blend) PURE;
 97};
 98#else
 99typedef interface ID2D1CommandSink1 ID2D1CommandSink1;
100/* FIXME: Add full C declaration */
101#endif
102
103DEFINE_GUID(IID_ID2D1CommandSink1, 0x9eb767fd, 0x4269, 0x4467, 0xb8, 0xc2, 0xeb, 0x30, 0xcb, 0x30, 0x57, 0x43);
104__CRT_UUID_DECL(ID2D1CommandSink1, 0x9eb767fd, 0x4269, 0x4467, 0xb8, 0xc2, 0xeb, 0x30, 0xcb, 0x30, 0x57, 0x43);
105
106#ifdef __cplusplus
107extern "C"
108{
109#endif
110
111#if NTDDI_VERSION >= NTDDI_WINBLUE
112  FLOAT WINAPI D2D1ComputeMaximumScaleFactor(CONST D2D1_MATRIX_3X2_F *matrix);
113#endif
114
115#ifdef __cplusplus
116}
117#endif
118
119#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
120
121#include <d2d1_2helper.h>
122
123#endif /* #ifndef _D2D1_2_H_ */