1 module aurora.directx.d2d1.d2d1_0; 2 3 version(Windows): 4 5 public import aurora.directx.com; 6 public import aurora.directx.dwrite; 7 public import aurora.directx.dxgi; 8 public import aurora.directx.wic; 9 10 public: 11 12 // 13 // Constants 14 // 15 16 alias ulong D2D1_TAG; 17 enum D2D1_DEFAULT_FLATTENING_TOLERANCE = 0.25f; 18 enum D2D1_INVALID_TAG = ulong.max; 19 enum D2D1_INVALID_PROPERTY_INDEX = uint.max; 20 enum D2D1_APPEND_ALLIGNED_ELEMENT = -1; 21 22 //D2DERR 23 enum D2DERR_BAD_NUMBER = 0x88990011; 24 enum D2DERR_BITMAP_BOUND_AS_TARGET = 0x88990025L; 25 enum D2DERR_BITMAP_CANNOT_DRAW = 0x88990021L; 26 enum D2DERR_CYCLIC_GRAPH = 0x88990020L; 27 enum D2DERR_DISPLAY_FORMAT_NOT_SUPPORTED = 0x88990009; 28 enum D2DERR_DISPLAY_STATE_INVALID = 0x88990006; 29 enum D2DERR_EFFECT_IS_NOT_REGISTERED = 0x88990028L; 30 enum D2DERR_EXCEEDS_MAX_BITMAP_SIZE = 0x8899001D; 31 enum D2DERR_INCOMPATIBLE_BRUSH_TYPES = 0x88990018; 32 enum D2DERR_INSUFFICIENT_BUFFER = 0x7A; 33 enum D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES = 0x88990026L; 34 enum D2DERR_INTERMEDIATE_TOO_LARGE = 0x88990027L; 35 enum D2DERR_INTERNAL_ERROR = 0x88990008; 36 enum D2DERR_INVALID_CALL = 0x8899000A; 37 enum D2DERR_INVALID_GRAPH_CONFIGURATION = 0x8899001EL; 38 enum D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION = 0x8899001FL; 39 enum D2DERR_INVALID_PROPERTY = 0x88990029L; 40 enum D2DERR_INVALID_TARGET = 0x88990024L; 41 enum D2DERR_LAYER_ALREADY_IN_USE = 0x88990013; 42 enum D2DERR_MAX_TEXTURE_SIZE_EXCEEDED = 0x8899000F; 43 enum D2DERR_NO_HARDWARE_DEVICE = 0x8899000B; 44 enum D2DERR_NO_SUBPROPERTIES = 0x8899002AL; 45 enum D2DERR_NOT_INITIALIZED = 0x88990002; 46 enum D2DERR_ORIGINAL_TARGET_NOT_BOUND = 0x88990023L; 47 enum D2DERR_OUTSTANDING_BITMAP_REFERENCES = 0x88990022L; 48 enum D2DERR_POP_CALL_DID_NOT_MATCH_PUSH = 0x88990014; 49 enum D2DERR_PRINT_FORMAT_NOT_SUPPORTED = 0x8899002CL; 50 enum D2DERR_PRINT_JOB_CLOSED = 0x8899002BL; 51 enum D2DERR_PUSH_POP_UNBALANCED = 0x88990016; 52 enum D2DERR_RECREATE_TARGET = 0x8899000C; 53 enum D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT = 0x88990017; 54 enum D2DERR_SCANNER_FAILED = 0x88990004; 55 enum D2DERR_SCREEN_ACCESS_DENIED = 0x88990005; 56 enum D2DERR_SHADER_COMPILE_FAILED = 0x8899000E; 57 enum D2DERR_TARGET_NOT_GDI_COMPATIBLE = 0x8899001A; 58 enum D2DERR_TEXT_EFFECT_IS_WRONG_TYPE = 0x8899001B; 59 enum D2DERR_TEXT_RENDERER_NOT_RELEASED = 0x8899001C; 60 enum D2DERR_TOO_MANY_SHADER_ELEMENTS = 0x8899000D; 61 enum D2DERR_TOO_MANY_TRANSFORM_INPUTS = 0x8899002DL; 62 enum D2DERR_UNSUPPORTED_OPERATION = 0x88990003; 63 enum D2DERR_UNSUPPORTED_PIXEL_FORMAT = 0x88982F80; 64 enum D2DERR_UNSUPPORTED_VERSION = 0x88990010; 65 enum D2DERR_WIN32_ERROR = 0x88990019; 66 enum D2DERR_WRONG_FACTORY = 0x88990012; 67 enum D2DERR_WRONG_RESOURCE_DOMAIN = 0x88990015; 68 enum D2DERR_WRONG_STATE = 0x88990001; 69 enum D2DERR_ZERO_VECTOR = 0x88990007; 70 71 enum int D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR = 0; 72 enum int D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR = 1; 73 enum int D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC = 2; 74 enum int D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR = 3; 75 enum int D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC = 4; 76 enum int D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC = 5; 77 enum int D2D1_INTERPOLATION_MODE_DEFINITION_FANT = 6; 78 enum int D2D1_INTERPOLATION_MODE_DEFINITION_MIPMAP_LINEAR = 7; 79 80 // 81 // Enumerations 82 // 83 84 public enum D2D1_ALPHA_MODE : int { 85 UNKNOWN = 0, 86 PREMULTIPLIED = 1, 87 STRAIGHT = 2, 88 IGNORE = 3 89 } 90 91 public enum D2D1_ANTIALIAS_MODE : int { 92 PER_PRIMITIVE = 0, 93 ALIASED = 1 94 } 95 96 public enum D2D1_ARC_SIZE { 97 SMALL = 0, 98 LARGE = 1 99 } 100 101 public enum D2D1_CAP_STYLE : int { 102 FLAT = 0, 103 SQUARE = 1, 104 ROUND = 2, 105 TRIANGLE = 3 106 } 107 108 public enum D2D1_COMBINE_MODE : int { 109 UNION = 0, 110 INTERSECT = 1, 111 XOR = 2, 112 EXCLUDE = 3 113 } 114 115 public enum D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS : int { 116 NONE = 0x00000000, 117 GDI_COMPATIBLE = 0x00000001 118 } 119 120 public enum D2D1_DASH_STYLE : int { 121 SOLID = 0, 122 DASH = 1, 123 DOT = 2, 124 DASH_DOT = 3, 125 DASH_DOT_DOT = 4, 126 CUSTOM = 5 127 } 128 129 public enum D2D1_DC_INITIALIZE_MODE : int { 130 COPY = 0, 131 CLEAR = 1 132 } 133 134 public enum D2D1_DEBUG_LEVEL : int { 135 NONE = 0, 136 ERROR = 1, 137 WARNING = 2, 138 INFORMATION = 3 139 } 140 141 enum D2D1_BITMAP_INTERPOLATION_MODE 142 { 143 NEAREST_NEIGHBOR = D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR, 144 LINEAR = D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR, 145 FORCE_DWORD = 0xffffffff 146 } 147 148 public enum D2D1_DRAW_TEXT_OPTIONS : int { 149 NO_SNAP = 0x00000001, 150 CLIP = 0x00000002, 151 NONE = 0x00000000, 152 ENABLE_COLOR_FONT = 0x00000004 153 } 154 155 public enum D2D1_EXTEND_MODE : int { 156 CLAMP = 0, 157 WRAP = 1, 158 MIRROR = 2 159 } 160 161 public enum D2D1_FEATURE_LEVEL : int { 162 LEVEL_DEFAULT = 0, 163 LEVEL_9 = 0x9100, 164 LEVEL_10 = 0xa000 165 } 166 167 public enum D2D1_FIGURE_BEGIN : int { 168 FILLED = 0, 169 HOLLOW = 1 170 } 171 172 public enum D2D1_FIGURE_END : int { 173 OPEN = 0, 174 CLOSED = 1 175 } 176 177 public enum D2D1_FILL_MODE : int { 178 ALTERNATE = 0, 179 WINDING = 1 180 } 181 182 public enum D2D1_FACTORY_TYPE : int { 183 SINGLE_THREADED = 0, 184 MULTI_THREADED = 1 185 } 186 187 public enum D2D1_GAMMA : int { 188 GAMMA_2_2 = 0, 189 GAMMA_1_0 = 1 190 } 191 192 public enum D2D1_GEOMETRY_RELATION : int { 193 UNKNOWN = 0, 194 DISJOINT = 1, 195 IS_CONTAINED = 2, 196 CONTAINS = 3, 197 OVERLAP = 4 198 } 199 200 public enum D2D1_GEOMETRY_SIMPLIFICATION_OPTION : int { 201 CUBICS_AND_LINES = 0, 202 LINES = 1 203 } 204 205 public enum D2D1_LAYER_OPTIONS : int { 206 NONE = 0x00000000, 207 INITIALIZE_FOR_CLEARTYPE = 0x00000001 208 } 209 210 public enum D2D1_LINE_JOIN : int { 211 MITER = 0, 212 BEVEL = 1, 213 ROUND = 2, 214 MITER_OR_BEVEL = 3 215 } 216 217 public enum D2D1_OPACITY_MASK_CONTENT : int { 218 GRAPHICS = 0, 219 TEXT_NATURAL = 1, 220 TEXT_GDI_COMPATIBLE = 2 221 } 222 223 public enum D2D1_PATH_SEGMENT : int { 224 NONE = 0x00000000, 225 FORCE_UNSTROKED = 0x00000001, 226 FORCE_ROUND_LINE_JOIN = 0x00000002 227 } 228 229 public enum D2D1_PRESENT_OPTIONS : int { 230 NONE = 0x00000000, 231 RETAIN_CONTENTS = 0x00000001, 232 IMMEDIATELY = 0x00000002 233 } 234 235 public enum D2D1_RENDER_TARGET_TYPE : int { 236 DEFAULT = 0, 237 SOFTWARE = 1, 238 HARDWARE = 2 239 } 240 241 public enum D2D1_RENDER_TARGET_USAGE : int { 242 NONE = 0x00000000, 243 FORCE_BITMAP_REMOTING = 0x00000001, 244 GDI_COMPATIBLE = 0x00000002 245 } 246 247 public enum D2D1_SWEEP_DIRECTION : int { 248 COUNTER_CLOCKWISE = 0, 249 CLOCKWISE = 1 250 } 251 252 public enum D2D1_TEXT_ANTIALIAS_MODE : int { 253 DEFAULT = 0, 254 CLEARTYPE = 1, 255 GRAYSCALE = 2, 256 ALIASED = 3 257 } 258 259 public enum D2D1_WINDOW_STATE : int { 260 NONE = 0x0000000, 261 OCCLUDED = 0x0000001 262 } 263 264 // 265 // Structures 266 // 267 alias D3DCOLORVALUE D2D_COLOR_F; 268 alias D2D_COLOR_F D2D1_COLOR_F; 269 270 public struct D2D_MATRIX_3X2_F { 271 float _11; 272 float _12; 273 float _21; 274 float _22; 275 float _31; 276 float _32; 277 } 278 alias D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F; 279 280 public struct D2D_MATRIX_4X3_F { 281 union { 282 struct { 283 float _11, _12, _13; 284 float _21, _22, _23; 285 float _31, _32, _33; 286 float _41, _42, _43; 287 } 288 float[4][3] m; 289 } 290 } 291 alias D2D_MATRIX_4X3_F D2D1_MATRIX_4X3_F; 292 293 public struct D2D_MATRIX_4X4_F { 294 union { 295 struct { 296 float _11, _12, _13, _14; 297 float _21, _22, _23, _24; 298 float _31, _32, _33, _34; 299 float _41, _42, _43, _44; 300 } 301 float[4][4] m; 302 } 303 } 304 alias D2D_MATRIX_4X4_F D2D1_MATRIX_4X4_F; 305 306 public struct D2D_MATRIX_5X4_F { 307 union { 308 struct { 309 float _11, _12, _13, _14; 310 float _21, _22, _23, _24; 311 float _31, _32, _33, _34; 312 float _41, _42, _43, _44; 313 float _51, _52, _53, _54; 314 } 315 float[5][4] m; 316 } 317 } 318 alias D2D_MATRIX_5X4_F D2D1_MATRIX_5X4_F; 319 320 public struct D2D_POINT_2F { 321 float x; 322 float y; 323 } 324 alias D2D_POINT_2F D2D1_POINT_2F; 325 326 public struct POINT { 327 long x; 328 long y; 329 } 330 alias POINT D2D_POINT_2L; 331 332 public struct D2D_POINT_2U { 333 uint x; 334 uint y; 335 } 336 alias D2D_POINT_2U D2D1_POINT_2U; 337 338 public struct D2D_RECT_F { 339 float left; 340 float top; 341 float right; 342 float bottom; 343 } 344 alias D2D_RECT_F D2D1_RECT_F; 345 346 alias RECT D2D_RECT_L; 347 348 public struct D2D_RECT_U { 349 uint left; 350 uint top; 351 uint right; 352 uint bottom; 353 } 354 alias D2D_RECT_U D2D1_RECT_U; 355 356 public struct D2D_SIZE_F { 357 float width; 358 float height; 359 } 360 alias D2D_SIZE_F D2D1_SIZE_F; 361 362 public struct D2D_SIZE_U { 363 uint width; 364 uint height; 365 } 366 alias D2D_SIZE_U D2D1_SIZE_U; 367 368 public struct D2D_VECTOR_2F { 369 float x; 370 float y; 371 } 372 373 public struct D2D_VECTOR_3F { 374 float x; 375 float y; 376 float z; 377 } 378 379 public struct D2D_VECTOR_4F { 380 float x; 381 float y; 382 float z; 383 float w; 384 } 385 386 public struct D2D1_ARC_SEGMENT { 387 D2D1_POINT_2F point; 388 D2D1_SIZE_F size; 389 float rotationAngle; 390 D2D1_SWEEP_DIRECTION sweepDirection; 391 D2D1_ARC_SIZE arcSize; 392 } 393 394 public struct D2D1_BEZIER_SEGMENT { 395 D2D1_POINT_2F point1; 396 D2D1_POINT_2F point2; 397 D2D1_POINT_2F point3; 398 } 399 400 public struct D2D1_BITMAP_BRUSH_PROPERTIES { 401 D2D1_EXTEND_MODE extendModeX; 402 D2D1_EXTEND_MODE extendModeY; 403 D2D1_BITMAP_INTERPOLATION_MODE interpolationMode; 404 } 405 406 public struct D2D1_BITMAP_PROPERTIES { 407 D2D1_PIXEL_FORMAT pixelFormat; 408 float dpiX; 409 float dpiY; 410 } 411 412 public struct D2D1_BRUSH_PROPERTIES { 413 float opacity; 414 D2D1_MATRIX_3X2_F transform; 415 } 416 417 public struct D2D1_DRAWING_STATE_DESCRIPTION { 418 D2D1_ANTIALIAS_MODE antialiasMode; 419 D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode; 420 D2D1_TAG tag1; 421 D2D1_TAG tag2; 422 D2D1_MATRIX_3X2_F transform; 423 } 424 425 public struct D2D1_ELLIPSE { 426 D2D1_POINT_2F point; 427 float radiusX; 428 float radiusY; 429 } 430 431 public struct D2D1_FACTORY_OPTIONS { 432 D2D1_DEBUG_LEVEL debugLevel; 433 } 434 435 public struct D2D1_GRADIENT_STOP { 436 FLOAT position; 437 D2D1_COLOR_F color; 438 } 439 440 public struct D2D1_HWND_RENDER_TARGET_PROPERTIES { 441 HWND hwnd; 442 D2D1_SIZE_U pixelSize; 443 D2D1_PRESENT_OPTIONS presentOptions; 444 } 445 446 public struct D2D1_LAYER_PARAMETERS { 447 D2D1_RECT_F contentBounds; 448 ID2D1Geometry geometricMask; 449 D2D1_ANTIALIAS_MODE maskAntialiasMode; 450 D2D1_MATRIX_3X2_F maskTransform; 451 FLOAT opacity; 452 ID2D1Brush opacityBrush; 453 D2D1_LAYER_OPTIONS layerOptions; 454 } 455 456 public struct D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES { 457 D2D1_POINT_2F startPoint; 458 D2D1_POINT_2F endPoint; 459 } 460 461 public struct D2D1_PIXEL_FORMAT { 462 DXGI_FORMAT format; 463 D2D1_ALPHA_MODE alphaMode; 464 } 465 466 public struct D2D1_QUADRATIC_BEZIER_SEGMENT { 467 D2D1_POINT_2F point1; 468 D2D1_POINT_2F point2; 469 } 470 471 public struct D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES { 472 D2D1_POINT_2F center; 473 D2D1_POINT_2F gradientOriginOffset; 474 float radiusX; 475 float radiusY; 476 } 477 478 public struct D2D1_RENDER_TARGET_PROPERTIES { 479 D2D1_RENDER_TARGET_TYPE type; 480 D2D1_PIXEL_FORMAT pixelFormat; 481 float dpiX; 482 float dpiY; 483 D2D1_RENDER_TARGET_USAGE usage; 484 D2D1_FEATURE_LEVEL minLevel; 485 } 486 487 public struct D2D1_ROUNDED_RECT { 488 D2D1_RECT_F rect; 489 float radiusX; 490 float radiusY; 491 } 492 493 public struct D2D1_STROKE_STYLE_PROPERTIES { 494 D2D1_CAP_STYLE startCap; 495 D2D1_CAP_STYLE endCap; 496 D2D1_CAP_STYLE dashCap; 497 D2D1_LINE_JOIN lineJoin; 498 float miterLimit; 499 D2D1_DASH_STYLE dashStyle; 500 float dashOffset; 501 } 502 503 public struct D2D1_TRIANGLE { 504 D2D1_POINT_2F point1; 505 D2D1_POINT_2F point2; 506 D2D1_POINT_2F point3; 507 } 508 509 // 510 // Interfaces 511 // 512 513 mixin(uuid!(ID2D1Bitmap, "a2296057-ea42-4099-983b-539fb6505426")); 514 public interface ID2D1Bitmap : ID2D1Image 515 { 516 extern(Windows): 517 HRESULT CopyFromBitmap(const D2D1_POINT_2U *destPoint, ID2D1Bitmap bitmap, const D2D1_RECT_U *srcRect); 518 HRESULT CopyFromMemory(const D2D1_RECT_U *dstRect, const void *srcData, uint pitch); 519 HRESULT CopyFromRenderTarget(const D2D1_POINT_2U *destPoint, ID2D1RenderTarget renderTarget, const D2D1_RECT_U *srcRect); 520 void GetDpi(float *dpiX, float *dpiY); 521 D2D1_PIXEL_FORMAT GetPixelFormat(); 522 D2D1_SIZE_U GetPixelSize(); 523 D2D1_SIZE_F GetSize(); 524 } 525 526 mixin(uuid!(ID2D1BitmapBrush, "2cd906aa-12e2-11dc-9fed-001143a055f9")); 527 public interface ID2D1BitmapBrush : ID2D1Brush 528 { 529 extern(Windows): 530 void GetBitmap(ID2D1Bitmap *bitmap); 531 D2D1_EXTEND_MODE GetExtendModeX(); 532 D2D1_EXTEND_MODE GetExtendModeY(); 533 D2D1_BITMAP_INTERPOLATION_MODE GetInterpolationMode(); 534 void SetBitmap(ID2D1Bitmap bitmap); 535 void SetExtendModeX(D2D1_EXTEND_MODE extendModeX); 536 void SetExtendModeY(D2D1_EXTEND_MODE extendModeY); 537 void SetInterpolationMode(D2D1_BITMAP_INTERPOLATION_MODE interpolationMode); 538 } 539 540 mixin(uuid!(ID2D1BitmapRenderTarget, "2cd90695-12e2-11dc-9fed-001143a055f9")); 541 public interface ID2D1BitmapRenderTarget : ID2D1RenderTarget 542 { 543 extern(Windows): 544 HRESULT GetBitmap(ID2D1Bitmap *bitmap); 545 } 546 547 mixin(uuid!(ID2D1Brush, "2cd906a8-12e2-11dc-9fed-001143a055f9")); 548 public interface ID2D1Brush : ID2D1Resource 549 { 550 extern(Windows): 551 float GetOpacity(); 552 void GetTransform(D2D1_MATRIX_3X2_F *transform); 553 void SetOpacity(float opacity); 554 void SetTransform(const D2D1_MATRIX_3X2_F *transform); 555 } 556 557 mixin(uuid!(ID2D1DCRenderTarget, "1c51bc64-de61-46fd-9899-63a5d8f03950")); 558 public interface ID2D1DCRenderTarget : ID2D1RenderTarget 559 { 560 extern(Windows): 561 HRESULT BindDC(const HDC hDC, const RECT *pSubRect); 562 } 563 564 mixin(uuid!(ID2D1DrawingStateBlock, "28506e39-ebf6-46a1-bb47-fd85565ab957")); 565 public interface ID2D1DrawingStateBlock : ID2D1Resource 566 { 567 extern(Windows): 568 void GetDescription(D2D1_DRAWING_STATE_DESCRIPTION *stateDescription); 569 void GetTextRenderingParams(IDWriteRenderingParams *textRenderingParams); 570 void SetDescription(D2D1_DRAWING_STATE_DESCRIPTION *stateDescription); 571 void SetTextRenderingParams(IDWriteRenderingParams textRenderingParams = null); 572 } 573 574 mixin(uuid!(ID2D1EllipseGeometry, "2cd906a4-12e2-11dc-9fed-001143a055f9")); 575 public interface ID2D1EllipseGeometry : ID2D1Geometry 576 { 577 extern(Windows): 578 void GetEllipse(D2D1_ELLIPSE *ellipse); 579 } 580 581 mixin(uuid!(ID2D1Factory, "2cd906a4-12e2-11dc-9fed-001143a055f9")); 582 public interface ID2D1Factory : IUnknown 583 { 584 extern(Windows): 585 HRESULT CreateDCRenderTarget(const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, ID2D1DCRenderTarget *dcRenderTarget); 586 HRESULT CreateDrawingStateBlock(const D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription, IDWriteRenderingParams textRenderingParams, ID2D1DrawingStateBlock *drawingStateBlock); 587 HRESULT CreateDrawingStateBlock(ID2D1DrawingStateBlock *drawingStateBlock); 588 HRESULT CreateDrawingStateBlock(const D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription, ID2D1DrawingStateBlock *drawingStateBlock); 589 HRESULT CreateDxgiSurfaceRenderTarget(IDXGISurface dxgiSurface, const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, ID2D1RenderTarget *renderTarget); 590 HRESULT CreateEllipseGeometry(const D2D1_ELLIPSE *ellipse, ID2D1EllipseGeometry *ellipseGeometry); 591 HRESULT CreateGeometryGroup(D2D1_FILL_MODE fillMode, ID2D1Geometry *geometries, uint geometriesCount, ID2D1GeometryGroup *geometryGroup); 592 HRESULT CreateHwndRenderTarget(D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, D2D1_HWND_RENDER_TARGET_PROPERTIES *hwndRenderTargetProperties, ID2D1HwndRenderTarget *hwndRenderTarget); 593 HRESULT CreatePathGeometry(ID2D1PathGeometry *pathGeometry); 594 HRESULT CreateRectangleGeometry(const D2D1_RECT_F *rectangle, ID2D1RectangleGeometry *rectangleGeometry); 595 HRESULT CreateRoundedRectangleGeometry(const D2D1_ROUNDED_RECT *roundedRectangle, ID2D1RoundedRectangleGeometry *roundedRectangleGeometry); 596 HRESULT CreateStrokeStyle(const D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties, const(float) *dashes, uint dashesCount, ID2D1StrokeStyle *strokeStyle); 597 HRESULT CreateTransformedGeometry(ID2D1Geometry sourceGeometry, const D2D1_MATRIX_3X2_F *transform, ID2D1TransformedGeometry *transformedGeometry); 598 HRESULT CreateWicBitmapRenderTarget(IWICBitmap target, const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, ID2D1RenderTarget *renderTarget); 599 void GetDesktopDpi(float *dpiX, float *dpiY); 600 HRESULT ReloadSystemMetrics(); 601 } 602 603 mixin(uuid!(ID2D1GdiInteropRenderTarget, "e0db51c3-6f77-4bae-b3d5-e47509b35838")); 604 public interface ID2D1GdiInteropRenderTarget : IUnknown 605 { 606 extern(Windows): 607 HRESULT GetDC(D2D1_DC_INITIALIZE_MODE mode, HDC *hdc); 608 HRESULT ReleaseDC(RECT *update); 609 } 610 611 mixin(uuid!(ID2D1Geometry, "2cd906a1-12e2-11dc-9fed-001143a055f9")); 612 public interface ID2D1Geometry : ID2D1Resource 613 { 614 extern(Windows): 615 HRESULT CombineWithGeometry(ID2D1Geometry inputGeometry, D2D1_COMBINE_MODE combineMode, D2D1_MATRIX_3X2_F *inputGeometryTransform, ID2D1SimplifiedGeometrySink geometrySink); 616 HRESULT CombineWithGeometry(ID2D1Geometry inputGeometry, D2D1_COMBINE_MODE combineMode, const D2D1_MATRIX_3X2_F *inputGeometryTransform, float flatteningTolerance, ID2D1SimplifiedGeometrySink geometrySink); 617 HRESULT CompareWithGeometry(ID2D1Geometry inputGeometry, const D2D1_MATRIX_3X2_F *inputGeometryTransform, D2D1_GEOMETRY_RELATION *relation); 618 HRESULT CompareWithGeometry(ID2D1Geometry inputGeometry, const D2D1_MATRIX_3X2_F *inputGeometryTransform, float flatteningTolerance, D2D1_GEOMETRY_RELATION *relation); 619 HRESULT ComputeArea(const D2D1_MATRIX_3X2_F *worldTransform, float *area); 620 HRESULT ComputeArea(const D2D1_MATRIX_3X2_F *worldTransform, float flatteningTolerance, float *area); 621 HRESULT ComputeLength(const D2D1_MATRIX_3X2_F *worldTransform, float *length); 622 HRESULT ComputeLength(const D2D1_MATRIX_3X2_F *worldTransform, float flatteningTolerance, float *length); 623 HRESULT ComputePointAtLength(float length, const D2D1_MATRIX_3X2_F *worldTransform, D2D1_POINT_2F *point, D2D1_POINT_2F *unitTangentVector); 624 HRESULT ComputePointAtLength(float length, const D2D1_MATRIX_3X2_F *worldTransform, float flatteningTolerance, D2D1_POINT_2F *point, D2D1_POINT_2F *unitTangentVector); 625 HRESULT FillContainsPoint(D2D1_POINT_2F point, const D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains); 626 HRESULT FillContainsPoint(D2D1_POINT_2F point, const D2D1_MATRIX_3X2_F *worldTransform, float flatteningTolerance, BOOL *contains); 627 HRESULT GetBounds(const D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds); 628 HRESULT GetWidenedBounds(float strokeWidth, ID2D1StrokeStyle strokeStyle, const D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds); 629 HRESULT GetWidenedBounds(float strokeWidth, ID2D1StrokeStyle strokeStyle, const D2D1_MATRIX_3X2_F *worldTransform, float flatteningTolerance, D2D1_RECT_F *bounds); 630 HRESULT Outline(const D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink geometrySink); 631 HRESULT Outline(const D2D1_MATRIX_3X2_F *worldTransform, float flatteningTolerance, ID2D1SimplifiedGeometrySink geometrySink); 632 HRESULT Simplify(D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, const D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink geometrySink); 633 HRESULT Simplify(D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, const D2D1_MATRIX_3X2_F *worldTransform, float flatteningTolerance, ID2D1SimplifiedGeometrySink geometrySink); 634 HRESULT StrokeContainsPoint(D2D1_POINT_2F point, float strokeWidth, ID2D1StrokeStyle strokeStyle, const D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains); 635 HRESULT StrokeContainsPoint(D2D1_POINT_2F point, float strokeWidth, ID2D1StrokeStyle strokeStyle, const D2D1_MATRIX_3X2_F *worldTransform, float flatteningTolerance, BOOL *contains); 636 HRESULT Tessellate(const D2D1_MATRIX_3X2_F *worldTransform, ID2D1TessellationSink tessellationSink); 637 HRESULT Tessellate(const D2D1_MATRIX_3X2_F *worldTransform, float flatteningTolerance, ID2D1TessellationSink tessellationSink); 638 HRESULT Widen(float strokeWidth, ID2D1StrokeStyle strokeStyle, const D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink geometrySink); 639 HRESULT Widen(float strokeWidth, ID2D1StrokeStyle strokeStyle, const D2D1_MATRIX_3X2_F *worldTransform, float flatteningTolerance, ID2D1SimplifiedGeometrySink geometrySink); 640 } 641 642 mixin(uuid!(ID2D1GeometryGroup, "2cd906a6-12e2-11dc-9fed-001143a055f9")); 643 public interface ID2D1GeometryGroup : ID2D1Geometry 644 { 645 extern(Windows): 646 void GetSourceGeometries(const ID2D1Geometry *geometries, uint geometriesCount); 647 D2D1_FILL_MODE GetFillMode(); 648 uint GetSourceGeometryCount(); 649 } 650 651 mixin(uuid!(ID2D1GeometrySink, "2cd9069f-12e2-11dc-9fed-001143a055f9")); 652 public interface ID2D1GeometrySink : ID2D1SimplifiedGeometrySink 653 { 654 extern(Windows): 655 void AddArc(D2D1_ARC_SEGMENT *arc); 656 void AddBezier(const D2D1_BEZIER_SEGMENT *bezier); 657 void AddLine(D2D1_POINT_2F point); 658 void AddQuadraticBezier(const D2D1_QUADRATIC_BEZIER_SEGMENT *bezier); 659 void AddQuadraticBeziers(const D2D1_QUADRATIC_BEZIER_SEGMENT *beziers, uint bezierCount); 660 } 661 662 mixin(uuid!(ID2D1GradientStopCollection, "2cd906a7-12e2-11dc-9fed-001143a055f9")); 663 public interface ID2D1GradientStopCollection : ID2D1Resource 664 { 665 extern(Windows): 666 D2D1_GAMMA GetColorInterpolationGamma(); 667 D2D1_EXTEND_MODE GetExtendMode(); 668 uint GetGradientStopCount(); 669 void GetGradientStops(D2D1_GRADIENT_STOP *gradientStops, uint gradientStopsCount); 670 } 671 672 mixin(uuid!(ID2D1HwndRenderTarget, "2cd90698-12e2-11dc-9fed-001143a055f9")); 673 public interface ID2D1HwndRenderTarget : ID2D1RenderTarget 674 { 675 extern(Windows): 676 D2D1_WINDOW_STATE CheckWindowState(); 677 HWND GetHwnd(); 678 HRESULT Resize(D2D1_SIZE_U *pixelSize); 679 } 680 681 mixin(uuid!(ID2D1Image, "65019f75-8da2-497c-b32c-dfa34e48ede6")); 682 public interface ID2D1Image : ID2D1Resource 683 { 684 extern(Windows): 685 } 686 687 mixin(uuid!(ID2D1Layer, "2cd9069b-12e2-11dc-9fed-001143a055f9")); 688 public interface ID2D1Layer : ID2D1Resource 689 { 690 extern(Windows): 691 D2D1_SIZE_F GetSize(); 692 } 693 694 mixin(uuid!(ID2D1LinearGradientBrush, "2cd906ab-12e2-11dc-9fed-001143a055f9")); 695 public interface ID2D1LinearGradientBrush : ID2D1Brush 696 { 697 extern(Windows): 698 D2D1_POINT_2F GetEndPoint(); 699 void GetGradientStopCollection(ID2D1GradientStopCollection *gradientStopCollection); 700 D2D1_POINT_2F GetStartPoint(); 701 void SetEndPoint(D2D1_POINT_2F endPoint); 702 void SetStartPoint(D2D1_POINT_2F startPoint); 703 } 704 705 mixin(uuid!(ID2D1Mesh, "2cd906c2-12e2-11dc-9fed-001143a055f9")); 706 public interface ID2D1Mesh : ID2D1Resource 707 { 708 extern(Windows): 709 HRESULT Open(ID2D1TessellationSink *tessellationSink); 710 } 711 712 mixin(uuid!(ID2D1PathGeometry, "2cd906a5-12e2-11dc-9fed-001143a055f9")); 713 public interface ID2D1PathGeometry : ID2D1Geometry 714 { 715 extern(Windows): 716 HRESULT GetFigureCount(uint *count); 717 HRESULT GetSegmentCount(uint *count); 718 HRESULT Open(ID2D1GeometrySink *geometrySink); 719 HRESULT Stream(ID2D1GeometrySink geometrySink); 720 } 721 722 mixin(uuid!(ID2D1RadialGradientBrush, "2cd906ac-12e2-11dc-9fed-001143a055f9")); 723 public interface ID2D1RadialGradientBrush : ID2D1Brush 724 { 725 extern(Windows): 726 D2D1_POINT_2F GetCenter(); 727 D2D1_POINT_2F GetGradientOriginOffset(); 728 void GetGradientStopCollection(ID2D1GradientStopCollection *gradientStopCollection); 729 float GetRadiusX(); 730 float GetRadiusY(); 731 void SetCenter(D2D1_POINT_2F center); 732 void SetGradientOriginOffset(D2D1_POINT_2F gradientOriginOffset); 733 void SetRadiusX(float radiusX); 734 void SetRadiusY(float radiusY); 735 } 736 737 mixin(uuid!(ID2D1RectangleGeometry, "2cd906a2-12e2-11dc-9fed-001143a055f9")); 738 public interface ID2D1RectangleGeometry : ID2D1Geometry 739 { 740 extern(Windows): 741 void GetRect(D2D1_RECT_F *rect); 742 } 743 744 mixin(uuid!(ID2D1RenderTarget, "2cd90694-12e2-11dc-9fed-001143a055f9")); 745 public interface ID2D1RenderTarget : ID2D1Resource 746 { 747 extern(Windows): 748 void BeginDraw(); 749 void Clear(const D2D1_COLOR_F *clearColor = null); 750 HRESULT CreateBitmap(D2D1_SIZE_U size, const D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap *bitmap); 751 HRESULT CreateBitmap(D2D1_SIZE_U size, void *srcData, uint pitch, const D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap *bitmap); 752 HRESULT CreateBitmapBrush(ID2D1Bitmap bitmap, D2D1_BITMAP_BRUSH_PROPERTIES *bitmapBrushProperties, D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1BitmapBrush *bitmapBrush); 753 HRESULT CreateBitmapBrush(ID2D1Bitmap bitmap, ID2D1BitmapBrush *bitmapBrush); 754 HRESULT CreateBitmapBrush(ID2D1Bitmap bitmap, const D2D1_BITMAP_BRUSH_PROPERTIES *bitmapBrushProperties, ID2D1BitmapBrush *bitmapBrush); 755 HRESULT CreateBitmapFromWicBitmap(IWICBitmapSource wicBitmapSource, ID2D1Bitmap *bitmap); 756 HRESULT CreateBitmapFromWicBitmap(IWICBitmapSource wicBitmapSource, const D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap *bitmap); 757 HRESULT CreateCompatibleRenderTarget(D2D1_SIZE_F desiredSize, D2D1_SIZE_U desiredPixelSize, D2D1_PIXEL_FORMAT desiredFormat, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, ID2D1BitmapRenderTarget *bitmapRenderTarget); 758 HRESULT CreateCompatibleRenderTarget(D2D1_SIZE_F *desiredSize, D2D1_SIZE_U *desiredPixelSize, D2D1_PIXEL_FORMAT *desiredFormat, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, ID2D1BitmapRenderTarget *bitmapRenderTarget); 759 HRESULT CreateCompatibleRenderTarget(ID2D1BitmapRenderTarget *bitmapRenderTarget); 760 HRESULT CreateCompatibleRenderTarget(D2D1_SIZE_F desiredSize, ID2D1BitmapRenderTarget *bitmapRenderTarget); 761 HRESULT CreateCompatibleRenderTarget(D2D1_SIZE_F desiredSize, D2D1_SIZE_U desiredPixelSize, ID2D1BitmapRenderTarget *bitmapRenderTarget); 762 HRESULT CreateCompatibleRenderTarget(D2D1_SIZE_F desiredSize, D2D1_SIZE_U desiredPixelSize, D2D1_PIXEL_FORMAT desiredFormat, ID2D1BitmapRenderTarget *bitmapRenderTarget); 763 HRESULT CreateGradientStopCollection(const D2D1_GRADIENT_STOP *gradientStops, uint gradientStopsCount, D2D1_GAMMA colorInterpolationGamma, D2D1_EXTEND_MODE extendMode, ID2D1GradientStopCollection *gradientStopCollection); 764 HRESULT CreateGradientStopCollection(D2D1_GRADIENT_STOP *gradientStops, uint gradientStopsCount, ID2D1GradientStopCollection *gradientStopCollection); 765 HRESULT CreateLayer(ID2D1Layer *layer); 766 HRESULT CreateLayer(D2D1_SIZE_F size, ID2D1Layer *layer); 767 HRESULT CreateLayer(D2D1_SIZE_F *size, ID2D1Layer *layer); 768 HRESULT CreateLinearGradientBrush(const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushProperties, ID2D1GradientStopCollection gradientStopCollection, ID2D1LinearGradientBrush *linearGradientBrush); 769 HRESULT CreateLinearGradientBrush(const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushProperties, const D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1GradientStopCollection gradientStopCollection, ID2D1LinearGradientBrush *linearGradientBrush); 770 HRESULT CreateMesh(ID2D1Mesh *mesh); 771 HRESULT CreateRadialGradientBrush(const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushProperties, const D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1GradientStopCollection gradientStopCollection, ID2D1RadialGradientBrush *radialGradientBrush); 772 HRESULT CreateRadialGradientBrush(const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushProperties, ID2D1GradientStopCollection gradientStopCollection, ID2D1RadialGradientBrush *radialGradientBrush); 773 HRESULT CreateSharedBitmap(IID* riid, void *data, D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap *bitmap); 774 HRESULT CreateSolidColorBrush(const D2D1_COLOR_F *color, ID2D1SolidColorBrush *solidColorBrush); 775 HRESULT CreateSolidColorBrush(const D2D1_COLOR_F *color, const D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1SolidColorBrush *solidColorBrush); 776 void DrawBitmap(ID2D1Bitmap bitmap, const D2D1_RECT_F *destinationRectangle = null, float opacity = 1.0f, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLATION_MODE.LINEAR, const D2D1_RECT_F *sourceRectangle = null); 777 void DrawEllipse(const D2D1_ELLIPSE *ellipse, ID2D1Brush brush, float strokeWidth = 1.0f, ID2D1StrokeStyle strokeStyle = null); 778 void DrawGeometry(ID2D1Geometry geometry, ID2D1Brush brush, float strokeWidth = 1.0f, ID2D1StrokeStyle strokeStyle = null); 779 void DrawGlyphRun(D2D1_POINT_2F baselineOrigin, const DWRITE_GLYPH_RUN *glyphRun, ID2D1Brush foregroundBrush, DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE.NATURAL); 780 void DrawLine(D2D1_POINT_2F point0, D2D1_POINT_2F point1, ID2D1Brush brush, float strokeWidth = 1.0f, ID2D1StrokeStyle strokeStyle = null); 781 void DrawRectangle(const D2D1_RECT_F *rect, ID2D1Brush brush, float strokeWidth = 1.0f, ID2D1StrokeStyle strokeStyle = null); 782 void DrawRoundedRectangle(const D2D1_ROUNDED_RECT *roundedRect, ID2D1Brush brush, float strokeWidth = 1.0f, ID2D1StrokeStyle strokeStyle = null); 783 void DrawText(wchar *string, uint stringLength, IDWriteTextFormat textFormat, const D2D1_RECT_F *layoutRect, ID2D1Brush defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS.NONE, DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE.NATURAL); 784 void DrawTextLayout(D2D1_POINT_2F origin, IDWriteTextLayout textLayout, ID2D1Brush defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS.NONE); 785 HRESULT EndDraw(D2D1_TAG *tag1 = null, D2D1_TAG *tag2 = null); 786 void FillEllipse(const D2D1_ELLIPSE *ellipse, ID2D1Brush brush); 787 void FillGeometry(ID2D1Geometry geometry, ID2D1Brush brush, ID2D1Brush opacityBrush = null); 788 void FillMesh(ID2D1Mesh mesh, ID2D1Brush brush); 789 void FillOpacityMask(ID2D1Bitmap opacityMask, ID2D1Brush brush, D2D1_OPACITY_MASK_CONTENT content, const D2D1_RECT_F *destinationRectangle = null, const D2D1_RECT_F *sourceRectangle = null); 790 void FillRectangle(const D2D1_RECT_F *rect, ID2D1Brush brush); 791 void FillRoundedRectangle(const D2D1_ROUNDED_RECT *roundedRect, ID2D1Brush brush); 792 HRESULT Flush(D2D1_TAG *tag1 = null, D2D1_TAG *tag2 = null); 793 D2D1_ANTIALIAS_MODE GetAntialiasMode(); 794 void GetDpi(float *dpiX, float *dpiY); 795 uint GetMaximumBitmapSize(); 796 D2D1_PIXEL_FORMAT GetPixelFormat(); 797 D2D1_SIZE_U GetPixelSize(); 798 D2D1_SIZE_F GetSize(); 799 void GetTags(D2D1_TAG *tag1 = null, D2D1_TAG *tag2 = null); 800 D2D1_TEXT_ANTIALIAS_MODE GetTextAntialiasMode(); 801 void GetTextRenderingParams(IDWriteRenderingParams *textRenderingParams); 802 void GetTransform(D2D1_MATRIX_3X2_F *transform); 803 BOOL IsSupported(const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties); 804 void PopAxisAlignedClip(); 805 void PopLayer(); 806 void PushAxisAlignedClip(const D2D1_RECT_F *clipRect, D2D1_ANTIALIAS_MODE antialiasMode); 807 void PushLayer(const D2D1_LAYER_PARAMETERS *layerParameters, ID2D1Layer layer); 808 void RestoreDrawingState(ID2D1DrawingStateBlock drawingStateBlock); 809 void SaveDrawingState(ID2D1DrawingStateBlock *drawingStateBlock); 810 void SetAntialiasMode(D2D1_ANTIALIAS_MODE antialiasMode); 811 void SetDpi(float dpiX, float dpiY); 812 void SetTags(D2D1_TAG tag1, D2D1_TAG tag2); 813 void SetTextAntialiasMode(D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode); 814 void SetTextRenderingParams(IDWriteRenderingParams textRenderingParams = null); 815 void SetTransform(const D2D1_MATRIX_3X2_F *transform); 816 } 817 818 mixin(uuid!(ID2D1Resource, "2cd90691-12e2-11dc-9fed-001143a055f9")); 819 public interface ID2D1Resource : IUnknown 820 { 821 extern(Windows): 822 void GetFactory(ID2D1Factory *factory); 823 } 824 825 mixin(uuid!(ID2D1RoundedRectangleGeometry, "2cd906a3-12e2-11dc-9fed-001143a055f9")); 826 public interface ID2D1RoundedRectangleGeometry : ID2D1Geometry 827 { 828 extern(Windows): 829 void GetRoundedRect(D2D1_ROUNDED_RECT *roundedRect); 830 } 831 832 mixin(uuid!(ID2D1SimplifiedGeometrySink, "2cd9069e-12e2-11dc-9fed-001143a055f9")); 833 public interface ID2D1SimplifiedGeometrySink : IUnknown 834 { 835 extern(Windows): 836 void AddBeziers(const D2D1_BEZIER_SEGMENT* Beziers, uint Count); 837 void AddLines(const D2D_POINT_2F* Points, uint Count); 838 void BeginFigure(D2D1_POINT_2F StartPoint, D2D1_FIGURE_BEGIN FigureBegin); 839 HRESULT Close(); 840 void EndFigure(D2D1_FIGURE_END FigureEnd); 841 void SetFillMode(D2D1_FILL_MODE FillMode); 842 void SetSegmentFlags(D2D1_PATH_SEGMENT VertexFlags); 843 } 844 845 mixin(uuid!(ID2D1SolidColorBrush, "2cd906a9-12e2-11dc-9fed-001143a055f9")); 846 public interface ID2D1SolidColorBrush : ID2D1Brush 847 { 848 extern(Windows): 849 D2D1_COLOR_F GetColor(); 850 void SetColor(const D2D1_COLOR_F *color); 851 } 852 853 mixin(uuid!(ID2D1StrokeStyle, "2cd9069d-12e2-11dc-9fed-001143a055f9")); 854 public interface ID2D1StrokeStyle : ID2D1Resource 855 { 856 extern(Windows): 857 D2D1_CAP_STYLE GetDashCap(); 858 void GetDashes(float *dashes, uint dashesCount); 859 uint GetDashesCount(); 860 float GetDashOffset(); 861 D2D1_DASH_STYLE GetDashStyle(); 862 D2D1_CAP_STYLE GetEndCap(); 863 D2D1_LINE_JOIN GetLineJoin(); 864 float GetMiterLimit(); 865 D2D1_CAP_STYLE GetStartCap(); 866 } 867 868 mixin(uuid!(ID2D1TessellationSink, "2cd906c1-12e2-11dc-9fed-001143a055f9")); 869 public interface ID2D1TessellationSink : IUnknown 870 { 871 extern(Windows): 872 void AddTriangles(const D2D1_TRIANGLE *triangles, uint trianglesCount); 873 HRESULT Close(); 874 } 875 876 mixin(uuid!(ID2D1TransformedGeometry, "2cd906bb-12e2-11dc-9fed-001143a055f9")); 877 public interface ID2D1TransformedGeometry : ID2D1Geometry 878 { 879 extern(Windows): 880 void GetSourceGeometry(ID2D1Geometry *sourceGeometry); 881 void GetTransform(D2D1_MATRIX_3X2_F *transform); 882 } 883 884 // 885 // Functions 886 // 887 888 extern(Windows) 889 { 890 HRESULT D2D1CreateFactory(D2D1_FACTORY_TYPE factoryType, GUID* riid, void **ppIFactory); 891 HRESULT D2D1CreateFactory(D2D1_FACTORY_TYPE factoryType, GUID* riid, const D2D1_FACTORY_OPTIONS *pFactoryOptions, void **ppIFactory); 892 BOOL D2D1InvertMatrix(D2D1_MATRIX_3X2_F *matrix); 893 BOOL D2D1IsMatrixInvertible(const D2D1_MATRIX_3X2_F *matrix); 894 void D2D1MakeRotateMatrix(float angle, D2D1_POINT_2F center, D2D1_MATRIX_3X2_F *matrix); 895 void D2D1MakeSkewMatrix(float angleX, float angleY, D2D1_POINT_2F center, D2D1_MATRIX_3X2_F *matrix); 896 }