1 module aurora.directx.dwrite.dwrite_1; 2 3 version(Windows): 4 5 public import aurora.directx.com; 6 public import aurora.directx.dwrite.dwrite_0; 7 8 /// 9 /// Constants 10 /// 11 12 /// 13 /// Functions 14 /// 15 16 /// 17 /// Enumerations 18 /// 19 20 public enum DWRITE_BASELINE : int { 21 DEFAULT, 22 ROMAN, 23 CENTRAL, 24 MATH, 25 HANGING, 26 IDEOGRAPHIC_BOTTOM, 27 IDEOGRAPHIC_TOP, 28 MINIMUM, 29 MAXIMUM, 30 } 31 32 public enum DWRITE_PANOSE_FAMILY : ubyte { 33 ANY = 0, 34 NO_FIT = 1, 35 TEXT_DISPLAY = 2, 36 SCRIPT = 3, 37 DECORATIVE = 4, 38 SYMBOL = 5, 39 PICTORIAL = SYMBOL 40 } 41 42 public enum DWRITE_PANOSE_SERIF_STYLE : ubyte { 43 ANY = 0, 44 NO_FIT = 1, 45 COVE = 2, 46 OBTUSE_COVE = 3, 47 SQUARE_COVE = 4, 48 OBTUSE_SQUARE_COVE = 5, 49 SQUARE = 6, 50 THIN = 7, 51 OVAL = 8, 52 EXAGGERATED = 9, 53 TRIANGLE = 10, 54 NORMAL_SANS = 11, 55 OBTUSE_SANS = 12, 56 PERPENDICULAR_SANS = 13, 57 FLARED = 14, 58 ROUNDED = 15, 59 SCRIPT = 16, 60 PERP_SANS = PERPENDICULAR_SANS, 61 BONE = OVAL, 62 } 63 64 public enum DWRITE_PANOSE_WEIGHT : ubyte { 65 ANY = 0, 66 NO_FIT = 1, 67 VERY_LIGHT = 2, 68 LIGHT = 3, 69 THIN = 4, 70 BOOK = 5, 71 MEDIUM = 6, 72 DEMI = 7, 73 BOLD = 8, 74 HEAVY = 9, 75 BLACK = 10, 76 EXTRA_BLACK = 11, 77 NORD = EXTRA_BLACK, 78 } 79 80 public enum DWRITE_PANOSE_SYMBOL_ASPECT_RATIO : ubyte { 81 ANY = 0, 82 NO_FIT = 1, 83 NO_WIDTH = 2, 84 EXCEPTIONALLY_WIDE = 3, 85 SUPER_WIDE = 4, 86 VERY_WIDE = 5, 87 WIDE = 6, 88 NORMAL = 7, 89 NARROW = 8, 90 VERY_NARROW = 9, 91 } 92 93 public enum DWRITE_PANOSE_PROPORTION : ubyte { 94 ANY = 0, 95 NO_FIT = 1, 96 OLD_STYLE = 2, 97 MODERN = 3, 98 EVEN_WIDTH = 4, 99 EXPANDED = 5, 100 CONDENSED = 6, 101 VERY_EXPANDED = 7, 102 VERY_CONDENSED = 8, 103 MONOSPACED = 9, 104 } 105 106 public enum DWRITE_PANOSE_CONTRAST : ubyte { 107 ANY = 0, 108 NO_FIT = 1, 109 NONE = 2, 110 VERY_LOW = 3, 111 LOW = 4, 112 MEDIUM_LOW = 5, 113 MEDIUM = 6, 114 MEDIUM_HIGH = 7, 115 HIGH = 8, 116 VERY_HIGH = 9, 117 HORIZONTAL_LOW = 10, 118 HORIZONTAL_MEDIUM = 11, 119 HORIZONTAL_HIGH = 12, 120 BROKEN = 13, 121 } 122 123 public enum DWRITE_PANOSE_STROKE_VARIATION : ubyte { 124 ANY = 0, 125 NO_FIT = 1, 126 NO_VARIATION = 2, 127 GRADUAL_DIAGONAL = 3, 128 GRADUAL_TRANSITIONAL = 4, 129 GRADUAL_VERTICAL = 5, 130 GRADUAL_HORIZONTAL = 6, 131 RAPID_VERTICAL = 7, 132 RAPID_HORIZONTAL = 8, 133 INSTANT_VERTICAL = 9, 134 INSTANT_HORIZONTAL = 10, 135 } 136 137 public enum DWRITE_PANOSE_ARM_STYLE : ubyte { 138 ANY = 0, 139 NO_FIT = 1, 140 STRAIGHT_ARMS_HORIZONTAL = 2, 141 STRAIGHT_ARMS_WEDGE = 3, 142 STRAIGHT_ARMS_VERTICAL = 4, 143 STRAIGHT_ARMS_SINGLE_SERIF = 5, 144 STRAIGHT_ARMS_DOUBLE_SERIF = 6, 145 NONSTRAIGHT_ARMS_HORIZONTAL = 7, 146 NONSTRAIGHT_ARMS_WEDGE = 8, 147 NONSTRAIGHT_ARMS_VERTICAL = 9, 148 NONSTRAIGHT_ARMS_SINGLE_SERIF = 10, 149 NONSTRAIGHT_ARMS_DOUBLE_SERIF = 11, 150 STRAIGHT_ARMS_HORZ = STRAIGHT_ARMS_HORIZONTAL, 151 STRAIGHT_ARMS_VERT = STRAIGHT_ARMS_VERTICAL, 152 BENT_ARMS_HORZ = NONSTRAIGHT_ARMS_HORIZONTAL, 153 BENT_ARMS_WEDGE = NONSTRAIGHT_ARMS_WEDGE, 154 BENT_ARMS_VERT = NONSTRAIGHT_ARMS_VERTICAL, 155 BENT_ARMS_SINGLE_SERIF = NONSTRAIGHT_ARMS_SINGLE_SERIF, 156 BENT_ARMS_DOUBLE_SERIF = NONSTRAIGHT_ARMS_DOUBLE_SERIF, 157 } 158 159 public enum DWRITE_PANOSE_LETTERFORM : ubyte { 160 ANY = 0, 161 NO_FIT = 1, 162 NORMAL_CONTACT = 2, 163 NORMAL_WEIGHTED = 3, 164 NORMAL_BOXED = 4, 165 NORMAL_FLATTENED = 5, 166 NORMAL_ROUNDED = 6, 167 NORMAL_OFF_CENTER = 7, 168 NORMAL_SQUARE = 8, 169 OBLIQUE_CONTACT = 9, 170 OBLIQUE_WEIGHTED = 10, 171 OBLIQUE_BOXED = 11, 172 OBLIQUE_FLATTENED = 12, 173 OBLIQUE_ROUNDED = 13, 174 OBLIQUE_OFF_CENTER = 14, 175 OBLIQUE_SQUARE = 15, 176 } 177 178 public enum DWRITE_PANOSE_MIDLINE : ubyte { 179 ANY = 0, 180 NO_FIT = 1, 181 STANDARD_TRIMMED = 2, 182 STANDARD_POINTED = 3, 183 STANDARD_SERIFED = 4, 184 HIGH_TRIMMED = 5, 185 HIGH_POINTED = 6, 186 HIGH_SERIFED = 7, 187 CONSTANT_TRIMMED = 8, 188 CONSTANT_POINTED = 9, 189 CONSTANT_SERIFED = 10, 190 LOW_TRIMMED = 11, 191 LOW_POINTED = 12, 192 LOW_SERIFED = 13, 193 } 194 195 public enum DWRITE_PANOSE_XHEIGHT : ubyte { 196 ANY = 0, 197 NO_FIT = 1, 198 CONSTANT_SMALL = 2, 199 CONSTANT_STANDARD = 3, 200 CONSTANT_LARGE = 4, 201 DUCKING_SMALL = 5, 202 DUCKING_STANDARD = 6, 203 DUCKING_LARGE = 7, 204 CONSTANT_STD = CONSTANT_STANDARD, 205 DUCKING_STD = DUCKING_STANDARD, 206 } 207 208 enum DWRITE_PANOSE_TOOL_KIND : ubyte { 209 ANY = 0, 210 NO_FIT = 1, 211 FLAT_NIB = 2, 212 PRESSURE_POINT = 3, 213 ENGRAVED = 4, 214 BALL = 5, 215 BRUSH = 6, 216 ROUGH = 7, 217 FELT_PEN_BRUSH_TIP = 8, 218 WILD_BRUSH = 9, 219 } 220 221 enum DWRITE_PANOSE_SPACING : ubyte { 222 ANY = 0, 223 NO_FIT = 1, 224 PROPORTIONAL_SPACED = 2, 225 MONOSPACE = 3, 226 } 227 228 public enum DWRITE_PANOSE_ASPECT_RATIO : ubyte { 229 ANY = 0, 230 NO_FIT = 1, 231 VERY_CONDENSED = 2, 232 CONDENSED = 3, 233 NORMAL = 4, 234 EXPANDED = 5, 235 VERY_EXPANDED = 6, 236 } 237 238 public enum DWRITE_PANOSE_SCRIPT_TOPOLOGY : ubyte { 239 ANY = 0, 240 NO_FIT = 1, 241 ROMAN_DISCONNECTED = 2, 242 ROMAN_TRAILING = 3, 243 ROMAN_CONNECTED = 4, 244 CURSIVE_DISCONNECTED = 5, 245 CURSIVE_TRAILING = 6, 246 CURSIVE_CONNECTED = 7, 247 BLACKLETTER_DISCONNECTED = 8, 248 BLACKLETTER_TRAILING = 9, 249 BLACKLETTER_CONNECTED = 10, 250 } 251 252 public enum DWRITE_PANOSE_SCRIPT_FORM : ubyte { 253 ANY = 0, 254 NO_FIT = 1, 255 UPRIGHT_NO_WRAPPING = 2, 256 UPRIGHT_SOME_WRAPPING = 3, 257 UPRIGHT_MORE_WRAPPING = 4, 258 UPRIGHT_EXTREME_WRAPPING = 5, 259 OBLIQUE_NO_WRAPPING = 6, 260 OBLIQUE_SOME_WRAPPING = 7, 261 OBLIQUE_MORE_WRAPPING = 8, 262 OBLIQUE_EXTREME_WRAPPING = 9, 263 EXAGGERATED_NO_WRAPPING = 10, 264 EXAGGERATED_SOME_WRAPPING = 11, 265 EXAGGERATED_MORE_WRAPPING = 12, 266 EXAGGERATED_EXTREME_WRAPPING = 13, 267 } 268 269 public enum DWRITE_PANOSE_FINIALS : ubyte { 270 ANY = 0, 271 NO_FIT = 1, 272 NONE_NO_LOOPS = 2, 273 NONE_CLOSED_LOOPS = 3, 274 NONE_OPEN_LOOPS = 4, 275 SHARP_NO_LOOPS = 5, 276 SHARP_CLOSED_LOOPS = 6, 277 SHARP_OPEN_LOOPS = 7, 278 TAPERED_NO_LOOPS = 8, 279 TAPERED_CLOSED_LOOPS = 9, 280 TAPERED_OPEN_LOOPS = 10, 281 ROUND_NO_LOOPS = 11, 282 ROUND_CLOSED_LOOPS = 12, 283 ROUND_OPEN_LOOPS = 13, 284 } 285 286 public enum DWRITE_PANOSE_XASCENT : ubyte { 287 ANY = 0, 288 NO_FIT = 1, 289 VERY_LOW = 2, 290 LOW = 3, 291 MEDIUM = 4, 292 HIGH = 5, 293 VERY_HIGH = 6, 294 } 295 296 public enum DWRITE_PANOSE_DECORATIVE_CLASS : ubyte { 297 ANY = 0, 298 NO_FIT = 1, 299 DERIVATIVE = 2, 300 NONSTANDARD_TOPOLOGY = 3, 301 NONSTANDARD_ELEMENTS = 4, 302 NONSTANDARD_ASPECT = 5, 303 INITIALS = 6, 304 CARTOON = 7, 305 PICTURE_STEMS = 8, 306 ORNAMENTED = 9, 307 TEXT_AND_BACKGROUND = 10, 308 COLLAGE = 11, 309 MONTAGE = 12, 310 } 311 312 public enum DWRITE_PANOSE_ASPECT : ubyte { 313 ANY = 0, 314 NO_FIT = 1, 315 SUPER_CONDENSED = 2, 316 VERY_CONDENSED = 3, 317 CONDENSED = 4, 318 NORMAL = 5, 319 EXTENDED = 6, 320 VERY_EXTENDED = 7, 321 SUPER_EXTENDED = 8, 322 MONOSPACED = 9, 323 } 324 325 public enum DWRITE_PANOSE_FILL : ubyte { 326 ANY = 0, 327 NO_FIT = 1, 328 STANDARD_SOLID_FILL = 2, 329 NO_FILL = 3, 330 PATTERNED_FILL = 4, 331 COMPLEX_FILL = 5, 332 SHAPED_FILL = 6, 333 DRAWN_DISTRESSED = 7, 334 } 335 336 public enum DWRITE_PANOSE_LINING : ubyte { 337 ANY = 0, 338 NO_FIT = 1, 339 NONE = 2, 340 INLINE = 3, 341 OUTLINE = 4, 342 ENGRAVED = 5, 343 SHADOW = 6, 344 RELIEF = 7, 345 BACKDROP = 8, 346 } 347 348 public enum DWRITE_PANOSE_DECORATIVE_TOPOLOGY : ubyte { 349 ANY = 0, 350 NO_FIT = 1, 351 STANDARD = 2, 352 SQUARE = 3, 353 MULTIPLE_SEGMENT = 4, 354 ART_DECO = 5, 355 UNEVEN_WEIGHTING = 6, 356 DIVERSE_ARMS = 7, 357 DIVERSE_FORMS = 8, 358 LOMBARDIC_FORMS = 9, 359 UPPER_CASE_IN_LOWER_CASE = 10, 360 IMPLIED_TOPOLOGY = 11, 361 HORSESHOE_E_AND_A = 12, 362 CURSIVE = 13, 363 BLACKLETTER = 14, 364 SWASH_VARIANCE = 15, 365 } 366 367 public enum DWRITE_PANOSE_CHARACTER_RANGES : ubyte { 368 ANY = 0, 369 NO_FIT = 1, 370 EXTENDED_COLLECTION = 2, 371 LITERALS = 3, 372 NO_LOWER_CASE = 4, 373 SMALL_CAPS = 5, 374 } 375 376 public enum DWRITE_PANOSE_SYMBOL_KIND : ubyte { 377 ANY = 0, 378 NO_FIT = 1, 379 MONTAGES = 2, 380 PICTURES = 3, 381 SHAPES = 4, 382 SCIENTIFIC = 5, 383 MUSIC = 6, 384 EXPERT = 7, 385 PATTERNS = 8, 386 BOARDERS = 9, 387 ICONS = 10, 388 LOGOS = 11, 389 INDUSTRY_SPECIFIC = 12, 390 } 391 392 public enum DWRITE_GLYPH_ORIENTATION_ANGLE { 393 ANGLE_0_DEGREES, 394 ANGLE_90_DEGREES, 395 ANGLE_180_DEGREES, 396 ANGLE_270_DEGREES, 397 } 398 399 public enum DWRITE_OUTLINE_THRESHOLD : int { 400 ANTIALIASED, 401 ALIASED, 402 } 403 404 public enum DWRITE_TEXT_ANTIALIAS_MODE : int { 405 CLEARTYPE, 406 GRAYSCALE, 407 } 408 409 public enum DWRITE_VERTICAL_GLYPH_ORIENTATION : int { 410 DEFAULT, 411 STACKED, 412 } 413 414 /// 415 /// Structures 416 /// 417 418 public struct DWRITE_CARET_METRICS { 419 short slopeRise; 420 short slopeRun; 421 short offset; 422 } 423 424 public union DWRITE_PANOSE { 425 ubyte[10] values; 426 DWRITE_PANOSE_FAMILY familyKind; 427 union { 428 struct text { 429 ubyte familyKind; 430 DWRITE_PANOSE_SERIF_STYLE serifStyle; 431 DWRITE_PANOSE_WEIGHT weight; 432 DWRITE_PANOSE_PROPORTION proportion; 433 DWRITE_PANOSE_CONTRAST contrast; 434 DWRITE_PANOSE_STROKE_VARIATION strokeVariation; 435 DWRITE_PANOSE_ARM_STYLE armStyle; 436 DWRITE_PANOSE_LETTERFORM letterform; 437 DWRITE_PANOSE_MIDLINE midline; 438 DWRITE_PANOSE_XHEIGHT xHeight; 439 }; 440 struct script { 441 ubyte familyKind; 442 DWRITE_PANOSE_TOOL_KIND toolKind; 443 DWRITE_PANOSE_WEIGHT weight; 444 DWRITE_PANOSE_SPACING spacing; 445 DWRITE_PANOSE_ASPECT_RATIO aspectRatio; 446 DWRITE_PANOSE_CONTRAST contrast; 447 DWRITE_PANOSE_SCRIPT_TOPOLOGY scriptTopology; 448 DWRITE_PANOSE_SCRIPT_FORM scriptForm; 449 DWRITE_PANOSE_FINIALS finials; 450 DWRITE_PANOSE_XASCENT xAscent; 451 }; 452 struct decorative { 453 ubyte familyKind; 454 DWRITE_PANOSE_DECORATIVE_CLASS decorativeClass; 455 DWRITE_PANOSE_WEIGHT weight; 456 DWRITE_PANOSE_ASPECT aspect; 457 DWRITE_PANOSE_CONTRAST contrast; 458 ubyte serifVariant; 459 DWRITE_PANOSE_FILL fill; 460 DWRITE_PANOSE_LINING lining; 461 DWRITE_PANOSE_DECORATIVE_TOPOLOGY decorativeTopology; 462 DWRITE_PANOSE_CHARACTER_RANGES characterRange; 463 }; 464 struct symbol { 465 ubyte familyKind; 466 DWRITE_PANOSE_SYMBOL_KIND symbolKind; 467 DWRITE_PANOSE_WEIGHT weight; 468 DWRITE_PANOSE_SPACING spacing; 469 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO aspectRatioAndContrast; 470 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO aspectRatio94; 471 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO aspectRatio119; 472 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO aspectRatio157; 473 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO aspectRatio163; 474 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO aspectRatio211; 475 } 476 } 477 } 478 479 public struct DWRITE_FONT_METRICS1 { 480 int glyphBoxLeft; 481 int glyphBoxTop; 482 int glyphBoxRight; 483 int glyphBoxBottom; 484 int subscriptPositionX; 485 int subscriptPositionY; 486 int subscriptSizeX; 487 int subscriptSizeY; 488 int superscriptPositionX; 489 int superscriptPositionY; 490 int superscriptSizeX; 491 int superscriptSizeY; 492 BOOL hasTypographicMetrics; 493 } 494 495 public struct DWRITE_JUSTIFICATION_OPPORTUNITY { 496 float expansionMinimum; 497 float expansionMaximum; 498 float compressionMaximum; 499 mixin(bitfields!( 500 uint, "expansionPriority", 8, 501 uint, "compressionPriority", 8, 502 uint, "allowResidualExpansion", 1, 503 uint, "allowResidualCompression", 1, 504 uint, "applyToLeadingEdge", 1, 505 uint, "applyToTrailingEdge", 1, 506 uint, "reserved", 12)); 507 } 508 509 public struct DWRITE_SCRIPT_PROPERTIES { 510 uint isoScriptCode; 511 uint isoScriptNumber; 512 uint clusterLookahead; 513 uint justificationCharacter; 514 mixin(bitfields!( 515 uint, "restrictCaretToClusters", 1, 516 uint, "usesWordDividers", 1, 517 uint, "isDiscreteWriting", 1, 518 uint, "isBlockWriting", 1, 519 uint, "isDistributedWithinCluster", 1, 520 uint, "isConnectedWriting", 1, 521 uint, "isCursiveWriting", 1, 522 uint, "reserved", 25)); 523 } 524 525 public struct DWRITE_UNICODE_RANGE { 526 uint first; 527 uint last; 528 } 529 530 /// 531 /// Interfaces 532 /// 533 534 mixin(uuid!(IDWriteBitmapRenderTarget1, "791e8298-3ef3-4230-9880-c9bdecc42064")); 535 public interface IDWriteBitmapRenderTarget1 : IDWriteBitmapRenderTarget 536 { 537 extern(Windows): 538 DWRITE_TEXT_ANTIALIAS_MODE GetTextAntialiasMode(); 539 HRESULT SetTextAntialiasMode(DWRITE_TEXT_ANTIALIAS_MODE AntialiasMode); 540 } 541 542 mixin(uuid!(IDWriteFont1, "acd16696-8c14-4f5d-877e-fe3fc1d32738")); 543 public interface IDWriteFont1 : IDWriteFont 544 { 545 extern(Windows): 546 void GetMetrics(DWRITE_FONT_METRICS1* FontMetrics); 547 void GetPanose(DWRITE_PANOSE* Panose); 548 HRESULT GetUnicodeRanges(uint MaxRangeCount, DWRITE_UNICODE_RANGE* UnicodeRanges, uint* RangeCount); 549 BOOL IsMonospacedFont(); 550 } 551 552 mixin(uuid!(IDWriteFontFace1, "a71efdb4-9fdb-4838-ad90-cfc3be8c3daf")); 553 public interface IDWriteFontFace1 : IDWriteFontFace 554 { 555 extern(Windows): 556 void GetCaretMetrics(DWRITE_CARET_METRICS* CaretMetrics); 557 HRESULT GetDesignGlyphAdvances(uint Count, const short* Indices, int* Advances, BOOL IsSideways = FALSE); 558 HRESULT GetGdiCompatibleGlyphAdvances(float EMSize, float PixelsPerDIP, const DWRITE_MATRIX* Transform, BOOL UseGDINatural, BOOL IsSideways, uint Count, ushort Indices, const int* Advances); 559 HRESULT GetGdiCompatibleMetrics(float EMSize, float PixelsPerDIP, const DWRITE_MATRIX* Transform, DWRITE_FONT_METRICS1* FontMetrics); 560 HRESULT GetKerningPairAdjustments(uint Count, const ushort* Indices, int* AdvanceAdjustments); 561 void GetMetrics(DWRITE_FONT_METRICS1* FontMetrics); 562 HRESULT GetRecommendedRenderingMode(float EMSize, float DIPX, float DIPY, const DWRITE_MATRIX* Transform, BOOL IsSideways, DWRITE_OUTLINE_THRESHOLD OutlineThreshold, DWRITE_MEASURING_MODE MeasuringMode, DWRITE_RENDERING_MODE* RenderingMode); 563 HRESULT GetUnicodeRanges(uint MaxRangeCount, DWRITE_UNICODE_RANGE* UnicodeRanges, uint* RangeCount); 564 HRESULT GetVerticalGlyphVariants(uint Count, const ushort* NominalGlyphIndices, ushort VerticalGlyphIndices); 565 BOOL HasKerningPairs(); 566 BOOL HasVerticalGlyphVariants(); 567 BOOL IsMonospacedFont(); 568 } 569 570 mixin(uuid!(IDWriteRenderingParams1, "94413cf4-a6fc-4248-8b50-6674348fcad3")); 571 public interface IDWriteRenderingParams1 : IDWriteRenderingParams 572 { 573 extern(Windows): 574 float GetGrayscaleEnhancedContrast(); 575 } 576 577 mixin(uuid!(IDWriteTextAnalysisSink1, "B0D941A0-85E7-4D8B-9FD3-5CED9934482A")); 578 public interface IDWriteTextAnalysisSink1 : IDWriteTextAnalysisSink 579 { 580 extern(Windows): 581 HRESULT SetGlyphOrientation(uint TextPosition, uint TextLength, DWRITE_GLYPH_ORIENTATION_ANGLE GlyphOrientationAngle, ubyte AdjustedBidiLevel, BOOL IsSideways, BOOL IsRightToLeft); 582 } 583 584 mixin(uuid!(IDWriteTextAnalysisSource1, "639CFAD8-0FB4-4B21-A58A-067920120009")); 585 public interface IDWriteTextAnalysisSource1 : IDWriteTextAnalysisSource 586 { 587 extern(Windows): 588 HRESULT GetVerticalGlyphOrientation(uint TextPosition, uint *TextLength, DWRITE_VERTICAL_GLYPH_ORIENTATION *GlyphOrientation, ubyte *BidiLevel); 589 } 590 591 mixin(uuid!(IDWriteTextAnalyzer1, "80DAD800-E21F-4E83-96CE-BFCCE500DB7C")); 592 public interface IDWriteTextAnalyzer1 : IDWriteTextAnalyzer 593 { 594 extern(Windows): 595 HRESULT AnalyzeVerticalGlyphOrientation(IDWriteTextAnalysisSource AnalysisSource, uint TextPosition, uint TextLength, IDWriteTextAnalysisSink AnalysisSink); 596 HRESULT ApplyCharacterSpacing(float LeadingSpacing, float TrailingSpacing, float MinimumAdvanceWidth, uint TextLength, uint GlyphCount, const ushort *ClusterMap, const float *GlyphAdvances, const DWRITE_GLYPH_OFFSET *GlyphOffsets, const DWRITE_SHAPING_GLYPH_PROPERTIES *GlyphProperties, float *ModifiedGlyphAdvances, DWRITE_GLYPH_OFFSET *ModifiedGlyphOffsets); 597 HRESULT GetBaseline(IDWriteFontFace FontFace, DWRITE_BASELINE Baseline, BOOL IsVertical, BOOL IsSimulationAllowed, DWRITE_SCRIPT_ANALYSIS ScriptAnalysis, const wchar *LocaleName, int *BaselineCoordinate, BOOL *Exists); 598 HRESULT GetGlyphOrientationTransform(DWRITE_GLYPH_ORIENTATION_ANGLE GlyphOrientationAngle, BOOL IsSideways, DWRITE_MATRIX *Transform); 599 HRESULT GetJustificationOpportunities(IDWriteFontFace FontFace, float FontEmSize, DWRITE_SCRIPT_ANALYSIS ScriptAnalysis, uint TextLength, uint GlyphCount, const wchar *TextString, const ushort *ClusterMap, const DWRITE_SHAPING_GLYPH_PROPERTIES *GlyphProperties, DWRITE_JUSTIFICATION_OPPORTUNITY *JustificationOpportunities); 600 HRESULT GetJustifiedGlyphs(IDWriteFontFace FontFace, float FontEmSize, DWRITE_SCRIPT_ANALYSIS ScriptAnalysis, uint TextLength, uint GlyphCount, uint MaxGlyphCount, const ushort *ClusterMap, const ushort *GlyphIndices, const float *GlyphAdvances, const float *JustifiedGlyphAdvances, const DWRITE_GLYPH_OFFSET *JustifiedGlyphOffsets, const DWRITE_SHAPING_GLYPH_PROPERTIES *GlyphProperties, uint *ActualGlyphCount, ushort *ModifiedClusterMap, ushort *ModifiedGlyphIndices, float *ModifiedGlyphAdvances, DWRITE_GLYPH_OFFSET *ModifiedGlyphOffsets); 601 HRESULT GetScriptProperties(DWRITE_SCRIPT_ANALYSIS ScriptAnalysis, DWRITE_SCRIPT_PROPERTIES *ScriptProperties); 602 HRESULT GetTextComplexity(const wchar *TextString, uint TextLength, IDWriteFontFace FontFace, BOOL *IsTextSimple, uint *TextLengthRead, ushort *GlyphIndices); 603 HRESULT JustifyGlyphAdvances(float LineWidth, uint GlyphCount, const DWRITE_JUSTIFICATION_OPPORTUNITY *JustificationOpportunities, const float *GlyphAdvances, const DWRITE_GLYPH_OFFSET *GlyphOffsets, float *JustifiedGlyphAdvances, DWRITE_GLYPH_OFFSET *JustifiedGlyphOffsets); 604 } 605 606 mixin(uuid!(IDWriteTextLayout1, "9064D822-80A7-465C-A986-DF65F78B8FEB")); 607 public interface IDWriteTextLayout1 : IDWriteTextLayout 608 { 609 extern(Windows): 610 HRESULT GetCharacterSpacing(uint CurrentPosition, float *LeadingSpacing, float *TrailingSpacing, float *MinimumAdvanceWidth, DWRITE_TEXT_RANGE *TextRange = null); 611 HRESULT GetPairKerning(uint CurrentPosition, BOOL *IsPairKerningEnabled, DWRITE_TEXT_RANGE *TextRange = null); 612 HRESULT SetCharacterSpacing(float LeadingSpacing, float TrailingSpacing, float MinimumAdvanceWidth, DWRITE_TEXT_RANGE TextRange); 613 HRESULT SetPairKerning(BOOL IsPairKerningEnabled, DWRITE_TEXT_RANGE TextRange); 614 } 615 616 mixin(uuid!(IDWriteFactory1, "30572f99-dac6-41db-a16e-0486307e606a")); 617 public interface IDWriteFactory1 : IDWriteFactory 618 { 619 extern(Windows): 620 HRESULT CreateCustomRenderingParams(float Gamma, float EnhancedContrast, float EnhancedContrastGrayscale, float ClearTypeLevel, DWRITE_PIXEL_GEOMETRY PixelGeometry, DWRITE_RENDERING_MODE RenderingMode, IDWriteRenderingParams1 *RenderingParams); 621 HRESULT GetEudcFontCollection(IDWriteFontCollection *FontCollection, BOOL CheckForUpdates = FALSE); 622 }