다음을 통해 공유


IDWriteFactory::CreateGlyphRunAnalysis 메서드(dwrite.h)

문자 모양 실행을 렌더링하는 데 사용되는 정보를 캡슐화하는 문자 모양 실행 분석 개체를 만듭니다.

구문

HRESULT CreateGlyphRunAnalysis(
  [in]           DWRITE_GLYPH_RUN const  *glyphRun,
                 FLOAT                   pixelsPerDip,
  [in, optional] DWRITE_MATRIX const     *transform,
                 DWRITE_RENDERING_MODE   renderingMode,
                 DWRITE_MEASURING_MODE   measuringMode,
                 FLOAT                   baselineOriginX,
                 FLOAT                   baselineOriginY,
  [out]          IDWriteGlyphRunAnalysis **glyphRunAnalysis
);

매개 변수

[in] glyphRun

형식: const DWRITE_GLYPH_RUN*

문자 모양 실행의 속성을 포함하는 구조체입니다(글꼴 얼굴, 진행 등).

pixelsPerDip

형식: FLOAT

DIP당 물리적 픽셀 수(디바이스 독립적 픽셀). 예를 들어 96 DPI 비트맵에 렌더링하는 경우 pixelsPerDip 은 1입니다. 120 DPI 비트맵에 렌더링하는 경우 pixelsPerDip 은 1.25입니다.

[in, optional] transform

형식: const DWRITE_MATRIX*

문자 모양 및 해당 위치에 적용되는 선택적 변환입니다. 이 변환은 크기 조정에서 emSizepixelsPerDip을 지정한 후에 적용됩니다.

renderingMode

형식: DWRITE_RENDERING_MODE

래스터 렌더링 모드 중 하나여야 하는 렌더링 모드를 지정하는 값입니다(즉, 기본값이 아니고 윤곽선이 아님).

measuringMode

형식: DWRITE_MEASURING_MODE

문자 모양과 함께 사용할 측정 모드를 지정합니다.

baselineOriginX

형식: FLOAT

기준선 원점의 가로 위치(X 좌표)(DIP)입니다.

baselineOriginY

형식: FLOAT

기준선 원점의 세로 위치(Y 좌표)(DIP)입니다.

[out] glyphRunAnalysis

형식: IDWriteGlyphRunAnalysis**

이 메서드가 반환되면 새로 만든 문자 모양 실행 분석 개체에 대한 포인터의 주소가 포함됩니다.

반환 값

형식: HRESULT

메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

문자 모양 실행 분석 개체에는 모든 문자 모양 위치와 글꼴 캐시의 모든 래스터화된 문자 모양에 대한 참조를 포함하여 문자 모양 실행을 분석한 결과가 포함됩니다.

예제

다음 코드 예제에서는 문자 모양 실행 분석 개체를 만드는 방법을 보여 줍니다. 이 예제에서는 빈 문자 모양 실행이 사용되고 있습니다.

HRESULT CreateGlyphRunAnalysis(IDWriteFontFace *pFontFace, IDWriteGlyphRunAnalysis **ppGlyphRunAnalysis)
{
    HRESULT hr = S_OK;
    IDWriteFactory* pDWriteFactory = NULL;

    // Create the DirectWrite factory.
    hr = DWriteCreateFactory(
            DWRITE_FACTORY_TYPE_SHARED,
            __uuidof(IDWriteFactory),
            reinterpret_cast<IUnknown**>(&pDWriteFactory)
            );

    DWRITE_GLYPH_RUN emptyGlyphRun = { 0 };
    UINT16 glyphIndex = 0;
    
    emptyGlyphRun.fontFace = pFontFace;
    emptyGlyphRun.glyphIndices = &glyphIndex;
    emptyGlyphRun.glyphCount = 0;
   
    emptyGlyphRun.fontEmSize = 12;

    IDWriteGlyphRunAnalysis* pGlyphRunAnalysis = NULL;

    if (SUCCEEDED(hr))
    {
        hr = pDWriteFactory->CreateGlyphRunAnalysis(
            &emptyGlyphRun,
            1.0f, // pixelsPerDip,
            NULL, // transform,
            DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC,
            DWRITE_MEASURING_MODE_GDI_CLASSIC,
            0.0f, // baselineOriginX,
            0.0f, // baselineOriginY,
            &pGlyphRunAnalysis);
    }
    
    *ppGlyphRunAnalysis = pGlyphRunAnalysis;

    SafeRelease(&pDWriteFactory);

    return S_OK;
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7, Windows Vista SP2 및 Windows Vista용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 R2, Windows Server 2008 SP2 및 Windows Server 2008용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 dwrite.h
라이브러리 Dwrite.lib
DLL Dwrite.dll

추가 정보

IDWriteFactory