RetroArch
d2d1_1.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 //
4 // This file is automatically generated. Please do not edit it directly.
5 //
6 // File name: D2D1_1.h
7 //---------------------------------------------------------------------------
8 #ifdef _MSC_VER
9 #pragma once
10 #endif // #ifdef _MSC_VER
11 
12 #ifndef _D2D1_1_H_
13 #define _D2D1_1_H_
14 
15 #ifndef _D2D1_H_
16 #include <d2d1.h>
17 #endif // #ifndef _D2D1_H_
18 #ifndef _D2D1_EFFECTS_
19 #include <d2d1effects.h>
20 #endif // #ifndef _D2D1_EFFECTS_
21 
22 /*#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)*/
23 #include <dxgi.h>
24 /*#endif*/ /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
25 
26 /*#include <winapifamily.h>*/
27 
28 /*#pragma region Application Family*/
29 /*#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)*/
30 
35 typedef interface IDWriteFactory IDWriteFactory;
38 
42 typedef HRESULT (CALLBACK *PD2D1_EFFECT_FACTORY)(
43  _Outptr_ IUnknown **effectImpl
44  );
45 
46 #ifndef D2D_USE_C_DEFINITIONS
47 
48 interface ID2D1Device;
49 interface ID2D1Effect;
50 #else
51 
52 typedef interface ID2D1Device ID2D1Device;
53 typedef interface ID2D1Effect ID2D1Effect;
54 
55 #endif
56 #define D2D1_INVALID_PROPERTY_INDEX UINT_MAX
59 
64 typedef enum D2D1_PROPERTY_TYPE
65 {
86 
88 
89 
94 typedef enum D2D1_PROPERTY
95 {
96  D2D1_PROPERTY_CLSID = 0x80000000,
98  D2D1_PROPERTY_AUTHOR = 0x80000002,
99  D2D1_PROPERTY_CATEGORY = 0x80000003,
101  D2D1_PROPERTY_INPUTS = 0x80000005,
102  D2D1_PROPERTY_CACHED = 0x80000006,
107 
108 } D2D1_PROPERTY;
109 
110 
115 typedef enum D2D1_SUBPROPERTY
116 {
119  D2D1_SUBPROPERTY_MIN = 0x80000002,
120  D2D1_SUBPROPERTY_MAX = 0x80000003,
125 
127 
128 
133 {
134 
139 
144 
150 
155 
161 
163 
165 
166 
171 {
186 
188 
189 
194 {
202 
204 
205 
209 typedef enum D2D1_MAP_OPTIONS
210 {
211 
216 
221 
226 
232 
234 
236 
237 
243 {
251 
253 
254 
258 typedef enum D2D1_UNIT_MODE
259 {
263 
265 
266 
270 typedef enum D2D1_COLOR_SPACE
271 {
272 
277 
282 
288 
290 
291 
296 {
298 
305 
307 
309 
310 
316 {
317 
322 
328 
334 
336 
337 
342 {
349 
351 
352 
358 {
359 
366 
373 
375 
376 
381 {
382 
387 
393 
395 
399 
404 {
408 
413  _Field_size_opt_(1) ID2D1ColorContext *colorContext;
414 
416 
417 
421 typedef struct D2D1_MAPPED_RECT
422 {
424  BYTE *bits;
425 
427 
428 
433 {
434 
439 
444 
446 
447 
452 {
453 
458 
463 
469 
471 
475 
480 {
486 
488 
489 
494 {
499 
501 
502 
507 {
511 
513 
514 
519 {
527 
532 
534 
535 
540 {
545 
547 
549 
550 
555 {
557  _Field_size_opt_(1) ID2D1Geometry *geometricMask;
558  D2D1_ANTIALIAS_MODE maskAntialiasMode;
559  D2D1_MATRIX_3X2_F maskTransform;
560  FLOAT opacity;
561  _Field_size_opt_(1) ID2D1Brush *opacityBrush;
562  D2D1_LAYER_OPTIONS1 layerOptions;
563 
565 
566 
571 {
572 
577 
582 
588 
590 
591 
596 {
604 
606 
607 
612 {
614 
620 
625 
627 
628 
634 {
635 
642 
644 
645 
656 EXTERN_C CONST IID IID_ID2D1Effect;
657 EXTERN_C CONST IID IID_ID2D1Bitmap1;
662 EXTERN_C CONST IID IID_ID2D1Device;
665 
666 
667 #ifndef D2D_USE_C_DEFINITIONS
668 
669 
673 interface DX_DECLARE_INTERFACE("82237326-8111-4f7c-bcf4-b5c1175564fe") ID2D1GdiMetafileSink : public IUnknown
674 {
675 
679  STDMETHOD(ProcessRecord)(
680  DWORD recordType,
681  _In_opt_ CONST void *recordData,
682  DWORD recordDataSize
683  ) PURE;
684 }; // interface ID2D1GdiMetafileSink
685 
686 
690 interface DX_DECLARE_INTERFACE("2f543dc3-cfc1-4211-864f-cfd91c6f3395") ID2D1GdiMetafile : public ID2D1Resource
691 {
692 
696  STDMETHOD(Stream)(
698  ) PURE;
699 
703  STDMETHOD(GetBounds)(
704  _Out_ D2D1_RECT_F *bounds
705  ) PURE;
706 }; // interface ID2D1GdiMetafile
707 
708 
713 interface DX_DECLARE_INTERFACE("54d7898a-a061-40a7-bec7-e465bcba2c4f") ID2D1CommandSink : public IUnknown
714 {
715 
716  STDMETHOD(BeginDraw)(
717  ) PURE;
718 
719  STDMETHOD(EndDraw)(
720  ) PURE;
721 
722  STDMETHOD(SetAntialiasMode)(
723  D2D1_ANTIALIAS_MODE antialiasMode
724  ) PURE;
725 
726  STDMETHOD(SetTags)(
727  D2D1_TAG tag1,
728  D2D1_TAG tag2
729  ) PURE;
730 
731  STDMETHOD(SetTextAntialiasMode)(
732  D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode
733  ) PURE;
734 
735  STDMETHOD(SetTextRenderingParams)(
736  _In_opt_ IDWriteRenderingParams *textRenderingParams
737  ) PURE;
738 
739  STDMETHOD(SetTransform)(
741  ) PURE;
742 
743  STDMETHOD(SetPrimitiveBlend)(
744  D2D1_PRIMITIVE_BLEND primitiveBlend
745  ) PURE;
746 
747  STDMETHOD(SetUnitMode)(
748  D2D1_UNIT_MODE unitMode
749  ) PURE;
750 
751  STDMETHOD(Clear)(
752  _In_opt_ CONST D2D1_COLOR_F *color
753  ) PURE;
754 
755  STDMETHOD(DrawGlyphRun)(
756  D2D1_POINT_2F baselineOrigin,
757  _In_ CONST DWRITE_GLYPH_RUN *glyphRun,
758  _In_opt_ CONST DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription,
759  _In_ ID2D1Brush *foregroundBrush,
760  DWRITE_MEASURING_MODE measuringMode
761  ) PURE;
762 
763  STDMETHOD(DrawLine)(
764  D2D1_POINT_2F point0,
765  D2D1_POINT_2F point1,
766  _In_ ID2D1Brush *brush,
767  FLOAT strokeWidth,
768  _In_opt_ ID2D1StrokeStyle *strokeStyle
769  ) PURE;
770 
771  STDMETHOD(DrawGeometry)(
772  _In_ ID2D1Geometry *geometry,
773  _In_ ID2D1Brush *brush,
774  FLOAT strokeWidth,
775  _In_opt_ ID2D1StrokeStyle *strokeStyle
776  ) PURE;
777 
778  STDMETHOD(DrawRectangle)(
779  _In_ CONST D2D1_RECT_F *rect,
780  _In_ ID2D1Brush *brush,
781  FLOAT strokeWidth,
782  _In_opt_ ID2D1StrokeStyle *strokeStyle
783  ) PURE;
784 
785  STDMETHOD(DrawBitmap)(
786  _In_ ID2D1Bitmap *bitmap,
787  _In_opt_ CONST D2D1_RECT_F *destinationRectangle,
788  FLOAT opacity,
789  D2D1_INTERPOLATION_MODE interpolationMode,
790  _In_opt_ CONST D2D1_RECT_F *sourceRectangle,
791  _In_opt_ CONST D2D1_MATRIX_4X4_F *perspectiveTransform
792  ) PURE;
793 
794  STDMETHOD(DrawImage)(
795  _In_ ID2D1Image *image,
796  _In_opt_ CONST D2D1_POINT_2F *targetOffset,
797  _In_opt_ CONST D2D1_RECT_F *imageRectangle,
798  D2D1_INTERPOLATION_MODE interpolationMode,
799  D2D1_COMPOSITE_MODE compositeMode
800  ) PURE;
801 
802  STDMETHOD(DrawGdiMetafile)(
803  _In_ ID2D1GdiMetafile *gdiMetafile,
804  _In_opt_ CONST D2D1_POINT_2F *targetOffset
805  ) PURE;
806 
807  STDMETHOD(FillMesh)(
808  _In_ ID2D1Mesh *mesh,
809  _In_ ID2D1Brush *brush
810  ) PURE;
811 
812  STDMETHOD(FillOpacityMask)(
813  _In_ ID2D1Bitmap *opacityMask,
814  _In_ ID2D1Brush *brush,
815  _In_opt_ CONST D2D1_RECT_F *destinationRectangle,
816  _In_opt_ CONST D2D1_RECT_F *sourceRectangle
817  ) PURE;
818 
819  STDMETHOD(FillGeometry)(
820  _In_ ID2D1Geometry *geometry,
821  _In_ ID2D1Brush *brush,
822  _In_opt_ ID2D1Brush *opacityBrush
823  ) PURE;
824 
825  STDMETHOD(FillRectangle)(
826  _In_ CONST D2D1_RECT_F *rect,
827  _In_ ID2D1Brush *brush
828  ) PURE;
829 
830  STDMETHOD(PushAxisAlignedClip)(
831  _In_ CONST D2D1_RECT_F *clipRect,
832  D2D1_ANTIALIAS_MODE antialiasMode
833  ) PURE;
834 
835  STDMETHOD(PushLayer)(
836  _In_ CONST D2D1_LAYER_PARAMETERS1 *layerParameters1,
837  _In_opt_ ID2D1Layer *layer
838  ) PURE;
839 
840  STDMETHOD(PopAxisAlignedClip)(
841  ) PURE;
842 
843  STDMETHOD(PopLayer)(
844  ) PURE;
845 }; // interface ID2D1CommandSink
846 
847 
851 interface DX_DECLARE_INTERFACE("b4f34a19-2383-4d76-94f6-ec343657c3dc") ID2D1CommandList : public ID2D1Image
852 {
853 
857  STDMETHOD(Stream)(
858  _In_ ID2D1CommandSink *sink
859  ) PURE;
860 
864  STDMETHOD(Close)(
865  ) PURE;
866 }; // interface ID2D1CommandList
867 
868 
873 interface DX_DECLARE_INTERFACE("2c1d867d-c290-41c8-ae7e-34a98702e9a5") ID2D1PrintControl : public IUnknown
874 {
875 
876  STDMETHOD(AddPage)(
877  _In_ ID2D1CommandList *commandList,
878  D2D_SIZE_F pageSize,
879  _In_opt_ IStream *pagePrintTicketStream,
880  _Out_opt_ D2D1_TAG *tag1 = NULL,
881  _Out_opt_ D2D1_TAG *tag2 = NULL
882  ) PURE;
883 
884  STDMETHOD(Close)(
885  ) PURE;
886 }; // interface ID2D1PrintControl
887 
888 
893 interface DX_DECLARE_INTERFACE("fe9e984d-3f95-407c-b5db-cb94d4e8f87c") ID2D1ImageBrush : public ID2D1Brush
894 {
895 
896  STDMETHOD_(void, SetImage)(
897  _In_opt_ ID2D1Image *image
898  ) PURE;
899 
900  STDMETHOD_(void, SetExtendModeX)(
901  D2D1_EXTEND_MODE extendModeX
902  ) PURE;
903 
904  STDMETHOD_(void, SetExtendModeY)(
905  D2D1_EXTEND_MODE extendModeY
906  ) PURE;
907 
908  STDMETHOD_(void, SetInterpolationMode)(
909  D2D1_INTERPOLATION_MODE interpolationMode
910  ) PURE;
911 
912  STDMETHOD_(void, SetSourceRectangle)(
913  _In_ CONST D2D1_RECT_F *sourceRectangle
914  ) PURE;
915 
916  STDMETHOD_(void, GetImage)(
917  _Outptr_result_maybenull_ ID2D1Image **image
918  ) CONST PURE;
919 
920  STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)(
921  ) CONST PURE;
922 
923  STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)(
924  ) CONST PURE;
925 
926  STDMETHOD_(D2D1_INTERPOLATION_MODE, GetInterpolationMode)(
927  ) CONST PURE;
928 
929  STDMETHOD_(void, GetSourceRectangle)(
930  _Out_ D2D1_RECT_F *sourceRectangle
931  ) CONST PURE;
932 }; // interface ID2D1ImageBrush
933 
934 
939 interface DX_DECLARE_INTERFACE("41343a53-e41a-49a2-91cd-21793bbb62e5") ID2D1BitmapBrush1 : public ID2D1BitmapBrush
940 {
941 
945  STDMETHOD_(void, SetInterpolationMode1)(
946  D2D1_INTERPOLATION_MODE interpolationMode
947  ) PURE;
948 
949  STDMETHOD_(D2D1_INTERPOLATION_MODE, GetInterpolationMode1)(
950  ) CONST PURE;
951 }; // interface ID2D1BitmapBrush1
952 
953 
957 interface DX_DECLARE_INTERFACE("10a72a66-e91c-43f4-993f-ddf4b82b0b4a") ID2D1StrokeStyle1 : public ID2D1StrokeStyle
958 {
959 
960  STDMETHOD_(D2D1_STROKE_TRANSFORM_TYPE, GetStrokeTransformType)(
961  ) CONST PURE;
962 }; // interface ID2D1StrokeStyle1
963 
964 
970 interface DX_DECLARE_INTERFACE("62baa2d2-ab54-41b7-b872-787e0106a421") ID2D1PathGeometry1 : public ID2D1PathGeometry
971 {
972 
973  STDMETHOD(ComputePointAndSegmentAtLength)(
974  FLOAT length,
976  _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
977  FLOAT flatteningTolerance,
978  _Out_ D2D1_POINT_DESCRIPTION *pointDescription
979  ) CONST PURE;
980 
981  COM_DECLSPEC_NOTHROW
982  HRESULT
983  ComputePointAndSegmentAtLength(
984  FLOAT length,
986  CONST D2D1_MATRIX_3X2_F &worldTransform,
987  FLOAT flatteningTolerance,
988  _Out_ D2D1_POINT_DESCRIPTION *pointDescription
989  ) CONST
990  {
991  return ComputePointAndSegmentAtLength(length, startSegment, &worldTransform, flatteningTolerance, pointDescription);
992  }
993 
994  COM_DECLSPEC_NOTHROW
995  HRESULT
996  ComputePointAndSegmentAtLength(
997  FLOAT length,
999  _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
1000  _Out_ D2D1_POINT_DESCRIPTION *pointDescription
1001  ) CONST
1002  {
1003  return ComputePointAndSegmentAtLength(length, startSegment, worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, pointDescription);
1004  }
1005 
1006  COM_DECLSPEC_NOTHROW
1007  HRESULT
1008  ComputePointAndSegmentAtLength(
1009  FLOAT length,
1011  CONST D2D1_MATRIX_3X2_F &worldTransform,
1012  _Out_ D2D1_POINT_DESCRIPTION *pointDescription
1013  ) CONST
1014  {
1015  return ComputePointAndSegmentAtLength(length, startSegment, &worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, pointDescription);
1016  }
1017 }; // interface ID2D1PathGeometry1
1018 
1019 
1024 interface DX_DECLARE_INTERFACE("483473d7-cd46-4f9d-9d3a-3112aa80159d") ID2D1Properties : public IUnknown
1025 {
1026 
1030  STDMETHOD_(UINT32, GetPropertyCount)(
1031  ) CONST PURE;
1032 
1036  STDMETHOD(GetPropertyName)(
1037  UINT32 index,
1038  _Out_writes_(nameCount) PWSTR name,
1039  UINT32 nameCount
1040  ) CONST PURE;
1041 
1045  STDMETHOD_(UINT32, GetPropertyNameLength)(
1046  UINT32 index
1047  ) CONST PURE;
1048 
1052  STDMETHOD_(D2D1_PROPERTY_TYPE, GetType)(
1053  UINT32 index
1054  ) CONST PURE;
1055 
1059  STDMETHOD_(UINT32, GetPropertyIndex)(
1060  _In_ PCWSTR name
1061  ) CONST PURE;
1062 
1066  STDMETHOD(SetValueByName)(
1067  _In_ PCWSTR name,
1069  _In_reads_(dataSize) CONST BYTE *data,
1070  UINT32 dataSize
1071  ) PURE;
1072 
1076  STDMETHOD(SetValue)(
1077  UINT32 index,
1079  _In_reads_(dataSize) CONST BYTE *data,
1080  UINT32 dataSize
1081  ) PURE;
1082 
1087  STDMETHOD(GetValueByName)(
1088  _In_ PCWSTR name,
1090  _Out_writes_(dataSize) BYTE *data,
1091  UINT32 dataSize
1092  ) CONST PURE;
1093 
1097  STDMETHOD(GetValue)(
1098  UINT32 index,
1100  _Out_writes_(dataSize) BYTE *data,
1101  UINT32 dataSize
1102  ) CONST PURE;
1103 
1107  STDMETHOD_(UINT32, GetValueSize)(
1108  UINT32 index
1109  ) CONST PURE;
1110 
1114  STDMETHOD(GetSubProperties)(
1115  UINT32 index,
1116  _COM_Outptr_result_maybenull_ ID2D1Properties **subProperties
1117  ) CONST PURE;
1118 
1119  COM_DECLSPEC_NOTHROW
1120  HRESULT
1121  SetValueByName(
1122  _In_ PCWSTR name,
1123  _In_reads_(dataSize) CONST BYTE *data,
1124  UINT32 dataSize
1125  )
1126  {
1127  return SetValueByName(name, D2D1_PROPERTY_TYPE_UNKNOWN, data, dataSize);
1128  }
1129 
1130  COM_DECLSPEC_NOTHROW
1131  HRESULT
1132  SetValue(
1133  UINT32 index,
1134  _In_reads_(dataSize) CONST BYTE *data,
1135  UINT32 dataSize
1136  )
1137  {
1138  return SetValue(index, D2D1_PROPERTY_TYPE_UNKNOWN, data, dataSize);
1139  }
1140 
1141  COM_DECLSPEC_NOTHROW
1142  HRESULT
1143  GetValueByName(
1144  _In_ PCWSTR name,
1145  _Out_writes_(dataSize) BYTE *data,
1146  UINT32 dataSize
1147  ) CONST
1148  {
1149  return GetValueByName(name, D2D1_PROPERTY_TYPE_UNKNOWN, data, dataSize);
1150  }
1151 
1152  COM_DECLSPEC_NOTHROW
1153  HRESULT
1154  GetValue(
1155  UINT32 index,
1156  _Out_writes_(dataSize) BYTE *data,
1157  UINT32 dataSize
1158  ) CONST
1159  {
1160  return GetValue(index, D2D1_PROPERTY_TYPE_UNKNOWN, data, dataSize);
1161  }
1162 
1163  //
1164  // Templatized helper functions:
1165  //
1166  template<typename T>
1167  HRESULT GetValueByName(
1168  _In_ PCWSTR propertyName,
1169  _Out_ T *value
1170  ) const
1171  {
1172  return GetValueByName(propertyName, reinterpret_cast<BYTE *>(value), sizeof(*value));
1173  }
1174 
1175  template<typename T>
1176  T GetValueByName(
1177  _In_ PCWSTR propertyName
1178  ) const
1179  {
1180  T value;
1181  HRESULT ignoreHr = GetValueByName(propertyName, reinterpret_cast<BYTE *>(&value), sizeof(value));
1182  UNREFERENCED_PARAMETER(ignoreHr);
1183 
1184  return value;
1185  }
1186 
1187 
1188  template<typename T>
1189  HRESULT SetValueByName(
1190  _In_ PCWSTR propertyName,
1191  _In_ const T &value
1192  )
1193  {
1194  return SetValueByName(propertyName, reinterpret_cast<const BYTE *>(&value), sizeof(value));
1195  }
1196 
1197  template<typename U>
1198  HRESULT GetValue(
1199  U index,
1200  _Out_writes_(dataSize) BYTE *data,
1202  ) CONST
1203  {
1204  return GetValue(static_cast<UINT32>(index), data, dataSize);
1205  }
1206 
1207  template<typename T, typename U>
1208  HRESULT GetValue(
1209  U index,
1210  _Out_ T *value
1211  ) const
1212  {
1213  return GetValue(static_cast<UINT32>(index), reinterpret_cast<BYTE *>(value), sizeof(*value));
1214  }
1215 
1216  template<typename T, typename U>
1217  T GetValue(
1218  U index
1219  ) const
1220  {
1221  T value;
1222  HRESULT ignoreHr = GetValue(static_cast<UINT32>(index), reinterpret_cast<BYTE *>(&value), sizeof(value));
1223 
1224  // Unreferenced variable:
1225  ignoreHr;
1226 
1227  return value;
1228  }
1229 
1230  template<typename U>
1231  HRESULT SetValue(
1232  U index,
1233  _In_reads_(dataSize) CONST BYTE *data,
1235  )
1236  {
1237  return SetValue(static_cast<UINT32>(index), data, dataSize);
1238  }
1239 
1240  template<typename T, typename U>
1241  HRESULT SetValue(
1242  U index,
1243  _In_ const T &value
1244  )
1245  {
1246  return SetValue(static_cast<UINT32>(index), reinterpret_cast<const BYTE *>(&value), sizeof(value));
1247  }
1248 
1249  template<typename U>
1250  HRESULT GetPropertyName(
1251  U index,
1252  _Out_writes_(nameCount) PWSTR name,
1253  UINT32 nameCount
1254  ) CONST
1255  {
1256  return GetPropertyName(static_cast<UINT32>(index), name, nameCount);
1257  }
1258 
1259  template<typename U>
1260  UINT32 GetPropertyNameLength(
1261  U index
1262  ) CONST
1263  {
1264  return GetPropertyNameLength(static_cast<UINT32>(index));
1265  }
1266 
1267  template<typename U>
1268  D2D1_PROPERTY_TYPE GetType(
1269  U index
1270  ) CONST
1271  {
1272  return GetType(static_cast<UINT32>(index));
1273  }
1274 
1275 
1276  template<typename U>
1277  UINT32 GetValueSize(
1278  U index
1279  ) CONST
1280  {
1281  return GetValueSize(static_cast<UINT32>(index));
1282  }
1283 
1284  template<typename U>
1285  HRESULT GetSubProperties(
1286  U index,
1287  _Outptr_result_maybenull_ ID2D1Properties **subProperties
1288  ) CONST
1289  {
1290  return GetSubProperties(static_cast<UINT32>(index), subProperties);
1291  }
1292 }; // interface ID2D1Properties
1293 
1294 
1299 interface DX_DECLARE_INTERFACE("28211a43-7d89-476f-8181-2d6159b220ad") ID2D1Effect : public ID2D1Properties
1300 {
1301 
1306  STDMETHOD_(void, SetInput)(
1307  UINT32 index,
1308  _In_opt_ ID2D1Image *input,
1309  BOOL invalidate = TRUE
1310  ) PURE;
1311 
1316  STDMETHOD(SetInputCount)(
1317  UINT32 inputCount
1318  ) PURE;
1319 
1324  STDMETHOD_(void, GetInput)(
1325  UINT32 index,
1326  _Outptr_result_maybenull_ ID2D1Image **input
1327  ) CONST PURE;
1328 
1332  STDMETHOD_(UINT32, GetInputCount)(
1333  ) CONST PURE;
1334 
1339  STDMETHOD_(void, GetOutput)(
1340  _Outptr_ ID2D1Image **outputImage
1341  ) CONST PURE;
1342 
1343  COM_DECLSPEC_NOTHROW
1344  void
1345  SetInputEffect(
1346  UINT32 index,
1347  _In_opt_ ID2D1Effect *inputEffect,
1348  BOOL invalidate = TRUE
1349  )
1350  {
1351 
1352  ID2D1Image *output = NULL;
1353  if (inputEffect != NULL)
1354  {
1355  inputEffect->GetOutput(&output);
1356  }
1357  SetInput(index, output, invalidate);
1358  if (output != NULL)
1359  {
1360  output->Release();
1361  }
1362  }
1363 }; // interface ID2D1Effect
1364 
1365 
1370 interface DX_DECLARE_INTERFACE("a898a84c-3873-4588-b08b-ebbf978df041") ID2D1Bitmap1 : public ID2D1Bitmap
1371 {
1372 
1376  STDMETHOD_(void, GetColorContext)(
1377  _Outptr_result_maybenull_ ID2D1ColorContext **colorContext
1378  ) CONST PURE;
1379 
1383  STDMETHOD_(D2D1_BITMAP_OPTIONS, GetOptions)(
1384  ) CONST PURE;
1385 
1390  STDMETHOD(GetSurface)(
1391  _COM_Outptr_result_maybenull_ IDXGISurface **dxgiSurface
1392  ) CONST PURE;
1393 
1398  STDMETHOD(Map)(
1400  _Out_ D2D1_MAPPED_RECT *mappedRect
1401  ) PURE;
1402 
1406  STDMETHOD(Unmap)(
1407  ) PURE;
1408 }; // interface ID2D1Bitmap1
1409 
1410 
1414 interface DX_DECLARE_INTERFACE("1c4820bb-5771-4518-a581-2fe4dd0ec657") ID2D1ColorContext : public ID2D1Resource
1415 {
1416 
1420  STDMETHOD_(D2D1_COLOR_SPACE, GetColorSpace)(
1421  ) CONST PURE;
1422 
1426  STDMETHOD_(UINT32, GetProfileSize)(
1427  ) CONST PURE;
1428 
1432  STDMETHOD(GetProfile)(
1433  _Out_writes_(profileSize) BYTE *profile,
1434  UINT32 profileSize
1435  ) CONST PURE;
1436 }; // interface ID2D1ColorContext
1437 
1438 
1443 interface DX_DECLARE_INTERFACE("ae1572f4-5dd0-4777-998b-9279472ae63b") ID2D1GradientStopCollection1 : public ID2D1GradientStopCollection
1444 {
1445 
1454  STDMETHOD_(void, GetGradientStops1)(
1455  _Out_writes_to_(gradientStopsCount, _Inexpressible_("Retrieved through GetGradientStopCount()") ) D2D1_GRADIENT_STOP *gradientStops,
1456  UINT32 gradientStopsCount
1457  ) CONST PURE;
1458 
1464  STDMETHOD_(D2D1_COLOR_SPACE, GetPreInterpolationSpace)(
1465  ) CONST PURE;
1466 
1473  STDMETHOD_(D2D1_COLOR_SPACE, GetPostInterpolationSpace)(
1474  ) CONST PURE;
1475 
1481  STDMETHOD_(D2D1_BUFFER_PRECISION, GetBufferPrecision)(
1482  ) CONST PURE;
1483 
1487  STDMETHOD_(D2D1_COLOR_INTERPOLATION_MODE, GetColorInterpolationMode)(
1488  ) CONST PURE;
1489 }; // interface ID2D1GradientStopCollection1
1490 
1491 
1495 interface DX_DECLARE_INTERFACE("689f1f85-c72e-4e33-8f19-85754efd5ace") ID2D1DrawingStateBlock1 : public ID2D1DrawingStateBlock
1496 {
1497 
1501  STDMETHOD_(void, GetDescription)(
1502  _Out_ D2D1_DRAWING_STATE_DESCRIPTION1 *stateDescription
1503  ) CONST PURE;
1504 
1505  using ID2D1DrawingStateBlock::GetDescription;
1506 
1510  STDMETHOD_(void, SetDescription)(
1511  _In_ CONST D2D1_DRAWING_STATE_DESCRIPTION1 *stateDescription
1512  ) PURE;
1513 
1514  using ID2D1DrawingStateBlock::SetDescription;
1515 }; // interface ID2D1DrawingStateBlock1
1516 
1517 
1522 interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1DeviceContext : public ID2D1RenderTarget
1523 {
1524 
1529  STDMETHOD(CreateBitmap)(
1530  D2D1_SIZE_U size,
1531  _In_opt_ CONST void *sourceData,
1532  UINT32 pitch,
1533  _In_ CONST D2D1_BITMAP_PROPERTIES1 *bitmapProperties,
1534  _COM_Outptr_ ID2D1Bitmap1 **bitmap
1535  ) PURE;
1536 
1537  using ID2D1RenderTarget::CreateBitmap;
1538 
1542  STDMETHOD(CreateBitmapFromWicBitmap)(
1543  _In_ IWICBitmapSource *wicBitmapSource,
1544  _In_opt_ CONST D2D1_BITMAP_PROPERTIES1 *bitmapProperties,
1545  _COM_Outptr_ ID2D1Bitmap1 **bitmap
1546  ) PURE;
1547 
1548  using ID2D1RenderTarget::CreateBitmapFromWicBitmap;
1549 
1556  STDMETHOD(CreateColorContext)(
1557  D2D1_COLOR_SPACE space,
1558  _In_reads_opt_(profileSize) CONST BYTE *profile,
1559  UINT32 profileSize,
1560  _COM_Outptr_ ID2D1ColorContext **colorContext
1561  ) PURE;
1562 
1563  STDMETHOD(CreateColorContextFromFilename)(
1564  _In_ PCWSTR filename,
1565  _COM_Outptr_ ID2D1ColorContext **colorContext
1566  ) PURE;
1567 
1568  STDMETHOD(CreateColorContextFromWicColorContext)(
1569  _In_ IWICColorContext *wicColorContext,
1570  _COM_Outptr_ ID2D1ColorContext **colorContext
1571  ) PURE;
1572 
1576  STDMETHOD(CreateBitmapFromDxgiSurface)(
1577  _In_ IDXGISurface *surface,
1578  _In_opt_ CONST D2D1_BITMAP_PROPERTIES1 *bitmapProperties,
1579  _COM_Outptr_ ID2D1Bitmap1 **bitmap
1580  ) PURE;
1581 
1587  STDMETHOD(CreateEffect)(
1588  _In_ REFCLSID effectId,
1589  _COM_Outptr_ ID2D1Effect **effect
1590  ) PURE;
1591 
1606  STDMETHOD(CreateGradientStopCollection)(
1607  _In_reads_(straightAlphaGradientStopsCount) CONST D2D1_GRADIENT_STOP *straightAlphaGradientStops,
1608  _In_range_(>=,1) UINT32 straightAlphaGradientStopsCount,
1609  D2D1_COLOR_SPACE preInterpolationSpace,
1610  D2D1_COLOR_SPACE postInterpolationSpace,
1611  D2D1_BUFFER_PRECISION bufferPrecision,
1612  D2D1_EXTEND_MODE extendMode,
1613  D2D1_COLOR_INTERPOLATION_MODE colorInterpolationMode,
1614  _COM_Outptr_ ID2D1GradientStopCollection1 **gradientStopCollection1
1615  ) PURE;
1616 
1617  using ID2D1RenderTarget::CreateGradientStopCollection;
1618 
1623  STDMETHOD(CreateImageBrush)(
1624  _In_opt_ ID2D1Image *image,
1625  _In_ CONST D2D1_IMAGE_BRUSH_PROPERTIES *imageBrushProperties,
1626  _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
1627  _COM_Outptr_ ID2D1ImageBrush **imageBrush
1628  ) PURE;
1629 
1630  STDMETHOD(CreateBitmapBrush)(
1631  _In_opt_ ID2D1Bitmap *bitmap,
1632  _In_opt_ CONST D2D1_BITMAP_BRUSH_PROPERTIES1 *bitmapBrushProperties,
1633  _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
1634  _COM_Outptr_ ID2D1BitmapBrush1 **bitmapBrush
1635  ) PURE;
1636 
1637  using ID2D1RenderTarget::CreateBitmapBrush;
1638 
1642  STDMETHOD(CreateCommandList)(
1643  _COM_Outptr_ ID2D1CommandList **commandList
1644  ) PURE;
1645 
1649  STDMETHOD_(BOOL, IsDxgiFormatSupported)(
1651  ) CONST PURE;
1652 
1656  STDMETHOD_(BOOL, IsBufferPrecisionSupported)(
1657  D2D1_BUFFER_PRECISION bufferPrecision
1658  ) CONST PURE;
1659 
1664  STDMETHOD(GetImageLocalBounds)(
1665  _In_ ID2D1Image *image,
1666  _Out_ D2D1_RECT_F *localBounds
1667  ) CONST PURE;
1668 
1673  STDMETHOD(GetImageWorldBounds)(
1674  _In_ ID2D1Image *image,
1675  _Out_ D2D1_RECT_F *worldBounds
1676  ) CONST PURE;
1677 
1682  STDMETHOD(GetGlyphRunWorldBounds)(
1683  D2D1_POINT_2F baselineOrigin,
1684  _In_ CONST DWRITE_GLYPH_RUN *glyphRun,
1685  DWRITE_MEASURING_MODE measuringMode,
1686  _Out_ D2D1_RECT_F *bounds
1687  ) CONST PURE;
1688 
1692  STDMETHOD_(void, GetDevice)(
1693  _Outptr_ ID2D1Device **device
1694  ) CONST PURE;
1695 
1701  STDMETHOD_(void, SetTarget)(
1702  _In_opt_ ID2D1Image *image
1703  ) PURE;
1704 
1708  STDMETHOD_(void, GetTarget)(
1709  _Outptr_result_maybenull_ ID2D1Image **image
1710  ) CONST PURE;
1711 
1715  STDMETHOD_(void, SetRenderingControls)(
1716  _In_ CONST D2D1_RENDERING_CONTROLS *renderingControls
1717  ) PURE;
1718 
1723  STDMETHOD_(void, GetRenderingControls)(
1724  _Out_ D2D1_RENDERING_CONTROLS *renderingControls
1725  ) CONST PURE;
1726 
1730  STDMETHOD_(void, SetPrimitiveBlend)(
1731  D2D1_PRIMITIVE_BLEND primitiveBlend
1732  ) PURE;
1733 
1737  STDMETHOD_(D2D1_PRIMITIVE_BLEND, GetPrimitiveBlend)(
1738  ) CONST PURE;
1739 
1743  STDMETHOD_(void, SetUnitMode)(
1744  D2D1_UNIT_MODE unitMode
1745  ) PURE;
1746 
1750  STDMETHOD_(D2D1_UNIT_MODE, GetUnitMode)(
1751  ) CONST PURE;
1752 
1756  STDMETHOD_(void, DrawGlyphRun)(
1757  D2D1_POINT_2F baselineOrigin,
1758  _In_ CONST DWRITE_GLYPH_RUN *glyphRun,
1759  _In_opt_ CONST DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription,
1760  _In_ ID2D1Brush *foregroundBrush,
1762  ) PURE;
1763 
1764  using ID2D1RenderTarget::DrawGlyphRun;
1765 
1770  STDMETHOD_(void, DrawImage)(
1771  _In_ ID2D1Image *image,
1772  _In_opt_ CONST D2D1_POINT_2F *targetOffset = NULL,
1773  _In_opt_ CONST D2D1_RECT_F *imageRectangle = NULL,
1776  ) PURE;
1777 
1781  STDMETHOD_(void, DrawGdiMetafile)(
1782  _In_ ID2D1GdiMetafile *gdiMetafile,
1783  _In_opt_ CONST D2D1_POINT_2F *targetOffset = NULL
1784  ) PURE;
1785 
1786  STDMETHOD_(void, DrawBitmap)(
1787  _In_ ID2D1Bitmap *bitmap,
1788  _In_opt_ CONST D2D1_RECT_F *destinationRectangle,
1789  FLOAT opacity,
1790  D2D1_INTERPOLATION_MODE interpolationMode,
1791  _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL,
1792  _In_opt_ CONST D2D1_MATRIX_4X4_F *perspectiveTransform = NULL
1793  ) PURE;
1794 
1795  using ID2D1RenderTarget::DrawBitmap;
1796 
1800  STDMETHOD_(void, PushLayer)(
1801  _In_ CONST D2D1_LAYER_PARAMETERS1 *layerParameters,
1802  _In_opt_ ID2D1Layer *layer
1803  ) PURE;
1804 
1805  using ID2D1RenderTarget::PushLayer;
1806 
1811  STDMETHOD(InvalidateEffectInputRectangle)(
1812  _In_ ID2D1Effect *effect,
1813  UINT32 input,
1814  _In_ CONST D2D1_RECT_F *inputRectangle
1815  ) PURE;
1816 
1821  STDMETHOD(GetEffectInvalidRectangleCount)(
1822  _In_ ID2D1Effect *effect,
1823  _Out_ UINT32 *rectangleCount
1824  ) PURE;
1825 
1829  STDMETHOD(GetEffectInvalidRectangles)(
1830  _In_ ID2D1Effect *effect,
1831  _Out_writes_(rectanglesCount) D2D1_RECT_F *rectangles,
1832  UINT32 rectanglesCount
1833  ) PURE;
1834 
1839  STDMETHOD(GetEffectRequiredInputRectangles)(
1840  _In_ ID2D1Effect *renderEffect,
1841  _In_opt_ CONST D2D1_RECT_F *renderImageRectangle,
1842  _In_reads_(inputCount) CONST D2D1_EFFECT_INPUT_DESCRIPTION *inputDescriptions,
1843  _Out_writes_(inputCount) D2D1_RECT_F *requiredInputRects,
1844  UINT32 inputCount
1845  ) PURE;
1846 
1852  STDMETHOD_(void, FillOpacityMask)(
1853  _In_ ID2D1Bitmap *opacityMask,
1854  _In_ ID2D1Brush *brush,
1855  _In_opt_ CONST D2D1_RECT_F *destinationRectangle = NULL,
1856  _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL
1857  ) PURE;
1858 
1859  using ID2D1RenderTarget::FillOpacityMask;
1860 
1861  COM_DECLSPEC_NOTHROW
1862  HRESULT
1863  CreateBitmap(
1864  D2D1_SIZE_U size,
1865  _In_opt_ CONST void *sourceData,
1866  UINT32 pitch,
1867  CONST D2D1_BITMAP_PROPERTIES1 &bitmapProperties,
1868  _COM_Outptr_ ID2D1Bitmap1 **bitmap
1869  )
1870  {
1871  return CreateBitmap(size, sourceData, pitch, &bitmapProperties, bitmap);
1872  }
1873 
1877  COM_DECLSPEC_NOTHROW
1878  HRESULT
1879  CreateBitmapFromWicBitmap(
1880  _In_ IWICBitmapSource *wicBitmapSource,
1881  CONST D2D1_BITMAP_PROPERTIES1 &bitmapProperties,
1882  _COM_Outptr_ ID2D1Bitmap1 **bitmap
1883  )
1884  {
1885  return CreateBitmapFromWicBitmap(wicBitmapSource, &bitmapProperties, bitmap);
1886  }
1887 
1891  COM_DECLSPEC_NOTHROW
1892  HRESULT
1893  CreateBitmapFromWicBitmap(
1894  _In_ IWICBitmapSource *wicBitmapSource,
1895  _COM_Outptr_ ID2D1Bitmap1 **bitmap
1896  )
1897  {
1898  return CreateBitmapFromWicBitmap(wicBitmapSource, NULL, bitmap);
1899  }
1900 
1901  COM_DECLSPEC_NOTHROW
1902  HRESULT
1903  CreateBitmapFromDxgiSurface(
1904  _In_ IDXGISurface *surface,
1905  CONST D2D1_BITMAP_PROPERTIES1 &bitmapProperties,
1906  _COM_Outptr_ ID2D1Bitmap1 **bitmap
1907  )
1908  {
1909  return CreateBitmapFromDxgiSurface(surface, &bitmapProperties, bitmap);
1910  }
1911 
1912  COM_DECLSPEC_NOTHROW
1913  HRESULT
1914  CreateImageBrush(
1915  _In_opt_ ID2D1Image *image,
1916  CONST D2D1_IMAGE_BRUSH_PROPERTIES &imageBrushProperties,
1917  CONST D2D1_BRUSH_PROPERTIES &brushProperties,
1918  _COM_Outptr_ ID2D1ImageBrush **imageBrush
1919  )
1920  {
1921  return CreateImageBrush(image, &imageBrushProperties, &brushProperties, imageBrush);
1922  }
1923 
1924  COM_DECLSPEC_NOTHROW
1925  HRESULT
1926  CreateImageBrush(
1927  _In_opt_ ID2D1Image *image,
1928  CONST D2D1_IMAGE_BRUSH_PROPERTIES &imageBrushProperties,
1929  _COM_Outptr_ ID2D1ImageBrush **imageBrush
1930  )
1931  {
1932  return CreateImageBrush(image,&imageBrushProperties, NULL, imageBrush);
1933  }
1934 
1935  COM_DECLSPEC_NOTHROW
1936  HRESULT
1937  CreateBitmapBrush(
1938  _In_opt_ ID2D1Bitmap *bitmap,
1939  _COM_Outptr_ ID2D1BitmapBrush1 **bitmapBrush
1940  )
1941  {
1942  return CreateBitmapBrush(bitmap, NULL, NULL, bitmapBrush);
1943  }
1944 
1945  COM_DECLSPEC_NOTHROW
1946  HRESULT
1947  CreateBitmapBrush(
1948  _In_opt_ ID2D1Bitmap *bitmap,
1949  CONST D2D1_BITMAP_BRUSH_PROPERTIES1 &bitmapBrushProperties,
1950  _COM_Outptr_ ID2D1BitmapBrush1 **bitmapBrush
1951  )
1952  {
1953  return CreateBitmapBrush(bitmap, &bitmapBrushProperties, NULL, bitmapBrush);
1954  }
1955 
1956  COM_DECLSPEC_NOTHROW
1957  HRESULT
1958  CreateBitmapBrush(
1959  _In_opt_ ID2D1Bitmap *bitmap,
1960  CONST D2D1_BITMAP_BRUSH_PROPERTIES1 &bitmapBrushProperties,
1961  CONST D2D1_BRUSH_PROPERTIES &brushProperties,
1962  _COM_Outptr_ ID2D1BitmapBrush1 **bitmapBrush
1963  )
1964  {
1965  return CreateBitmapBrush(bitmap, &bitmapBrushProperties, &brushProperties, bitmapBrush);
1966  }
1967 
1971  COM_DECLSPEC_NOTHROW
1972  void
1973  DrawImage(
1974  _In_ ID2D1Effect *effect,
1975  _In_opt_ CONST D2D1_POINT_2F *targetOffset = NULL,
1976  _In_opt_ CONST D2D1_RECT_F *imageRectangle = NULL,
1979  )
1980  {
1981 
1982  ID2D1Image *output = NULL;
1983  effect->GetOutput(&output);
1984  DrawImage(output, targetOffset, imageRectangle, interpolationMode, compositeMode);
1985  output->Release();
1986  }
1987 
1988  COM_DECLSPEC_NOTHROW
1989  void
1990  DrawImage(
1991  _In_ ID2D1Image *image,
1992  D2D1_INTERPOLATION_MODE interpolationMode,
1994  )
1995  {
1996  DrawImage(image, NULL, NULL, interpolationMode, compositeMode);
1997  }
1998 
1999  COM_DECLSPEC_NOTHROW
2000  void
2001  DrawImage(
2002  _In_ ID2D1Effect *effect,
2003  D2D1_INTERPOLATION_MODE interpolationMode,
2005  )
2006  {
2007  DrawImage(effect, NULL, NULL, interpolationMode, compositeMode);
2008  }
2009 
2010  COM_DECLSPEC_NOTHROW
2011  void
2012  DrawImage(
2013  _In_ ID2D1Image *image,
2014  D2D1_POINT_2F targetOffset,
2017  )
2018  {
2019  DrawImage(image, &targetOffset, NULL, interpolationMode, compositeMode);
2020  }
2021 
2022  COM_DECLSPEC_NOTHROW
2023  void
2024  DrawImage(
2025  _In_ ID2D1Effect *effect,
2026  D2D1_POINT_2F targetOffset,
2029  )
2030  {
2031  DrawImage(effect, &targetOffset, NULL, interpolationMode, compositeMode);
2032  }
2033 
2034  COM_DECLSPEC_NOTHROW
2035  void
2036  DrawImage(
2037  _In_ ID2D1Image *image,
2038  D2D1_POINT_2F targetOffset,
2039  CONST D2D1_RECT_F &imageRectangle,
2042  )
2043  {
2044  DrawImage(image, &targetOffset, &imageRectangle, interpolationMode, compositeMode);
2045  }
2046 
2047  COM_DECLSPEC_NOTHROW
2048  void
2049  DrawImage(
2050  _In_ ID2D1Effect *effect,
2051  D2D1_POINT_2F targetOffset,
2052  CONST D2D1_RECT_F &imageRectangle,
2055  )
2056  {
2057  DrawImage(effect, &targetOffset, &imageRectangle, interpolationMode, compositeMode);
2058  }
2059 
2060  COM_DECLSPEC_NOTHROW
2061  void
2062  PushLayer(
2063  CONST D2D1_LAYER_PARAMETERS1 &layerParameters,
2064  _In_opt_ ID2D1Layer *layer
2065  )
2066  {
2067  PushLayer(&layerParameters, layer);
2068  }
2069 
2070  COM_DECLSPEC_NOTHROW
2071  void
2072  DrawGdiMetafile(
2073  _In_ ID2D1GdiMetafile *gdiMetafile,
2074  D2D1_POINT_2F targetOffset
2075  )
2076  {
2077  DrawGdiMetafile(gdiMetafile, &targetOffset);
2078  }
2079 
2080  COM_DECLSPEC_NOTHROW
2081  void
2082  DrawBitmap(
2083  _In_ ID2D1Bitmap *bitmap,
2084  CONST D2D1_RECT_F &destinationRectangle,
2085  FLOAT opacity,
2086  D2D1_INTERPOLATION_MODE interpolationMode,
2087  _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL,
2088  _In_opt_ CONST D2D1_MATRIX_4X4_F *perspectiveTransform = NULL
2089  )
2090  {
2091  DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform);
2092  }
2093 
2094  COM_DECLSPEC_NOTHROW
2095  void
2096  DrawBitmap(
2097  _In_ ID2D1Bitmap *bitmap,
2098  CONST D2D1_RECT_F &destinationRectangle,
2099  FLOAT opacity,
2100  D2D1_INTERPOLATION_MODE interpolationMode,
2101  CONST D2D1_RECT_F &sourceRectangle,
2102  _In_opt_ CONST D2D1_MATRIX_4X4_F *perspectiveTransform = NULL
2103  )
2104  {
2105  DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, &sourceRectangle, perspectiveTransform);
2106  }
2107 
2108  COM_DECLSPEC_NOTHROW
2109  void
2110  DrawBitmap(
2111  _In_ ID2D1Bitmap *bitmap,
2112  CONST D2D1_RECT_F &destinationRectangle,
2113  FLOAT opacity,
2114  D2D1_INTERPOLATION_MODE interpolationMode,
2115  CONST D2D1_RECT_F &sourceRectangle,
2116  CONST D2D1_MATRIX_4X4_F &perspectiveTransform
2117  )
2118  {
2119  DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, &sourceRectangle, &perspectiveTransform);
2120  }
2121 
2122  COM_DECLSPEC_NOTHROW
2123  void
2124  FillOpacityMask(
2125  _In_ ID2D1Bitmap *opacityMask,
2126  _In_ ID2D1Brush *brush,
2127  CONST D2D1_RECT_F &destinationRectangle,
2128  _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL
2129  )
2130  {
2131  FillOpacityMask(opacityMask, brush, &destinationRectangle, sourceRectangle);
2132  }
2133 
2134  COM_DECLSPEC_NOTHROW
2135  void
2136  FillOpacityMask(
2137  _In_ ID2D1Bitmap *opacityMask,
2138  _In_ ID2D1Brush *brush,
2139  CONST D2D1_RECT_F &destinationRectangle,
2140  CONST D2D1_RECT_F &sourceRectangle
2141  )
2142  {
2143  FillOpacityMask(opacityMask, brush, &destinationRectangle, &sourceRectangle);
2144  }
2145 
2149  COM_DECLSPEC_NOTHROW
2150  void
2151  SetRenderingControls(
2152  CONST D2D1_RENDERING_CONTROLS &renderingControls
2153  )
2154  {
2155  return SetRenderingControls(&renderingControls);
2156  }
2157 }; // interface ID2D1DeviceContext
2158 
2159 
2164 interface DX_DECLARE_INTERFACE("47dd575d-ac05-4cdd-8049-9b02cd16f44c") ID2D1Device : public ID2D1Resource
2165 {
2166 
2170  STDMETHOD(CreateDeviceContext)(
2172  _COM_Outptr_ ID2D1DeviceContext **deviceContext
2173  ) PURE;
2174 
2178  STDMETHOD(CreatePrintControl)(
2179  _In_ IWICImagingFactory *wicFactory,
2180  _In_ IPrintDocumentPackageTarget *documentTarget,
2181  _In_opt_ CONST D2D1_PRINT_CONTROL_PROPERTIES *printControlProperties,
2182  _COM_Outptr_ ID2D1PrintControl **printControl
2183  ) PURE;
2184 
2188  STDMETHOD_(void, SetMaximumTextureMemory)(
2189  UINT64 maximumInBytes
2190  ) PURE;
2191 
2195  STDMETHOD_(UINT64, GetMaximumTextureMemory)(
2196  ) CONST PURE;
2197 
2202  STDMETHOD_(void, ClearResources)(
2203  UINT32 millisecondsSinceUse = 0
2204  ) PURE;
2205 
2206  COM_DECLSPEC_NOTHROW
2207  HRESULT
2208  CreatePrintControl(
2209  _In_ IWICImagingFactory *wicFactory,
2210  _In_ IPrintDocumentPackageTarget *documentTarget,
2211  CONST D2D1_PRINT_CONTROL_PROPERTIES &printControlProperties,
2212  _COM_Outptr_ ID2D1PrintControl **printControl
2213  )
2214  {
2215  return CreatePrintControl(wicFactory, documentTarget, &printControlProperties, printControl);
2216  }
2217 }; // interface ID2D1Device
2218 
2219 
2223 interface DX_DECLARE_INTERFACE("bb12d362-daee-4b9a-aa1d-14ba401cfa1f") ID2D1Factory1 : public ID2D1Factory
2224 {
2225 
2229  STDMETHOD(CreateDevice)(
2230  _In_ IDXGIDevice *dxgiDevice,
2231  _COM_Outptr_ ID2D1Device **d2dDevice
2232  ) PURE;
2233 
2238  STDMETHOD(CreateStrokeStyle)(
2239  _In_ CONST D2D1_STROKE_STYLE_PROPERTIES1 *strokeStyleProperties,
2240  _In_reads_opt_(dashesCount) CONST FLOAT *dashes,
2241  UINT32 dashesCount,
2242  _COM_Outptr_ ID2D1StrokeStyle1 **strokeStyle
2243  ) PURE;
2244 
2245  using ID2D1Factory::CreateStrokeStyle;
2246 
2250  STDMETHOD(CreatePathGeometry)(
2251  _COM_Outptr_ ID2D1PathGeometry1 **pathGeometry
2252  ) PURE;
2253 
2254  using ID2D1Factory::CreatePathGeometry;
2255 
2260  STDMETHOD(CreateDrawingStateBlock)(
2261  _In_opt_ CONST D2D1_DRAWING_STATE_DESCRIPTION1 *drawingStateDescription,
2262  _In_opt_ IDWriteRenderingParams *textRenderingParams,
2263  _COM_Outptr_ ID2D1DrawingStateBlock1 **drawingStateBlock
2264  ) PURE;
2265 
2266  using ID2D1Factory::CreateDrawingStateBlock;
2267 
2271  STDMETHOD(CreateGdiMetafile)(
2272  _In_ IStream *metafileStream,
2273  _COM_Outptr_ ID2D1GdiMetafile **metafile
2274  ) PURE;
2275 
2280  STDMETHOD(RegisterEffectFromStream)(
2281  _In_ REFCLSID classId,
2282  _In_ IStream *propertyXml,
2283  _In_reads_opt_(bindingsCount) CONST D2D1_PROPERTY_BINDING *bindings,
2284  UINT32 bindingsCount,
2285  _In_ CONST PD2D1_EFFECT_FACTORY effectFactory
2286  ) PURE;
2287 
2292  STDMETHOD(RegisterEffectFromString)(
2293  _In_ REFCLSID classId,
2294  _In_ PCWSTR propertyXml,
2295  _In_reads_opt_(bindingsCount) CONST D2D1_PROPERTY_BINDING *bindings,
2296  UINT32 bindingsCount,
2297  _In_ CONST PD2D1_EFFECT_FACTORY effectFactory
2298  ) PURE;
2299 
2305  STDMETHOD(UnregisterEffect)(
2306  _In_ REFCLSID classId
2307  ) PURE;
2308 
2317  STDMETHOD(GetRegisteredEffects)(
2318  _Out_writes_to_opt_(effectsCount, *effectsReturned) CLSID *effects,
2319  UINT32 effectsCount,
2320  _Out_opt_ UINT32 *effectsReturned,
2321  _Out_opt_ UINT32 *effectsRegistered
2322  ) CONST PURE;
2323 
2329  STDMETHOD(GetEffectProperties)(
2330  _In_ REFCLSID effectId,
2331  _COM_Outptr_ ID2D1Properties **properties
2332  ) CONST PURE;
2333 
2334  COM_DECLSPEC_NOTHROW
2335  HRESULT
2336  CreateStrokeStyle(
2337  CONST D2D1_STROKE_STYLE_PROPERTIES1 &strokeStyleProperties,
2338  _In_reads_opt_(dashesCount) CONST FLOAT *dashes,
2339  UINT32 dashesCount,
2340  _COM_Outptr_ ID2D1StrokeStyle1 **strokeStyle
2341  )
2342  {
2343  return CreateStrokeStyle(&strokeStyleProperties, dashes, dashesCount, strokeStyle);
2344  }
2345 
2346  COM_DECLSPEC_NOTHROW
2347  HRESULT
2348  CreateDrawingStateBlock(
2349  CONST D2D1_DRAWING_STATE_DESCRIPTION1 &drawingStateDescription,
2350  _COM_Outptr_ ID2D1DrawingStateBlock1 **drawingStateBlock
2351  )
2352  {
2353  return CreateDrawingStateBlock(&drawingStateDescription, NULL, drawingStateBlock);
2354  }
2355 
2356  COM_DECLSPEC_NOTHROW
2357  HRESULT
2358  CreateDrawingStateBlock(
2359  _COM_Outptr_ ID2D1DrawingStateBlock1 **drawingStateBlock
2360  )
2361  {
2362  return CreateDrawingStateBlock(NULL, NULL, drawingStateBlock);
2363  }
2364 }; // interface ID2D1Factory1
2365 
2366 
2371 interface DX_DECLARE_INTERFACE("31e6e7bc-e0ff-4d46-8c64-a0a8c41c15d3") ID2D1Multithread : public IUnknown
2372 {
2373 
2378  STDMETHOD_(BOOL, GetMultithreadProtected)(
2379  ) CONST PURE;
2380 
2384  STDMETHOD_(void, Enter)(
2385  ) PURE;
2386 
2390  STDMETHOD_(void, Leave)(
2391  ) PURE;
2392 }; // interface ID2D1Multithread
2393 
2394 
2395 
2396 #endif
2397 
2398 
2399 #ifdef D2D_USE_C_DEFINITIONS
2400 
2401 
2403 
2405 
2407 
2409 
2411 
2413 
2415 
2417 
2419 
2421 
2422 typedef interface ID2D1Effect ID2D1Effect;
2423 
2424 typedef interface ID2D1Bitmap1 ID2D1Bitmap1;
2425 
2426 typedef interface ID2D1ColorContext ID2D1ColorContext;
2427 
2429 
2431 
2433 
2434 typedef interface ID2D1Device ID2D1Device;
2435 
2436 typedef interface ID2D1Factory1 ID2D1Factory1;
2437 
2439 
2440 #endif
2441 
2442 
2443 #ifdef __cplusplus
2444 extern "C"
2445 {
2446 #endif
2447 
2448  HRESULT WINAPI
2450  _In_ IDXGIDevice *dxgiDevice,
2451  _In_opt_ CONST D2D1_CREATION_PROPERTIES *creationProperties,
2452  _Outptr_ ID2D1Device **d2dDevice
2453  );
2454 
2455  HRESULT WINAPI
2457  _In_ IDXGISurface *dxgiSurface,
2458  _In_opt_ CONST D2D1_CREATION_PROPERTIES *creationProperties,
2459  _Outptr_ ID2D1DeviceContext **d2dDeviceContext
2460  );
2461 
2462  D2D1_COLOR_F WINAPI
2464  D2D1_COLOR_SPACE sourceColorSpace,
2465  D2D1_COLOR_SPACE destinationColorSpace,
2466  _In_ CONST D2D1_COLOR_F* color
2467  );
2468 
2469  void WINAPI
2470  D2D1SinCos(
2471  _In_ FLOAT angle,
2472  _Out_ FLOAT *s,
2473  _Out_ FLOAT *c
2474  );
2475 
2476  FLOAT WINAPI
2477  D2D1Tan(
2478  _In_ FLOAT angle
2479  );
2480 
2481  FLOAT WINAPI
2483  _In_ FLOAT x,
2484  _In_ FLOAT y,
2485  _In_ FLOAT z
2486  );
2487 
2488 #ifdef __cplusplus
2489 }
2490 #endif
2491 
2492 #include <d2d1_1helper.h>
2493 
2494 
2495 #ifndef D2D_USE_C_DEFINITIONS
2496 
2497 inline HRESULT
2499  _In_ IDXGIDevice *dxgiDevice,
2500  _In_ CONST D2D1_CREATION_PROPERTIES &creationProperties,
2501  _Outptr_ ID2D1Device **d2dDevice
2502  )
2503 {
2504 
2505  return
2507  dxgiDevice,
2508  &creationProperties,
2509  d2dDevice);
2510 }
2511 
2512 inline HRESULT
2514  _In_ IDXGISurface *dxgiSurface,
2515  _In_ CONST D2D1_CREATION_PROPERTIES &creationProperties,
2516  _Outptr_ ID2D1DeviceContext **d2dDeviceContext
2517  )
2518 {
2519  return
2521  dxgiSurface,
2522  &creationProperties,
2523  d2dDeviceContext);
2524 }
2525 
2526 #endif // #ifndef D2D_USE_C_DEFINITIONS
2527 
2528 /*#endif*/ /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
2529 /*#pragma endregion*/
2530 #endif // #ifndef _D2D1_1_H_
Definition: d2d1_1.h:98
D2D1_POINT_2F point
Definition: d2d1_1.h:481
#define DX_DECLARE_INTERFACE(x)
Definition: dcommon.h:17
Definition: d2d1_1.h:120
Describes a point along a path.
Definition: d2d1_1.h:479
Definition: d2d1_1.h:182
interface ID2D1Layer ID2D1Layer
Definition: d2d1.h:3618
FLOAT WINAPI D2D1Tan(_In_ FLOAT angle)
GLuint const GLchar * name
Definition: glext.h:6671
D2D1_COMPOSITE_MODE
Specifies the composite mode that will be applied.
Definition: d2d1_1.h:170
Definition: d2d1_1.h:103
EXTERN_C CONST IID IID_ID2D1DeviceContext
Definition: d2d1_1.h:661
D2D_MATRIX_5X4_F D2D1_MATRIX_5X4_F
Definition: d2d1_1.h:474
struct D2D1_MAPPED_RECT D2D1_MAPPED_RECT
Describes mapped memory from the ID2D1Bitmap1::Map API.
GLenum GLuint GLint GLint layer
Definition: glext.h:7674
interface ID2D1CommandList ID2D1CommandList
Definition: d2d1_1.h:2408
D2D1_CAP_STYLE
Enum which describes the drawing of the ends of a line.
Definition: d2d1.h:380
Defines a property binding to a function. The name must match the property defined in the registratio...
Definition: d2d1effectauthor.h:252
Definition: d2d1_1.h:196
Definition: d2d1_1.h:260
Definition: d2d1_1.h:68
Definition: d2d1_1.h:347
FLOAT rasterDPI
DPI for rasterization of all unsupported D2D commands or options, defaults to 150....
Definition: d2d1_1.h:619
D2D1_TAG tag1
Definition: d2d1_1.h:599
Definition: d2d1_1.h:78
EXTERN_C CONST IID IID_ID2D1ImageBrush
Definition: d2d1_1.h:651
D2D1_BUFFER_PRECISION bufferPrecision
The default buffer precision, used if the precision isn't otherwise specified.
Definition: d2d1_1.h:438
Definition: d2d1_1.h:106
interface ID2D1BitmapBrush1 ID2D1BitmapBrush1
Definition: d2d1_1.h:2414
D2D1_CAP_STYLE endCap
Definition: d2d1_1.h:521
The bitmap cannot be used as an input to DrawBitmap, DrawImage, in a bitmap brush or as an input to a...
Definition: d2d1_1.h:149
Definition: glslang_tab.cpp:129
This describes the drawing state.
Definition: d2d1_1.h:595
Definition: d2d1_1.h:344
Describes the opacity and transformation of a brush.
Definition: d2d1.h:318
interface IWICBitmapSource IWICBitmapSource
Definition: d2d1.h:55
D2D1_PIXEL_FORMAT pixelFormat
Definition: d2d1_1.h:405
D2D1_COLOR_INTERPOLATION_MODE
This specifies how colors are interpolated.
Definition: d2d1_1.h:380
struct D2D1_BITMAP_BRUSH_PROPERTIES1 D2D1_BITMAP_BRUSH_PROPERTIES1
Describes the extend modes and the interpolation mode of an ID2D1BitmapBrush.
#define T(x)
GLsizei startSegment
Definition: glext.h:12661
Definition: d2d1_1.h:174
Definition: d2d1_1.h:160
HRESULT WINAPI D2D1CreateDevice(_In_ IDXGIDevice *dxgiDevice, _In_opt_ CONST D2D1_CREATION_PROPERTIES *creationProperties, _Outptr_ ID2D1Device **d2dDevice)
D2D1_TEXT_ANTIALIAS_MODE
Describes the antialiasing mode used for drawing text.
Definition: d2d1.h:199
interface ID2D1GradientStopCollection ID2D1GradientStopCollection
Definition: d2d1.h:3582
D2D1_ANTIALIAS_MODE antialiasMode
Definition: d2d1_1.h:597
Definition: d2d1_1.h:348
interface ID2D1Factory1 ID2D1Factory1
Definition: d2d1_1.h:2436
EXTERN_C CONST IID IID_ID2D1GradientStopCollection1
Definition: d2d1_1.h:659
interface ID2D1StrokeStyle ID2D1StrokeStyle
Definition: d2d1.h:3594
D2D1_DEVICE_CONTEXT_OPTIONS
This specifies options that apply to the device context for its lifetime.
Definition: d2d1_1.h:295
EXTERN_C CONST IID IID_ID2D1BitmapBrush1
Definition: d2d1_1.h:652
The mapped pointer can be read from.
Definition: d2d1_1.h:220
D2D1_CAP_STYLE dashCap
Definition: d2d1_1.h:522
GLsizei GLfixed GLfixed GLfixed GLfixed const GLubyte * bitmap
Definition: glsym_gl.h:1002
Definition: d2d1_1.h:262
EXTERN_C CONST IID IID_ID2D1ColorContext
Definition: d2d1_1.h:658
uint64_t UINT64
Definition: coretypes.h:8
D2D_POINT_2L D2D1_POINT_2L
Definition: d2d1_1.h:58
GLsizeiptr size
Definition: glext.h:6559
D2D1_CAP_STYLE startCap
Definition: d2d1_1.h:520
struct D2D1_DRAWING_STATE_DESCRIPTION1 D2D1_DRAWING_STATE_DESCRIPTION1
This describes the drawing state.
Definition: d2d1_1.h:77
EXTERN_C CONST IID IID_ID2D1CommandList
Definition: d2d1_1.h:649
D2D1_PRIMITIVE_BLEND primitiveBlend
Definition: d2d1_1.h:602
GLfloat f
Definition: glext.h:8207
HRESULT(CALLBACK * PD2D1_EFFECT_FACTORY)(_Outptr_ IUnknown **effectImpl)
Function pointer to construct a new effect once registered.
Definition: d2d1_1.h:42
GLfloat angle
Definition: glext.h:11760
The mapped pointer has undefined behavior.
Definition: d2d1_1.h:215
D2D1_EXTEND_MODE extendModeY
Definition: d2d1_1.h:497
interface ID2D1BitmapBrush ID2D1BitmapBrush
Definition: d2d1.h:3586
EXTERN_C CONST IID IID_ID2D1GdiMetafile
Definition: d2d1_1.h:647
The stroke is forced to one pixel wide.
Definition: d2d1_1.h:332
Resources may only be invoked serially. Reference counts on resources are interlocked,...
Definition: d2d1_1.h:365
interface ID2D1PathGeometry ID2D1PathGeometry
Definition: d2d1.h:3614
The bitmap can be read from the CPU.
Definition: d2d1_1.h:154
Colors will be interpolated in straight alpha space.
Definition: d2d1_1.h:386
D2D1_DASH_STYLE
Describes the sequence of dashes and gaps in a stroke.
Definition: d2d1.h:410
Definition: d2d1_1.h:544
D2D1_UNIT_MODE unitMode
Definition: d2d1_1.h:603
GLdouble s
Definition: glext.h:6390
UINT32 endFigure
Definition: d2d1_1.h:484
Definition: d2d1_1.h:372
GLdouble GLdouble z
Definition: glext.h:6514
Definition: d2d1_1.h:99
Definition: d2d1_1.h:245
Definition: d2d1_1.h:175
Definition: d2d1_1.h:185
Definition: d2d1_1.h:96
Represents a rectangle defined by the coordinates of the upper-left corner (left, top) and the coordi...
Definition: dcommon.h:224
typedef HRESULT(WINAPI *PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(_In_ const D3D12_ROOT_SIGNATURE_DESC *pRootSignature
Definition: d2d1_1.h:124
D2D1_LINE_JOIN lineJoin
Definition: d2d1_1.h:523
D2D1_RECT_F sourceRectangle
Definition: d2d1_1.h:495
Definition: d2d1_1.h:198
EXTERN_C CONST IID IID_ID2D1Factory1
Definition: d2d1_1.h:663
Subset for used glyphs, send and discard font resource after each page
Definition: d2d1_1.h:581
Colors will be interpolated in premultiplied alpha space.
Definition: d2d1_1.h:391
GLenum GLenum GLenum input
Definition: glext.h:9938
Definition: ibxm.h:9
Definition: d2d1_1.h:82
interface ID2D1PrintControl ID2D1PrintControl
Definition: d2d1_1.h:2410
interface IDXGIDevice IDXGIDevice
Definition: dxgi.h:114
FLOAT lengthToEndSegment
Definition: d2d1_1.h:485
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: glext.h:6303
const GLubyte * c
Definition: glext.h:9812
GLboolean GLboolean GLboolean b
Definition: glext.h:6844
FLOAT dpiX
Definition: d2d1_1.h:406
Definition: d2d1_1.h:121
Definition: d2d1_1.h:66
Definition: d2d1_1.h:178
Subset for used glyphs, send and discard font resource after every five pages
Definition: d2d1_1.h:576
struct D2D1_POINT_DESCRIPTION D2D1_POINT_DESCRIPTION
Describes a point along a path.
interface ID2D1Mesh ID2D1Mesh
Definition: d2d1.h:3616
Definition: d2d1_1.h:122
The bitmap is created with default properties.
Definition: d2d1_1.h:138
The sRGB color space.
Definition: d2d1_1.h:281
D2D1_DEBUG_LEVEL
Indicates the debug level to be output by the debug layer.
Definition: d2d1.h:971
Definition: d2d1_1.h:117
Definition: d2d1_1.h:119
interface ID2D1GdiMetafile ID2D1GdiMetafile
Definition: d2d1_1.h:2404
#define D2D1_DEFAULT_FLATTENING_TOLERANCE
Definition: d2d1.h:82
The DWRITE_GLYPH_RUN_DESCRIPTION structure contains additional properties related to those in DWRITE_...
Definition: dwrite.h:3075
D2D_VECTOR_2F D2D1_VECTOR_2F
Definition: d2d1_1.h:396
Represents a 5-by-4 matrix.
Definition: dcommon.h:371
D2D1_PRIMITIVE_BLEND
A blend mode that applies to all primitives drawn on the context.
Definition: d2d1_1.h:341
Definition: d2d1_1.h:67
interface ID2D1DrawingStateBlock1 ID2D1DrawingStateBlock1
Definition: d2d1_1.h:2430
D2D1_COLOR_SPACE
Defines a color space.
Definition: d2d1_1.h:270
DEFINE_ENUM_FLAG_OPERATORS(D2D1_BITMAP_OPTIONS)
D2D1_DEBUG_LEVEL debugLevel
Definition: d2d1_1.h:640
GLsizei GLenum GLboolean sink
Definition: glext.h:6324
D2D1_INTERPOLATION_MODE interpolationMode
Definition: d2d1_1.h:510
#define NULL
Pointer to 0.
Definition: gctypes.h:65
interface ID2D1Effect ID2D1Effect
Definition: d2d1_1.h:53
GLenum type
Definition: glext.h:6233
D2D1_LINE_JOIN
Enum which describes the drawing of the corners on the line.
Definition: d2d1.h:426
interface ID2D1ImageBrush ID2D1ImageBrush
Definition: d2d1_1.h:2412
DXGI_FORMAT
Definition: dxgiformat.h:10
Definition: d2d1_1.h:200
D2D_VECTOR_3F D2D1_VECTOR_3F
Definition: d2d1_1.h:397
Definition: d2d1_1.h:184
Definition: d2d1_1.h:346
Definition: d2d1_1.h:102
D2D1_INTERPOLATION_MODE
This is used to specify the quality of image scaling with ID2D1DeviceContext::DrawImage and with the ...
Definition: d2d1_1.h:242
void WINAPI D2D1SinCos(_In_ FLOAT angle, _Out_ FLOAT *s, _Out_ FLOAT *c)
interface IDXGISurface IDXGISurface
Definition: d2d1.h:53
Geometry rendering will be performed on many threads in parallel, a single thread is the default.
Definition: d2d1_1.h:303
D2D1_INTERPOLATION_MODE interpolationMode
Definition: d2d1_1.h:498
D2D1_STROKE_TRANSFORM_TYPE
Defines how the world transform, dots per inch (dpi), and stroke width affect the shape of the pen us...
Definition: d2d1_1.h:315
A vector of 2 FLOAT values (x, y).
Definition: dcommon.h:187
interface ID2D1Multithread ID2D1Multithread
Definition: d2d1_1.h:2438
ID2D1Effect * effect
The effect whose input connection is being specified.
Definition: d2d1_1.h:457
interface IWICImagingFactory IWICImagingFactory
Definition: d2d1_1.h:33
interface ID2D1DeviceContext ID2D1DeviceContext
Definition: d2d1_1.h:2432
interface ID2D1CommandSink ID2D1CommandSink
Definition: d2d1_1.h:2406
struct D2D1_PRINT_CONTROL_PROPERTIES D2D1_PRINT_CONTROL_PROPERTIES
The creation properties for a ID2D1PrintControl object.
Description of a pixel format.
Definition: dcommon.h:155
Definition: d2d1_1.h:231
interface ID2D1RenderTarget ID2D1RenderTarget
Definition: d2d1.h:72
D2D1_THREADING_MODE threadingMode
Describes locking behavior of D2D resources
Definition: d2d1_1.h:639
interface ID2D1DrawingStateBlock ID2D1DrawingStateBlock
Definition: d2d1.h:3620
interface ID2D1Geometry ID2D1Geometry
Definition: d2d1.h:76
D2D1_POINT_2F unitTangentVector
Definition: d2d1_1.h:482
Describes mapped memory from the ID2D1Bitmap1::Map API.
Definition: d2d1_1.h:421
Definition: d2d1_1.h:172
The mapped pointer can be written to.
Definition: d2d1_1.h:225
D2D1_EXTEND_MODE
Enum which describes how to sample from a source outside its base tile.
Definition: d2d1.h:151
The interface implemented by the text analyzer's client to provide text to the analyzer....
Definition: dwrite.h:3021
D2D1_ANTIALIAS_MODE
Enum which describes the manner in which we render edges of non-text primitives.
Definition: d2d1.h:179
D2D1_DASH_STYLE dashStyle
Definition: d2d1_1.h:525
D2D1_BITMAP_OPTIONS bitmapOptions
Specifies how the bitmap can be used.
Definition: d2d1_1.h:412
D2D1_BITMAP_OPTIONS
Specifies how the bitmap can be used.
Definition: d2d1_1.h:132
struct D2D1_STROKE_STYLE_PROPERTIES1 D2D1_STROKE_STYLE_PROPERTIES1
This defines how geometries should be drawn and widened.
EXTERN_C CONST IID IID_ID2D1DrawingStateBlock1
Definition: d2d1_1.h:660
D2D1_RECT_F contentBounds
Definition: d2d1_1.h:556
EXTERN_C CONST IID IID_ID2D1Properties
Definition: d2d1_1.h:655
Definition: d2d1_1.h:69
Definition: d2d1_1.h:81
GLenum GLsizei GLenum GLenum const GLvoid * image
Definition: glext.h:6305
RECT D2D_RECT_L
Definition: dcommon.h:247
Stores an ordered pair of floats, typically the width and height of a rectangle.
Definition: dcommon.h:252
D2D1_UNIT_MODE
This specifies what units should be accepted by the D2D API.
Definition: d2d1_1.h:258
EXTERN_C CONST IID IID_ID2D1Multithread
Definition: d2d1_1.h:664
Definition: d2d1_1.h:297
UINT64 D2D1_TAG
Definition: d2d1.h:290
struct D2D1_IMAGE_BRUSH_PROPERTIES D2D1_IMAGE_BRUSH_PROPERTIES
Creation properties for an image brush.
GLint GLint GLint GLint GLint GLint y
Definition: glext.h:6295
Definition: d2d1_1.h:97
HRESULT WINAPI D2D1CreateDeviceContext(_In_ IDXGISurface *dxgiSurface, _In_opt_ CONST D2D1_CREATION_PROPERTIES *creationProperties, _Outptr_ ID2D1DeviceContext **d2dDeviceContext)
The bitmap can be specified as a target in ID2D1DeviceContext::SetTarget
Definition: d2d1_1.h:143
A vector of 4 FLOAT values (x, y, z, w).
Definition: dcommon.h:210
D2D1_PRINT_FONT_SUBSET_MODE
Defines when font resources should be subset during printing.
Definition: d2d1_1.h:570
interface ID2D1Factory ID2D1Factory
Definition: d2d1.h:71
UINT32 pitch
Definition: d2d1_1.h:423
GLint GLint GLint GLint GLint x
Definition: glext.h:6295
Definition: d2d1_1.h:246
Represents an x-coordinate and y-coordinate pair in two-dimensional space.
Definition: dcommon.h:175
Definition: d2d1_1.h:248
f32 a2
Definition: gx_regdef.h:5096
Describes the extend modes and the interpolation mode of an ID2D1BitmapBrush.
Definition: d2d1_1.h:506
struct D2D1_RENDERING_CONTROLS D2D1_RENDERING_CONTROLS
This controls advanced settings of the Direct2D imaging pipeline.
Definition: d2d1_1.h:177
FLOAT dashOffset
Definition: d2d1_1.h:526
Definition: d2d1_1.h:173
D2D1_BUFFER_PRECISION
This specifies the precision that should be used in buffers allocated by D2D.
Definition: d2d1_1.h:193
D2D1_LAYER_OPTIONS1
Specifies how the layer contents should be prepared.
Definition: d2d1_1.h:539
D2D1_MATRIX_3X2_F transform
Definition: d2d1_1.h:601
The stroke respects the world transform, the DPI, and the stroke width.
Definition: d2d1_1.h:321
D2D1_THREADING_MODE
This specifies the threading mode used while simultaneously creating the device, factory,...
Definition: d2d1_1.h:357
EXTERN_C CONST IID IID_ID2D1CommandSink
Definition: d2d1_1.h:648
GLenum GLsizei dataSize
Definition: glext.h:12030
D2D1_PROPERTY
This defines the list of system properties present on the root effect property interface.
Definition: d2d1_1.h:94
Definition: d2d1_1.h:179
EXTERN_C CONST IID IID_ID2D1Device
Definition: d2d1_1.h:662
Definition: d2d1_1.h:101
struct D2D1_EFFECT_INPUT_DESCRIPTION D2D1_EFFECT_INPUT_DESCRIPTION
This identifies a certain input connection of a certain effect.
FLOAT dpiY
Definition: d2d1_1.h:407
interface ID2D1PathGeometry1 ID2D1PathGeometry1
Definition: d2d1_1.h:2418
Definition: d2d1_1.h:287
Represents a 3-by-2 matrix.
Definition: dcommon.h:275
Definition: d2d1_1.h:80
GLuint index
Definition: glext.h:6671
interface ID2D1ColorContext ID2D1ColorContext
Definition: d2d1_1.h:31
Definition: d2d1_1.h:79
Definition: d2d1_1.h:74
D2D1_EXTEND_MODE extendModeX
Definition: d2d1_1.h:496
D2D1_SIZE_U tileSize
The size of allocated tiles used to render imaging effects.
Definition: d2d1_1.h:443
D2D_MATRIX_4X3_F D2D1_MATRIX_4X3_F
Definition: d2d1_1.h:472
interface IPrintDocumentPackageTarget IPrintDocumentPackageTarget
Definition: d2d1_1.h:34
Definition: d2d1_1.h:75
Definition: d2d1_1.h:100
This specifies the options while simultaneously creating the device, factory, and device context.
Definition: d2d1_1.h:633
interface ID2D1Device ID2D1Device
Definition: d2d1_1.h:52
A vector of 3 FLOAT values (x, y, z).
Definition: dcommon.h:198
Definition: d2d1_1.h:118
interface ID2D1GdiMetafileSink ID2D1GdiMetafileSink
Definition: d2d1_1.h:2402
EXTERN_C CONST IID IID_ID2D1PathGeometry1
Definition: d2d1_1.h:654
unsigned int BOOL
Definition: gctypes.h:51
interface ID2D1Bitmap ID2D1Bitmap
Definition: d2d1.h:3580
Text is measured using glyph ideal metrics whose values are independent to the current display resolu...
Definition: dcommon.h:40
uint32_t UINT32
Definition: coretypes.h:10
EXTERN_C CONST IID IID_ID2D1Effect
Definition: d2d1_1.h:656
std::string output
Definition: Config.FromFile.cpp:44
_Field_size_opt_(1) ID2D1ColorContext *colorContext
interface ID2D1Resource ID2D1Resource
Definition: d2d1.h:3576
Definition: d2d1_1.h:345
interface IWICColorContext IWICColorContext
Definition: d2d1_1.h:32
Definition: d2d1_1.h:199
GLuint color
Definition: glext.h:6883
interface ID2D1Brush ID2D1Brush
Definition: d2d1.h:77
The previous contents of the bitmap are discarded when it is mapped.
Definition: d2d1_1.h:230
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: glext.h:6293
D2D1_COLOR_SPACE colorSpace
Color space for vector graphics in XPS package
Definition: d2d1_1.h:624
Definition: d2d1_1.h:70
This identifies a certain input connection of a certain effect.
Definition: d2d1_1.h:451
D2D1_EXTEND_MODE extendModeX
Definition: d2d1_1.h:508
FLOAT WINAPI D2D1Vec3Length(_In_ FLOAT x, _In_ FLOAT y, _In_ FLOAT z)
Extended bitmap properties.
Definition: d2d1_1.h:403
def cd(new_dir)
Definition: build.py:40
Stores an ordered pair of integers, typically the width and height of a rectangle.
Definition: dcommon.h:264
D2D1_RECT_F inputRectangle
The rectangle which would be available on the specified input connection during render operations.
Definition: d2d1_1.h:468
D2D1_SUBPROPERTY
This defines the indices of sub-properties that may be present on any parent property.
Definition: d2d1_1.h:115
D2D1_PRINT_FONT_SUBSET_MODE fontSubset
Definition: d2d1_1.h:613
Definition: d2d1_1.h:261
Definition: d2d1_1.h:104
interface IDWriteRenderingParams IDWriteRenderingParams
Definition: d2d1.h:52
GLuint GLenum GLenum transform
Definition: glext.h:10314
Definition: d2d1_1.h:541
The scRGB color space.
Definition: d2d1_1.h:286
Definition: glslang_tab.cpp:133
The bitmap works with the ID2D1GdiInteropRenderTarget::GetDC API.
Definition: d2d1_1.h:159
GLsizei const GLfloat * value
Definition: glext.h:6709
UINT32 endSegment
Definition: d2d1_1.h:483
Definition: d2d1_1.h:180
Definition: d2d1_1.h:72
EXTERN_C CONST IID IID_ID2D1Bitmap1
Definition: d2d1_1.h:657
interface IDWriteFactory IDWriteFactory
Definition: d2d1_1.h:35
The stroke does not respect the world transform, but it does respect the DPI and the stroke width.
Definition: d2d1_1.h:327
The color space is described by accompanying data, such as a color profile.
Definition: d2d1_1.h:276
interface ID2D1GradientStopCollection1 ID2D1GradientStopCollection1
Definition: d2d1_1.h:2428
D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode
Definition: d2d1_1.h:598
Definition: d2d1_1.h:543
D2D1_EXTEND_MODE extendModeY
Definition: d2d1_1.h:509
All parameters related to pushing a layer.
Definition: d2d1_1.h:554
Represents a 4-by-4 matrix.
Definition: dcommon.h:350
Contains the position and color of a gradient stop.
Definition: d2d1.h:307
D2D1_PROPERTY_TYPE
This defines the valid property types that can be used in an effect property interface.
Definition: d2d1_1.h:64
Definition: d2d1_1.h:84
D2D1_COLOR_F WINAPI D2D1ConvertColorSpace(D2D1_COLOR_SPACE sourceColorSpace, D2D1_COLOR_SPACE destinationColorSpace, _In_ CONST D2D1_COLOR_F *color)
BYTE * bits
Definition: d2d1_1.h:424
EXTERN_C CONST IID IID_ID2D1PrintControl
Definition: d2d1_1.h:650
UINT32 inputIndex
The index of the input connection into the specified effect.
Definition: d2d1_1.h:462
Definition: d2d1_1.h:343
Definition: d2d1_1.h:85
Creation properties for an image brush.
Definition: d2d1_1.h:493
D2D1_TAG tag2
Definition: d2d1_1.h:600
Represents a 4-by-3 matrix.
Definition: dcommon.h:329
Definition: d2d1_1.h:83
#define TRUE
Definition: stb_vorbis.h:231
This controls advanced settings of the Direct2D imaging pipeline.
Definition: d2d1_1.h:432
Definition: d2d1_1.h:71
Definition: d2d1_1.h:181
POINT D2D_POINT_2L
Definition: dcommon.h:182
struct D2D1_CREATION_PROPERTIES D2D1_CREATION_PROPERTIES
This specifies the options while simultaneously creating the device, factory, and device context.
interface ID2D1Properties ID2D1Properties
Definition: d2d1_1.h:2420
Definition: d2d1_1.h:123
Definition: d2d1_1.h:195
D2D_RECT_L D2D1_RECT_L
Definition: d2d1_1.h:57
Definition: d2d1_1.h:76
Resources may be invoked from multiple threads. Resources use interlocked reference counting and thei...
Definition: d2d1_1.h:371
Definition: d2d1_1.h:73
D2D1_DEVICE_CONTEXT_OPTIONS options
Definition: d2d1_1.h:641
struct nk_device device
Definition: nk_common.c:44
interface ID2D1Bitmap1 ID2D1Bitmap1
Definition: d2d1_1.h:2424
The resulting factory and derived resources may only be invoked serially. Reference counts on resourc...
Definition: d2d1.h:994
GLenum GLuint GLenum GLsizei length
Definition: glext.h:6233
bf_uint8_t options
Definition: connect_ps4.c:78
The resulting factory may be invoked from multiple threads. Returned resources use interlocked refere...
Definition: d2d1.h:1000
Definition: d2d1_1.h:105
interface ID2D1StrokeStyle1 ID2D1StrokeStyle1
Definition: d2d1_1.h:2416
FLOAT miterLimit
Definition: d2d1_1.h:524
The text renderer interface represents a set of application-defined callbacks that perform rendering ...
Definition: d3d8types.h:57
Definition: d2d1_1.h:201
D2D_MATRIX_4X4_F D2D1_MATRIX_4X4_F
Definition: d2d1_1.h:473
Definition: d2d1_1.h:176
EXTERN_C CONST IID IID_ID2D1StrokeStyle1
Definition: d2d1_1.h:653
D2D_VECTOR_4F D2D1_VECTOR_4F
Definition: d2d1_1.h:398
Definition: d2d1_1.h:250
D2D1_MAP_OPTIONS
This describes how the individual mapping operation should be performed.
Definition: d2d1_1.h:209
D2D1_STROKE_TRANSFORM_TYPE transformType
How the nib of the stroke is influenced by the context properties.
Definition: d2d1_1.h:531
Do not subset, reuse font for all pages, send it after first page
Definition: d2d1_1.h:586
interface ID2D1Image ID2D1Image
Definition: d2d1.h:3578
The creation properties for a ID2D1PrintControl object.
Definition: d2d1_1.h:611
DWRITE_MEASURING_MODE
The measuring method used for text layout.
Definition: dcommon.h:35
This defines how geometries should be drawn and widened.
Definition: d2d1_1.h:518
EXTERN_C CONST IID IID_ID2D1GdiMetafileSink
Definition: d2d1_1.h:646