문자 모양 및 문자 모양 실행
문자 모양 및 문자 모양 실행은 문자 모양 렌더링 계층인 DirectWrite API의 가장 낮은 기능 계층에서 사용할 수 있습니다.
글리프
문자 모양은 지정된 글꼴의 문자에 대한 실제 표현입니다. 문자에는 문자 모양이 많을 수 있으며 시스템의 각 글꼴은 해당 문자에 대해 다른 문자 모양을 정의할 수 있습니다.
둘 이상의 문자 모양은 단일 문자 모양으로 결합 할 수도 있습니다,이 프로세스는 문자 모양 컴퍼지션이라고합니다. 이것은 또한 반대 방향으로 수행 될 수 있습니다., 단일 문자 모양 여러 문자 모양으로 분할 되 고, 문자 모양 분해로 알려진.
대체 문자 모양
글꼴은 다음 스크린샷과 같이 Pericles OpenType 글꼴의 스타일 대체 문자 모양과 같은 문자에 대체 문자 모양을 제공할 수 있습니다. 'A', 'E' 및 'O' 문자는 스타일 대체 문자 모양으로 렌더링됩니다.
대체 문자 모양을 사용하여 "a", "e" 및 "o"가 있는 "고대 녹색 신화"의 스크린샷을
대체 문자 모양의 또 다른 예는 swash 문자 모양입니다. 다음 스크린샷은 Pescadero 글꼴에 대한 표준 및 스와시 문자 모양을 보여 줍니다.
표준 및 스와시 문자 모양.
보다 정교한 대체 문자 모양을 포함한 스와시 및 기타 입력 기능은 OpenType통해 사용할 수 있습니다. OpenType 입력 기능은 IDWriteTextLayout::SetTypography 사용하고 원하는 기능과 연결된 DWRITE_FONT_FEATURE_TAG 열거형 상수에 전달하여 텍스트 범위에 적용할 수 있습니다.
문자 모양 실행
문자 모양 실행은 모두 동일한 글꼴 얼굴과 크기뿐만 아니라 동일한 클라이언트 그리기 효과가 있는 경우 연속된 문자 모양 집합을 나타냅니다. 밑줄 및 취소선은 적용된 텍스트 범위에 대한 문자 모양 실행의 일부가 아니며 나중에 그려집니다. 이미지와 같은 인라인 개체도 글꼴의 일부가 아니므로 별도로 그려집니다.
IDWriteFontFace 인터페이스
DirectWrite WPF(Windows Presentation Foundation)와 동일한 시스템을 사용하여 각 글꼴 패밀리당 여러 실제 글꼴이 있을 수 있습니다. DirectWrite의 IDWriteFontFace 인터페이스와 같은 글꼴 면은 특정 가중치, 기울기 및 스트레치를 사용하여 실제 글꼴을 나타냅니다. 여기에는 글꼴 얼굴 유형, 적절한 파일 참조, 얼굴 식별 데이터 및 메트릭, 이름 및 문자 모양 윤곽선과 같은 다양한 글꼴 데이터가 포함됩니다.
IDWriteFontFace 글꼴 이름에서 직접 만들거나 글꼴 컬렉션에서 가져올 수 있습니다.
문자 모양 메트릭
개별 문자 모양에는 연결된 메트릭이 있습니다. IDWriteFontFace::GetDesignGlyphMetrics 메서드를 사용하여 문자 모양 실행의 모든 문자 모양에 대한 메트릭을 가져올 수 있습니다. 이렇게 하면 전폭, 왼쪽 및 오른쪽 베어링, 위쪽 및 아래쪽 베어링, 높이 및 세로 기준선 원점이 있는 DWRITE_GLYPH_METRICS 구조체가 반환됩니다.
다음 다이어그램에서는 서로 다른 두 문자 모양 문자의 다양한 메트릭을 보여 줍니다.
두 개의 서로 다른 문자 모양다이어그램
문자 모양 실행 그리기
사용자 지정 텍스트 렌더러를 구현할 때 문자 모양 렌더링은 IDWriteTextRenderer파생된 클래스의 일부로 구현하는 콜백 메서드인 idWriteTextRenderer::D rawGlyphRun의해 처리됩니다. DrawGlyphRun 전달되는 DWRITE_GLYPH_RUN 구조체에는 전체 문자 모양 실행에 대한 글꼴 면을 나타내는 fontFace라는 IDWriteFontFace 개체가 포함되어 있습니다.
또한 IDWriteFontFace 개체는 Direct2D사용하여 렌더링할 때 ID2D1SimplifiedGeometrySink 같은 지정된 기하 도형 싱크 콜백을 사용하여 문자 모양 윤곽선을 계산하는 GetGlyphRunOutline 메서드를 제공합니다.
자세한 내용은 사용자 지정 텍스트 렌더러를 구현하는 방법 항목을 참조하세요.