# C1.Util.DX.DirectWrite.TextAnalyzer

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_Util_DX_DirectWrite_TextAnalyzer" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer" class="text-break">TextAnalyzer Class
</h1>
  <div class="markdown level0 summary"><p>IDWriteTextAnalyzer</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><a class="xref" href="C1.Util.DX.DisposeBase.html">DisposeBase</a></div>
    <div class="level2"><a class="xref" href="C1.Util.DX.CppObject.html">CppObject</a></div>
    <div class="level3"><a class="xref" href="C1.Util.DX.ComObject.html">ComObject</a></div>
    <div class="level4"><span class="xref">TextAnalyzer</span></div>
      <div class="level5"><a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer1.html">TextAnalyzer1</a></div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
    <div><a class="xref" href="C1.Util.DX.IUnknown.html">IUnknown</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="C1.Util.DX.DirectWrite.html">C1.Util.DX.DirectWrite</a></h6>
  <h6><strong>Assembly</strong>: C1.Win.DX.10.dll</h6>
  <h5 id="C1_Util_DX_DirectWrite_TextAnalyzer_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[Guid(&quot;b7e6163e-7f46-43b4-84b3-e4e6249c365d&quot;)]
public class TextAnalyzer : ComObject, IDisposable, IUnknown</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">&lt;Guid(&quot;b7e6163e-7f46-43b4-84b3-e4e6249c365d&quot;)&gt;
Public Class TextAnalyzer
    Inherits ComObject
    Implements IDisposable, IUnknown</code></pre>
  </div>
  <h3 id="constructors">Constructors
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer__ctor_System_IntPtr_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.#ctor(System.IntPtr)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.-ctor.html#C1_Util_DX_DirectWrite_TextAnalyzer__ctor_System_IntPtr_">TextAnalyzer(nint)</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.html">TextAnalyzer</a> class.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeBidi_C1_Util_DX_DirectWrite_TextAnalysisQuickSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeBidi(C1.Util.DX.DirectWrite.TextAnalysisQuickSource,System.Int32,System.Int32,C1.Util.DX.DirectWrite.TextAnalysisSink)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeBidi.html#C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeBidi_C1_Util_DX_DirectWrite_TextAnalysisQuickSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_">AnalyzeBidi(TextAnalysisQuickSource, int, int, TextAnalysisSink)</a>
        </td>
        <td class="markdown level1 summary"><p>Analyzes a text range for script directionality, reading attributes from the source and reporting levels to the sink callback {{SetBidiLevel}}.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeBidi_C1_Util_DX_DirectWrite_TextAnalysisSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeBidi(C1.Util.DX.DirectWrite.TextAnalysisSource,System.Int32,System.Int32,C1.Util.DX.DirectWrite.TextAnalysisSink)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeBidi.html#C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeBidi_C1_Util_DX_DirectWrite_TextAnalysisSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_">AnalyzeBidi(TextAnalysisSource, int, int, TextAnalysisSink)</a>
        </td>
        <td class="markdown level1 summary"><p>Analyzes a text range for script directionality, reading attributes from the source and reporting levels to the sink callback {{SetBidiLevel}}.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeBidi_System_IntPtr_System_Int32_System_Int32_System_IntPtr_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeBidi(System.IntPtr,System.Int32,System.Int32,System.IntPtr)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeBidi.html#C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeBidi_System_IntPtr_System_Int32_System_Int32_System_IntPtr_">AnalyzeBidi(nint, int, int, nint)</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDWriteTextAnalyzer::AnalyzeBidi([In] IDWriteTextAnalysisSource* analysisSource,[In] unsigned int textPosition,[In] unsigned int textLength,[In] IDWriteTextAnalysisSink* analysisSink)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeLineBreakpoints_C1_Util_DX_DirectWrite_TextAnalysisQuickSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeLineBreakpoints(C1.Util.DX.DirectWrite.TextAnalysisQuickSource,System.Int32,System.Int32,C1.Util.DX.DirectWrite.TextAnalysisSink)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeLineBreakpoints.html#C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeLineBreakpoints_C1_Util_DX_DirectWrite_TextAnalysisQuickSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_">AnalyzeLineBreakpoints(TextAnalysisQuickSource, int, int, TextAnalysisSink)</a>
        </td>
        <td class="markdown level1 summary"><p>Analyzes a text range for potential breakpoint opportunities, reading attributes from the source and reporting breakpoint opportunities to the sink callback {{SetLineBreakpoints}}.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeLineBreakpoints_C1_Util_DX_DirectWrite_TextAnalysisSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeLineBreakpoints(C1.Util.DX.DirectWrite.TextAnalysisSource,System.Int32,System.Int32,C1.Util.DX.DirectWrite.TextAnalysisSink)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeLineBreakpoints.html#C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeLineBreakpoints_C1_Util_DX_DirectWrite_TextAnalysisSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_">AnalyzeLineBreakpoints(TextAnalysisSource, int, int, TextAnalysisSink)</a>
        </td>
        <td class="markdown level1 summary"><p>Analyzes a text range for potential breakpoint opportunities, reading attributes from the source and reporting breakpoint opportunities to the sink callback {{SetLineBreakpoints}}.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeLineBreakpoints_System_IntPtr_System_Int32_System_Int32_System_IntPtr_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeLineBreakpoints(System.IntPtr,System.Int32,System.Int32,System.IntPtr)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeLineBreakpoints.html#C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeLineBreakpoints_System_IntPtr_System_Int32_System_Int32_System_IntPtr_">AnalyzeLineBreakpoints(nint, int, int, nint)</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDWriteTextAnalyzer::AnalyzeLineBreakpoints([In] IDWriteTextAnalysisSource* analysisSource,[In] unsigned int textPosition,[In] unsigned int textLength,[In] IDWriteTextAnalysisSink* analysisSink)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeNumberSubstitution_C1_Util_DX_DirectWrite_TextAnalysisQuickSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeNumberSubstitution(C1.Util.DX.DirectWrite.TextAnalysisQuickSource,System.Int32,System.Int32,C1.Util.DX.DirectWrite.TextAnalysisSink)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeNumberSubstitution.html#C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeNumberSubstitution_C1_Util_DX_DirectWrite_TextAnalysisQuickSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_">AnalyzeNumberSubstitution(TextAnalysisQuickSource, int, int, TextAnalysisSink)</a>
        </td>
        <td class="markdown level1 summary"><p>Analyzes a text range for spans where number substitution is applicable, reading attributes from the source and reporting substitutable ranges to the sink callback {{SetNumberSubstitution}}.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeNumberSubstitution_C1_Util_DX_DirectWrite_TextAnalysisSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeNumberSubstitution(C1.Util.DX.DirectWrite.TextAnalysisSource,System.Int32,System.Int32,C1.Util.DX.DirectWrite.TextAnalysisSink)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeNumberSubstitution.html#C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeNumberSubstitution_C1_Util_DX_DirectWrite_TextAnalysisSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_">AnalyzeNumberSubstitution(TextAnalysisSource, int, int, TextAnalysisSink)</a>
        </td>
        <td class="markdown level1 summary"><p>Analyzes a text range for spans where number substitution is applicable, reading attributes from the source and reporting substitutable ranges to the sink callback {{SetNumberSubstitution}}.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeNumberSubstitution_System_IntPtr_System_Int32_System_Int32_System_IntPtr_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeNumberSubstitution(System.IntPtr,System.Int32,System.Int32,System.IntPtr)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeNumberSubstitution.html#C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeNumberSubstitution_System_IntPtr_System_Int32_System_Int32_System_IntPtr_">AnalyzeNumberSubstitution(nint, int, int, nint)</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDWriteTextAnalyzer::AnalyzeNumberSubstitution([In] IDWriteTextAnalysisSource* analysisSource,[In] unsigned int textPosition,[In] unsigned int textLength,[In] IDWriteTextAnalysisSink* analysisSink)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeScript_C1_Util_DX_DirectWrite_TextAnalysisQuickSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeScript(C1.Util.DX.DirectWrite.TextAnalysisQuickSource,System.Int32,System.Int32,C1.Util.DX.DirectWrite.TextAnalysisSink)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeScript.html#C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeScript_C1_Util_DX_DirectWrite_TextAnalysisQuickSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_">AnalyzeScript(TextAnalysisQuickSource, int, int, TextAnalysisSink)</a>
        </td>
        <td class="markdown level1 summary"><p>Analyzes a text range for script boundaries, reading text attributes from the source and reporting the Unicode script ID to the sink  callback {{SetScript}}.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeScript_C1_Util_DX_DirectWrite_TextAnalysisSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeScript(C1.Util.DX.DirectWrite.TextAnalysisSource,System.Int32,System.Int32,C1.Util.DX.DirectWrite.TextAnalysisSink)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeScript.html#C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeScript_C1_Util_DX_DirectWrite_TextAnalysisSource_System_Int32_System_Int32_C1_Util_DX_DirectWrite_TextAnalysisSink_">AnalyzeScript(TextAnalysisSource, int, int, TextAnalysisSink)</a>
        </td>
        <td class="markdown level1 summary"><p>Analyzes a text range for script boundaries, reading text attributes from the source and reporting the Unicode script ID to the sink  callback {{SetScript}}.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeScript_System_IntPtr_System_Int32_System_Int32_System_IntPtr_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeScript(System.IntPtr,System.Int32,System.Int32,System.IntPtr)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.AnalyzeScript.html#C1_Util_DX_DirectWrite_TextAnalyzer_AnalyzeScript_System_IntPtr_System_Int32_System_Int32_System_IntPtr_">AnalyzeScript(nint, int, int, nint)</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDWriteTextAnalyzer::AnalyzeScript([In] IDWriteTextAnalysisSource* analysisSource,[In] unsigned int textPosition,[In] unsigned int textLength,[In] IDWriteTextAnalysisSink* analysisSink)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_Create_C1_Util_DX_DirectWrite_Factory_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.Create(C1.Util.DX.DirectWrite.Factory)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.Create.html#C1_Util_DX_DirectWrite_TextAnalyzer_Create_C1_Util_DX_DirectWrite_Factory_">Create(Factory)</a>
        </td>
        <td class="markdown level1 summary"><p>Returns an interface for performing text analysis.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_GetGdiCompatibleGlyphPlacements_System_IntPtr_System_IntPtr_System_IntPtr_System_Int32_System_IntPtr_System_IntPtr_System_Int32_System_IntPtr_System_Single_System_Single_System_Nullable_C1_Util_DX_Matrix3x2__C1_Util_DX_Bool_C1_Util_DX_Bool_C1_Util_DX_Bool_C1_Util_DX_DirectWrite_ScriptAnalysis_System_IntPtr_System_IntPtr_System_IntPtr_System_Int32_System_IntPtr_System_IntPtr_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.GetGdiCompatibleGlyphPlacements(System.IntPtr,System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.Single,System.Single,System.Nullable{C1.Util.DX.Matrix3x2},C1.Util.DX.Bool,C1.Util.DX.Bool,C1.Util.DX.Bool,C1.Util.DX.DirectWrite.ScriptAnalysis,System.IntPtr,System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.GetGdiCompatibleGlyphPlacements.html#C1_Util_DX_DirectWrite_TextAnalyzer_GetGdiCompatibleGlyphPlacements_System_IntPtr_System_IntPtr_System_IntPtr_System_Int32_System_IntPtr_System_IntPtr_System_Int32_System_IntPtr_System_Single_System_Single_System_Nullable_C1_Util_DX_Matrix3x2__C1_Util_DX_Bool_C1_Util_DX_Bool_C1_Util_DX_Bool_C1_Util_DX_DirectWrite_ScriptAnalysis_System_IntPtr_System_IntPtr_System_IntPtr_System_Int32_System_IntPtr_System_IntPtr_">GetGdiCompatibleGlyphPlacements(nint, nint, nint, int, nint, nint, int, nint, float, float, Matrix3x2?, Bool, Bool, Bool, ScriptAnalysis, nint, nint, nint, int, nint, nint)</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDWriteTextAnalyzer::GetGdiCompatibleGlyphPlacements([In, Buffer] const wchar_t* textString,[In, Buffer] const unsigned short* clusterMap,[In, Buffer] DWRITE_SHAPING_TEXT_PROPERTIES* textProps,[In] unsigned int textLength,[In, Buffer] const unsigned short* glyphIndices,[In, Buffer] const DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps,[In] unsigned int glyphCount,[In] IDWriteFontFace* fontFace,[In] float fontEmSize,[In] float pixelsPerDip,[In, Optional] const DWRITE_MATRIX* transform,[In] BOOL useGdiNatural,[In] BOOL isSideways,[In] BOOL isRightToLeft,[In] const DWRITE_SCRIPT_ANALYSIS* scriptAnalysis,[In, Optional] const wchar_t* localeName,[In, Optional] const void** features,[In, Buffer, Optional] const unsigned int* featureRangeLengths,[In] unsigned int featureRanges,[Out, Buffer] float* glyphAdvances,[Out, Buffer] DWRITE_GLYPH_OFFSET* glyphOffsets)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_GetGdiCompatibleGlyphPlacements_System_String_System_Int16___C1_Util_DX_DirectWrite_ShapingTextProperties___System_Int32_System_Int16___C1_Util_DX_DirectWrite_ShapingGlyphProperties___System_Int32_C1_Util_DX_DirectWrite_FontFace_System_Single_System_Single_System_Nullable_C1_Util_DX_Matrix3x2__C1_Util_DX_Bool_C1_Util_DX_Bool_C1_Util_DX_Bool_C1_Util_DX_DirectWrite_ScriptAnalysis_System_String_System_IntPtr_System_Int32___System_Int32_System_Single___C1_Util_DX_DirectWrite_GlyphOffset___" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.GetGdiCompatibleGlyphPlacements(System.String,System.Int16[],C1.Util.DX.DirectWrite.ShapingTextProperties[],System.Int32,System.Int16[],C1.Util.DX.DirectWrite.ShapingGlyphProperties[],System.Int32,C1.Util.DX.DirectWrite.FontFace,System.Single,System.Single,System.Nullable{C1.Util.DX.Matrix3x2},C1.Util.DX.Bool,C1.Util.DX.Bool,C1.Util.DX.Bool,C1.Util.DX.DirectWrite.ScriptAnalysis,System.String,System.IntPtr,System.Int32[],System.Int32,System.Single[],C1.Util.DX.DirectWrite.GlyphOffset[])">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.GetGdiCompatibleGlyphPlacements.html#C1_Util_DX_DirectWrite_TextAnalyzer_GetGdiCompatibleGlyphPlacements_System_String_System_Int16___C1_Util_DX_DirectWrite_ShapingTextProperties___System_Int32_System_Int16___C1_Util_DX_DirectWrite_ShapingGlyphProperties___System_Int32_C1_Util_DX_DirectWrite_FontFace_System_Single_System_Single_System_Nullable_C1_Util_DX_Matrix3x2__C1_Util_DX_Bool_C1_Util_DX_Bool_C1_Util_DX_Bool_C1_Util_DX_DirectWrite_ScriptAnalysis_System_String_System_IntPtr_System_Int32___System_Int32_System_Single___C1_Util_DX_DirectWrite_GlyphOffset___">GetGdiCompatibleGlyphPlacements(string, short[], ShapingTextProperties[], int, short[], ShapingGlyphProperties[], int, FontFace, float, float, Matrix3x2?, Bool, Bool, Bool, ScriptAnalysis, string, nint, int[], int, float[], GlyphOffset[])</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDWriteTextAnalyzer::GetGdiCompatibleGlyphPlacements([In, Buffer] const wchar_t* textString,[In, Buffer] const unsigned short* clusterMap,[In, Buffer] DWRITE_SHAPING_TEXT_PROPERTIES* textProps,[In] unsigned int textLength,[In, Buffer] const unsigned short* glyphIndices,[In, Buffer] const DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps,[In] unsigned int glyphCount,[In] IDWriteFontFace* fontFace,[In] float fontEmSize,[In] float pixelsPerDip,[In, Optional] const DWRITE_MATRIX* transform,[In] BOOL useGdiNatural,[In] BOOL isSideways,[In] BOOL isRightToLeft,[In] const DWRITE_SCRIPT_ANALYSIS* scriptAnalysis,[In, Optional] const wchar_t* localeName,[In, Optional] const void** features,[In, Buffer, Optional] const unsigned int* featureRangeLengths,[In] unsigned int featureRanges,[Out, Buffer] float* glyphAdvances,[Out, Buffer] DWRITE_GLYPH_OFFSET* glyphOffsets)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_GetGdiCompatibleGlyphPlacements_System_String_System_Int16___C1_Util_DX_DirectWrite_ShapingTextProperties___System_Int32_System_Int16___C1_Util_DX_DirectWrite_ShapingGlyphProperties___System_Int32_C1_Util_DX_DirectWrite_FontFace_System_Single_System_Single_System_Nullable_C1_Util_DX_Matrix3x2__System_Boolean_System_Boolean_System_Boolean_C1_Util_DX_DirectWrite_ScriptAnalysis_System_String_C1_Util_DX_DirectWrite_FontFeature_____System_Int32___System_Single___C1_Util_DX_DirectWrite_GlyphOffset___" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.GetGdiCompatibleGlyphPlacements(System.String,System.Int16[],C1.Util.DX.DirectWrite.ShapingTextProperties[],System.Int32,System.Int16[],C1.Util.DX.DirectWrite.ShapingGlyphProperties[],System.Int32,C1.Util.DX.DirectWrite.FontFace,System.Single,System.Single,System.Nullable{C1.Util.DX.Matrix3x2},System.Boolean,System.Boolean,System.Boolean,C1.Util.DX.DirectWrite.ScriptAnalysis,System.String,C1.Util.DX.DirectWrite.FontFeature[][],System.Int32[],System.Single[],C1.Util.DX.DirectWrite.GlyphOffset[])">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.GetGdiCompatibleGlyphPlacements.html#C1_Util_DX_DirectWrite_TextAnalyzer_GetGdiCompatibleGlyphPlacements_System_String_System_Int16___C1_Util_DX_DirectWrite_ShapingTextProperties___System_Int32_System_Int16___C1_Util_DX_DirectWrite_ShapingGlyphProperties___System_Int32_C1_Util_DX_DirectWrite_FontFace_System_Single_System_Single_System_Nullable_C1_Util_DX_Matrix3x2__System_Boolean_System_Boolean_System_Boolean_C1_Util_DX_DirectWrite_ScriptAnalysis_System_String_C1_Util_DX_DirectWrite_FontFeature_____System_Int32___System_Single___C1_Util_DX_DirectWrite_GlyphOffset___">GetGdiCompatibleGlyphPlacements(string, short[], ShapingTextProperties[], int, short[], ShapingGlyphProperties[], int, FontFace, float, float, Matrix3x2?, bool, bool, bool, ScriptAnalysis, string, FontFeature[][], int[], float[], GlyphOffset[])</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the GDI compatible glyph placements.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_GetGlyphPlacements_System_IntPtr_System_IntPtr_System_IntPtr_System_Int32_System_IntPtr_System_IntPtr_System_Int32_System_IntPtr_System_Single_C1_Util_DX_Bool_C1_Util_DX_Bool_C1_Util_DX_DirectWrite_ScriptAnalysis_System_IntPtr_System_IntPtr_System_IntPtr_System_Int32_System_IntPtr_System_IntPtr_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.GetGlyphPlacements(System.IntPtr,System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.Single,C1.Util.DX.Bool,C1.Util.DX.Bool,C1.Util.DX.DirectWrite.ScriptAnalysis,System.IntPtr,System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.GetGlyphPlacements.html#C1_Util_DX_DirectWrite_TextAnalyzer_GetGlyphPlacements_System_IntPtr_System_IntPtr_System_IntPtr_System_Int32_System_IntPtr_System_IntPtr_System_Int32_System_IntPtr_System_Single_C1_Util_DX_Bool_C1_Util_DX_Bool_C1_Util_DX_DirectWrite_ScriptAnalysis_System_IntPtr_System_IntPtr_System_IntPtr_System_Int32_System_IntPtr_System_IntPtr_">GetGlyphPlacements(nint, nint, nint, int, nint, nint, int, nint, float, Bool, Bool, ScriptAnalysis, nint, nint, nint, int, nint, nint)</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDWriteTextAnalyzer::GetGlyphPlacements([In, Buffer] const wchar_t* textString,[In, Buffer] const unsigned short* clusterMap,[In, Buffer] DWRITE_SHAPING_TEXT_PROPERTIES* textProps,[In] unsigned int textLength,[In, Buffer] const unsigned short* glyphIndices,[In, Buffer] const DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps,[In] unsigned int glyphCount,[In] IDWriteFontFace* fontFace,[In] float fontEmSize,[In] BOOL isSideways,[In] BOOL isRightToLeft,[In] const DWRITE_SCRIPT_ANALYSIS* scriptAnalysis,[In, Optional] const wchar_t* localeName,[In, Optional] const void** features,[In, Buffer, Optional] const unsigned int* featureRangeLengths,[In] unsigned int featureRanges,[Out, Buffer] float* glyphAdvances,[Out, Buffer] DWRITE_GLYPH_OFFSET* glyphOffsets)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_GetGlyphPlacements_System_String_System_Int16___C1_Util_DX_DirectWrite_ShapingTextProperties___System_Int32_System_Int16___C1_Util_DX_DirectWrite_ShapingGlyphProperties___System_Int32_C1_Util_DX_DirectWrite_FontFace_System_Single_C1_Util_DX_Bool_C1_Util_DX_Bool_C1_Util_DX_DirectWrite_ScriptAnalysis_System_String_System_IntPtr_System_Int32___System_Int32_System_Single___C1_Util_DX_DirectWrite_GlyphOffset___" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.GetGlyphPlacements(System.String,System.Int16[],C1.Util.DX.DirectWrite.ShapingTextProperties[],System.Int32,System.Int16[],C1.Util.DX.DirectWrite.ShapingGlyphProperties[],System.Int32,C1.Util.DX.DirectWrite.FontFace,System.Single,C1.Util.DX.Bool,C1.Util.DX.Bool,C1.Util.DX.DirectWrite.ScriptAnalysis,System.String,System.IntPtr,System.Int32[],System.Int32,System.Single[],C1.Util.DX.DirectWrite.GlyphOffset[])">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.GetGlyphPlacements.html#C1_Util_DX_DirectWrite_TextAnalyzer_GetGlyphPlacements_System_String_System_Int16___C1_Util_DX_DirectWrite_ShapingTextProperties___System_Int32_System_Int16___C1_Util_DX_DirectWrite_ShapingGlyphProperties___System_Int32_C1_Util_DX_DirectWrite_FontFace_System_Single_C1_Util_DX_Bool_C1_Util_DX_Bool_C1_Util_DX_DirectWrite_ScriptAnalysis_System_String_System_IntPtr_System_Int32___System_Int32_System_Single___C1_Util_DX_DirectWrite_GlyphOffset___">GetGlyphPlacements(string, short[], ShapingTextProperties[], int, short[], ShapingGlyphProperties[], int, FontFace, float, Bool, Bool, ScriptAnalysis, string, nint, int[], int, float[], GlyphOffset[])</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDWriteTextAnalyzer::GetGlyphPlacements([In, Buffer] const wchar_t* textString,[In, Buffer] const unsigned short* clusterMap,[In, Buffer] DWRITE_SHAPING_TEXT_PROPERTIES* textProps,[In] unsigned int textLength,[In, Buffer] const unsigned short* glyphIndices,[In, Buffer] const DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps,[In] unsigned int glyphCount,[In] IDWriteFontFace* fontFace,[In] float fontEmSize,[In] BOOL isSideways,[In] BOOL isRightToLeft,[In] const DWRITE_SCRIPT_ANALYSIS* scriptAnalysis,[In, Optional] const wchar_t* localeName,[In, Optional] const void** features,[In, Buffer, Optional] const unsigned int* featureRangeLengths,[In] unsigned int featureRanges,[Out, Buffer] float* glyphAdvances,[Out, Buffer] DWRITE_GLYPH_OFFSET* glyphOffsets)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_GetGlyphPlacements_System_String_System_Int16___C1_Util_DX_DirectWrite_ShapingTextProperties___System_Int32_System_Int16___C1_Util_DX_DirectWrite_ShapingGlyphProperties___System_Int32_C1_Util_DX_DirectWrite_FontFace_System_Single_System_Boolean_System_Boolean_C1_Util_DX_DirectWrite_ScriptAnalysis_System_String_C1_Util_DX_DirectWrite_FontFeature_____System_Int32___System_Single___C1_Util_DX_DirectWrite_GlyphOffset___" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.GetGlyphPlacements(System.String,System.Int16[],C1.Util.DX.DirectWrite.ShapingTextProperties[],System.Int32,System.Int16[],C1.Util.DX.DirectWrite.ShapingGlyphProperties[],System.Int32,C1.Util.DX.DirectWrite.FontFace,System.Single,System.Boolean,System.Boolean,C1.Util.DX.DirectWrite.ScriptAnalysis,System.String,C1.Util.DX.DirectWrite.FontFeature[][],System.Int32[],System.Single[],C1.Util.DX.DirectWrite.GlyphOffset[])">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.GetGlyphPlacements.html#C1_Util_DX_DirectWrite_TextAnalyzer_GetGlyphPlacements_System_String_System_Int16___C1_Util_DX_DirectWrite_ShapingTextProperties___System_Int32_System_Int16___C1_Util_DX_DirectWrite_ShapingGlyphProperties___System_Int32_C1_Util_DX_DirectWrite_FontFace_System_Single_System_Boolean_System_Boolean_C1_Util_DX_DirectWrite_ScriptAnalysis_System_String_C1_Util_DX_DirectWrite_FontFeature_____System_Int32___System_Single___C1_Util_DX_DirectWrite_GlyphOffset___">GetGlyphPlacements(string, short[], ShapingTextProperties[], int, short[], ShapingGlyphProperties[], int, FontFace, float, bool, bool, ScriptAnalysis, string, FontFeature[][], int[], float[], GlyphOffset[])</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the glyph placements.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_GetGlyphs_System_IntPtr_System_Int32_System_IntPtr_System_Boolean_System_Boolean_C1_Util_DX_DirectWrite_ScriptAnalysis_System_IntPtr_System_IntPtr_System_IntPtr_System_IntPtr_System_Int32_System_IntPtr_System_IntPtr_System_IntPtr_System_IntPtr_System_Int32__System_Boolean_" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.GetGlyphs(System.IntPtr,System.Int32,System.IntPtr,System.Boolean,System.Boolean,C1.Util.DX.DirectWrite.ScriptAnalysis,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.Int32@,System.Boolean)">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.GetGlyphs.html#C1_Util_DX_DirectWrite_TextAnalyzer_GetGlyphs_System_IntPtr_System_Int32_System_IntPtr_System_Boolean_System_Boolean_C1_Util_DX_DirectWrite_ScriptAnalysis_System_IntPtr_System_IntPtr_System_IntPtr_System_IntPtr_System_Int32_System_IntPtr_System_IntPtr_System_IntPtr_System_IntPtr_System_Int32__System_Boolean_">GetGlyphs(nint, int, nint, bool, bool, ScriptAnalysis, nint, nint, nint, nint, int, nint, nint, nint, nint, out int, bool)</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDWriteTextAnalyzer::GetGlyphs([In, Buffer] const wchar_t* textString,[In] unsigned int textLength,[In] IDWriteFontFace* fontFace,[In] BOOL isSideways,[In] BOOL isRightToLeft,[In] const DWRITE_SCRIPT_ANALYSIS* scriptAnalysis,[In, Optional] const wchar_t* localeName,[In, Optional] IDWriteNumberSubstitution* numberSubstitution,[In, Optional] const void** features,[In, Buffer, Optional] const unsigned int* featureRangeLengths,[In] unsigned int featureRanges,[In] unsigned int maxGlyphCount,[Out, Buffer] unsigned short* clusterMap,[Out, Buffer] DWRITE_SHAPING_TEXT_PROPERTIES* textProps,[Out, Buffer] unsigned short* glyphIndices,[Out, Buffer] DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps,[Out] unsigned int* actualGlyphCount)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_GetGlyphs_System_String_System_Int32_C1_Util_DX_DirectWrite_FontFace_C1_Util_DX_Bool_C1_Util_DX_Bool_C1_Util_DX_DirectWrite_ScriptAnalysis_System_String_C1_Util_DX_DirectWrite_NumberSubstitution_System_IntPtr_System_Int32___System_Int32_System_Int32_System_Int16___C1_Util_DX_DirectWrite_ShapingTextProperties___System_Int16___C1_Util_DX_DirectWrite_ShapingGlyphProperties___" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.GetGlyphs(System.String,System.Int32,C1.Util.DX.DirectWrite.FontFace,C1.Util.DX.Bool,C1.Util.DX.Bool,C1.Util.DX.DirectWrite.ScriptAnalysis,System.String,C1.Util.DX.DirectWrite.NumberSubstitution,System.IntPtr,System.Int32[],System.Int32,System.Int32,System.Int16[],C1.Util.DX.DirectWrite.ShapingTextProperties[],System.Int16[],C1.Util.DX.DirectWrite.ShapingGlyphProperties[])">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.GetGlyphs.html#C1_Util_DX_DirectWrite_TextAnalyzer_GetGlyphs_System_String_System_Int32_C1_Util_DX_DirectWrite_FontFace_C1_Util_DX_Bool_C1_Util_DX_Bool_C1_Util_DX_DirectWrite_ScriptAnalysis_System_String_C1_Util_DX_DirectWrite_NumberSubstitution_System_IntPtr_System_Int32___System_Int32_System_Int32_System_Int16___C1_Util_DX_DirectWrite_ShapingTextProperties___System_Int16___C1_Util_DX_DirectWrite_ShapingGlyphProperties___">GetGlyphs(string, int, FontFace, Bool, Bool, ScriptAnalysis, string, NumberSubstitution, nint, int[], int, int, short[], ShapingTextProperties[], short[], ShapingGlyphProperties[])</a>
        </td>
        <td class="markdown level1 summary"><p>HRESULT IDWriteTextAnalyzer::GetGlyphs([In, Buffer] const wchar_t* textString,[In] unsigned int textLength,[In] IDWriteFontFace* fontFace,[In] BOOL isSideways,[In] BOOL isRightToLeft,[In] const DWRITE_SCRIPT_ANALYSIS* scriptAnalysis,[In, Optional] const wchar_t* localeName,[In, Optional] IDWriteNumberSubstitution* numberSubstitution,[In, Optional] const void** features,[In, Buffer, Optional] const unsigned int* featureRangeLengths,[In] unsigned int featureRanges,[In] unsigned int maxGlyphCount,[Out, Buffer] unsigned short* clusterMap,[Out, Buffer] DWRITE_SHAPING_TEXT_PROPERTIES* textProps,[Out, Buffer] unsigned short* glyphIndices,[Out, Buffer] DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps,[Out] unsigned int* actualGlyphCount)</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_GetGlyphs_System_String_System_Int32_C1_Util_DX_DirectWrite_FontFace_System_Boolean_System_Boolean_C1_Util_DX_DirectWrite_ScriptAnalysis_System_String_C1_Util_DX_DirectWrite_NumberSubstitution_C1_Util_DX_DirectWrite_FontFeature_____System_Int32___System_Int32_System_Int16___C1_Util_DX_DirectWrite_ShapingTextProperties___System_Int16___C1_Util_DX_DirectWrite_ShapingGlyphProperties___" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.GetGlyphs(System.String,System.Int32,C1.Util.DX.DirectWrite.FontFace,System.Boolean,System.Boolean,C1.Util.DX.DirectWrite.ScriptAnalysis,System.String,C1.Util.DX.DirectWrite.NumberSubstitution,C1.Util.DX.DirectWrite.FontFeature[][],System.Int32[],System.Int32,System.Int16[],C1.Util.DX.DirectWrite.ShapingTextProperties[],System.Int16[],C1.Util.DX.DirectWrite.ShapingGlyphProperties[])">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.GetGlyphs.html#C1_Util_DX_DirectWrite_TextAnalyzer_GetGlyphs_System_String_System_Int32_C1_Util_DX_DirectWrite_FontFace_System_Boolean_System_Boolean_C1_Util_DX_DirectWrite_ScriptAnalysis_System_String_C1_Util_DX_DirectWrite_NumberSubstitution_C1_Util_DX_DirectWrite_FontFeature_____System_Int32___System_Int32_System_Int16___C1_Util_DX_DirectWrite_ShapingTextProperties___System_Int16___C1_Util_DX_DirectWrite_ShapingGlyphProperties___">GetGlyphs(string, int, FontFace, bool, bool, ScriptAnalysis, string, NumberSubstitution, FontFeature[][], int[], int, short[], ShapingTextProperties[], short[], ShapingGlyphProperties[])</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the glyphs (TODO doc)</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="operators">Operators
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Util_DX_DirectWrite_TextAnalyzer_op_Explicit_System_IntPtr__C1_Util_DX_DirectWrite_TextAnalyzer" data-uid="C1.Util.DX.DirectWrite.TextAnalyzer.op_Explicit(System.IntPtr)~C1.Util.DX.DirectWrite.TextAnalyzer">
          <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.op_Explicit.html#C1_Util_DX_DirectWrite_TextAnalyzer_op_Explicit_System_IntPtr__C1_Util_DX_DirectWrite_TextAnalyzer">explicit operator TextAnalyzer(nint)</a>
        </td>
        <td class="markdown level1 summary"><p>Performs an explicit conversion from <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.intptr">nint</a> to <a class="xref" href="C1.Util.DX.DirectWrite.TextAnalyzer.html">TextAnalyzer</a>.</p>
</td>
      </tr>
    </tbody>
  </table>

</div>
