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