DirectWrite의 새로운 기능
이 항목에서는 Windows 10의 다양한 릴리스에 대한 DirectWrite 의 새로운 사항에 대해 설명합니다.
Windows 앱 SDK
이 Windows 앱 SDK DWriteCore라는 새 버전의 DirectWrite를 소개합니다. 자세한 내용은 DWriteCore 개요를 참조하세요.
Windows 10 2019년 5월 업데이트
Windows 10 버전 1903(10.0; 빌드 18362)(Windows 10 2019년 5월 업데이트라고도 합니다.
Windows 10 2018년 10월 업데이트
Windows 10 버전 1809(10.0; 빌드 17763)(Windows 10 2018년 10월 업데이트이라고도 합니다.
새로 만들기
- DWRITE_FONT_SOURCE_TYPE 열거형
- IDWriteFontSet3 인터페이스 및 해당 메서드
Windows 10 2018년 4월 업데이트
Windows 10 버전 1803(10.0; 빌드 17134)-Windows 10 2018년 4월 업데이트라고도 합니다.
새로 만들기
- IDWriteFactory7 인터페이스 및 해당 메서드
- IDWriteFontCollection3 인터페이스 및 해당 메서드
- IDWriteFontSet2 인터페이스 및 해당 메서드
Windows 10 Fall Creators Update
Windows 10 버전 1709(10.0; 빌드 16299)-Windows 10 Fall Creators Update라고도 합니다.
새로 만들기
- DWRITE_AUTOMATIC_FONT_AXES 열거형
- DWRITE_FONT_AXIS_ATTRIBUTES 열거형
- DWRITE_FONT_AXIS_TAG 열거형
- DWRITE_FONT_FAMILY_MODEL 열거형
- IDWriteFactory6 인터페이스 및 해당 메서드
- IDWriteFontCollection2 인터페이스 및 해당 메서드
- IDWriteFontFace5 인터페이스 및 해당 메서드
- IDWriteFontFaceReference1 인터페이스 및 해당 메서드
- IDWriteFontFallback1 인터페이스 및 해당 메서드
- IDWriteFontFamily2 인터페이스 및 해당 메서드
- IDWriteFontList2 인터페이스 및 해당 메서드
- IDWriteFontResource 인터페이스 및 해당 메서드
- IDWriteFontSet1 인터페이스 및 해당 메서드
- IDWriteFontSetBuilder2 인터페이스 및 해당 메서드
- IDWriteTextFormat3 인터페이스 및 해당 메서드
- IDWriteTextLayout4 인터페이스 및 해당 메서드
- DWRITE_MAKE_FONT_AXIS_TAG 매크로
- DWRITE_FONT_AXIS_RANGE 구조체
- DWRITE_FONT_AXIS_VALUE 구조체
이동됨
DWRITE_GLYPH_IMAGE_FORMATS 열거형이 .로 dwrite_3.h
dcommon.h
이동했습니다.
Windows 10 크리에이터스 업데이트
Windows 10 버전 1703(10.0; 빌드 15063)(Windows 10 크리에이터스 업데이트이라고도 합니다.
클라우드 글꼴 및 사용자 지정 글꼴 집합에 대한 확장된 API 지원
Windows 10에는 앱이 Windows 글꼴 서비스에서 글꼴에 쉽게 액세스할 수 있는 API가 포함되어 있습니다. Windows 10 크리에이터스 업데이트 원격 글꼴에 대한 API는 HTTP 또는 HTTPS를 사용하여 액세스할 수 있는 웹의 다른 원본에서 글꼴에 쉽게 액세스할 수 있도록 확장됩니다.
새 원격 글꼴 API는 공용 또는 프라이빗 웹 서비스와 함께 사용할 수 있습니다. 또한 원시, OpenType 글꼴 파일(.ttf, .otf., .ttc, .otc) 또는 WOFF 또는 WOFF2 컨테이너 형식으로 패키지된 글꼴에 액세스하는 데 사용할 수 있습니다. 새 API는 원격 글꼴 데이터를 다운로드하기 위한 요청을 큐에 대기시키고 실제 다운로드 프로세스를 처리하기 위해 기존 API와 함께 사용됩니다.
다른 새 API를 사용하면 앱이 로컬 파일 시스템에 저장되거나 메모리 버퍼에 로드되는 사용자 지정 글꼴로 더 쉽게 작업할 수 있습니다.
원격 글꼴, 사용자 지정 글꼴 집합 또는 WOFF/WOFF2 컨테이너 형식을 사용하기 위한 새 API에 대한 자세한 내용은 다음 항목을 참조하세요.
해당 항목에 제공된 API 참조 항목에 대한 링크도 참조하세요. 사용자 지정 글꼴 작업에 새 API와 기존 API를 사용하는 것도 DirectWrite 사용자 지정 글꼴 집합 샘플에 설명되어 있습니다. 이 샘플에서는 디스크의 로컬 글꼴, 웹의 원격 글꼴, 메모리 내 글꼴 데이터, 압축된 WOFF 또는 WOFF2 형식의 글꼴 등 여러 시나리오에 대한 코드 구현을 보여 줍니다.
OpenType 글꼴 변형에 대한 초기 지원
OpenType 글꼴 형식 사양의 버전 1.8은 OpenType 글꼴 변형이라는 형식에 흥미로운 새 확장을 도입했습니다. 변수 글꼴의 명명된 인스턴스를 지원하도록 directWrite가 Windows 10 크리에이터스 업데이트 업데이트되었습니다. 자세한 내용은
Windows 10 1주년 업데이트
Windows 10 버전 1607(10.0; 빌드 14393)-Windows 10 1주년 업데이트라고도 합니다.
향상된 컬러 글꼴 지원
Windows 10 1주년 업데이트부터 DirectWrite는 다양한 색 글꼴 형식을 기본적으로 지원하므로 개발자는 DirectWrite 기반 앱에서 그 어느 때보다 많은 유형의 글꼴을 사용할 수 있습니다. 여기에는 다음에 대한 지원이 포함됩니다.
- 글꼴에서 압축 벡터 콘텐츠를 사용할 수 있는 'COLR' OpenType 테이블입니다. (Windows 8.1 이후 지원됨)
- 글꼴에서 SVG 콘텐츠를 사용할 수 있도록 하는 'SVG' OpenType 테이블입니다.
- 글꼴에서 색 비트맵 콘텐츠를 사용할 수 있는 'CBDT' OpenType 테이블입니다.
- 글꼴에서 색 비트맵 콘텐츠를 사용할 수 있는 'sbix' OpenType 테이블입니다.
텍스트 렌더링에 DirectWrite를 사용하는 Direct2D는 D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT 플래그를 사용할 때 이러한 색 글꼴 형식을 자동으로 지원합니다. 자세한 내용은 아래 항목을 참조하세요.
Adobe Typekit 및 기타 글꼴 서비스 클라이언트 지원
Adobe Typekit과 같은 일부 글꼴 서비스에는 사용자가 서비스에서 글꼴을 로드하고 Windows 컴퓨터의 다른 애플리케이션에서 사용할 수 있는 클라이언트 쪽 유틸리티가 있습니다. 이러한 유틸리티는 일반적으로 시스템에 글꼴을 영구적으로 설치하는 대신 GDI를 런타임으로 호출하여 추가 글꼴을 로드하는 작업을 수행합니다. 이러한 디자인으로 인해 이전 Windows 버전에서는 GDI 기반 애플리케이션에서 글꼴을 사용할 수 있지만 DirectWrite 애플리케이션에서는 사용할 수 없습니다. Windows 10 1주년 업데이트부터 이러한 유틸리티에 의해 로드된 글꼴은 DirectWrite 및 GDI에서도 사용할 수 있습니다.
글꼴 서비스 유틸리티에 의해 로드된 글꼴은 IDWriteFactory::GetSystemFontCollection 메서드를 호출하여 얻은 시스템 글꼴 컬렉션에 표시됩니다. 글꼴 서비스는 일반적으로 사용자별 라이선스 모델을 따르기 때문에 이러한 유틸리티에서 로드한 글꼴은 사용자 단위로 관리됩니다. 따라서 기존 DirectWrite 애플리케이션은 애플리케이션에 필요한 코드 변경 없이 최종 사용자가 이러한 서비스를 사용하여 얻은 글꼴을 활용하여 사용자에게 보다 원활한 환경을 제공할 수 있습니다.
CFF 개요를 사용하여 OpenType 컬렉션 지원
OpenType 및 TrueType 글꼴 형식은 여러 글꼴이 "글꼴 컬렉션"이라는 단일 글꼴 파일로 함께 패키지되는 기능을 오랫동안 지원해 왔습니다. OpenType 사양에서는 항상 글꼴에서 문자 모양 윤곽선 데이터에 TrueType 또는 CFF 형식을 사용할 수 있습니다. 그러나 최근까지는 문자 모양 윤곽선이 TrueType 형식을 사용하는 컬렉션에 대해서만 사양이 허용되었습니다. 이제 OpenType 버전 1.7을 사용하면 컬렉션에서 문자 모양 개요 데이터에 TrueType 또는 CFF 형식을 사용할 수 있습니다. Windows 10 1주년 업데이트부터 DirectWrite는 CFF 개요 데이터를 사용하여 OpenType 컬렉션을 지원합니다.
Windows 10
Windows 글꼴 서비스 통합
Windows 10부터 Windows에 포함된 글꼴은 온라인 서비스에서 사용할 수 있으며 모든 Windows 10 디바이스에서 DirectWrite를 통해 액세스할 수 있습니다. 이는 모든 Windows 10 버전에 적용됩니다. 이렇게 하면 글꼴이 장치에 현재 설치되어 있지 않더라도 응용 프로그램에서 Windows 글꼴을 사용하여 콘텐츠를 표시할 수 있습니다.
DirectWrite 글꼴 서비스 메커니즘에 대한 지원은 XAML 프레임워크에서 구현되었습니다. 즉, XAML을 사용하는 모든 애플리케이션은 글꼴 서비스를 활용하기 위해 코드를 변경할 필요가 없습니다. XAML(다운로드 가능한 글꼴) 코드 샘플에서 이를 보여 줍니다. DirectWrite API를 직접 호출하는 애플리케이션은 새 API를 사용하여 글꼴 서비스 메커니즘을 사용해야 합니다. 자세한 내용은 아래 항목을 참조하세요.
- IDWriteFactory3::GetSystemFontCollection 메서드
- IDWriteTextLayout3 인터페이스
- IDWriteFontDownloadQueue 인터페이스
- IDWriteFontDownloadListener 인터페이스
다운로드 가능한 글꼴(DirectWrite) 코드 샘플에서는 몇 가지 새 API를 사용하는 방법을 보여 줍니다.
글꼴 집합 API
DirectWrite의 글꼴 컬렉션 인터페이스는 가중치, 늘이기 및 스타일을 하위 패밀리 특성으로 사용하여 글꼴 패밀리별로 구성된 글꼴 컬렉션에 대한 보기를 제공합니다. 내부적으로 DirectWrite는 다양한 특성이 있는 글꼴의 플랫 목록을 사용하여 글꼴 컬렉션 인터페이스를 구현합니다. 이 방법은 가중치/스트레치/스타일 패밀리의 열거를 지원할 수 있지만 다른 글꼴 특성을 사용하여 쿼리 및 필터링도 지원할 수 있다는 측면에서 더 유연합니다.
Windows 10에서는 IDWriteFontSet 및 관련 API를 통해 애플리케이션에서 보다 유연한 글꼴 처리 메커니즘을 사용할 수 있습니다. 예를 들어 글꼴 집합 API를 사용하여 사용자 지정 글꼴 집합에서 애플리케이션 사용자 지정 글꼴 속성을 활용하는 사용자 지정 글꼴 선택기 사용자 인터페이스를 만들 수 있습니다.
자세한 내용은 아래 항목을 참조하세요.
- IDWriteFontSet 인터페이스
- IDWriteFontSetBuilder 인터페이스
- DWRITE_FONT_PROPERTY_ID 열거형
- IDWriteFontFactory3::GetSystemFontSet 메서드
새 텍스트 레이아웃 줄 간격 모드
DirectWrite의 텍스트 형식 및 텍스트 레이아웃 인터페이스는 새로운 줄 간격 모드를 지원합니다. 이전 버전에서는 DirectWrite의 텍스트 레이아웃 구현을 통해 각 줄의 높이가 줄 내의 가장 높은 항목("기본" 모드)에 따라 자동으로 설정되는 줄 간격 또는 모든 줄이 애플리케이션에 의해 결정된 균일한 높이("균일" 모드)로 설정된 줄 간격을 허용했습니다. Windows 10에서는 애플리케이션에 줄 간격 동작에 대한 더 많은 옵션을 제공하는 추가 "비례" 줄 간격 모드가 지원됩니다. 자세한 내용은 아래 항목을 참조하세요.
- IDWriteTextLayout3 인터페이스
- IDWriteTextLayout3::SetLineSpacing 메서드
- DWRITE_LINE_SPACING 구조체
- DWRITE_LINE_SPACING_METHOD 열거형
- DWRITE_FONT_LINE_GAP_USAGE 열거형
- IDWriteTextLayout3::GetLineMetrics 메서드
- DWRITE_LINE_METRICS1 구조체
DirectWrite(줄 간격) 코드 샘플은 몇 가지 새로운 API를 사용하는 방법을 보여 주며, 사용 가능한 다양한 줄 간격 옵션을 훨씬 쉽게 이해할 수 있도록 다양한 줄 간격 모드를 시각화합니다.
GDI interop
Windows 7에 도입된 이후 DirectWrite는 원래 GDI의 글꼴 모델, 텍스트 레이아웃 및 렌더링을 사용하여 구현된 애플리케이션에 대한 마이그레이션 경로를 제공했습니다. [IDWriteGdiInterop]] 인터페이스를 통해 제공되었습니다. Windows 10에서 추가 API는 추가 GDI interop 기능을 제공합니다. 자세한 내용은 다음 항목을 참조하세요.
- IDWriteGdiInterop1 인터페이스
Windows 8.1
색 글꼴 렌더링
Windows Windows 8.1부터 DirectWrite는 색 글꼴을 지원합니다. 텍스트 렌더링에 DirectWrite를 사용하는 Direct2D는 텍스트를 그릴 때 이 기능을 사용하도록 설정하기 위해 D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT 열거형 값을 추가했습니다. 자세한 내용은 아래 항목을 참조하세요.
- D2D1_DRAW_TEXT_OPTIONS 열거형
- IDWriteFactory2::TranslateColorGlyphRun 메서드
Windows 8
사용할 수 있는 추가 인터페이스를 만들기 위한 새 팩터리 인터페이스 IDWriteFactory1입니다.
추가 글꼴 속성(예: super/subscript, caret slope, PANOSE 및 유니코드 범위).
문자 간격 제어, 레거시 커닝 쌍 및 근거와 같은 간격이 향상되었습니다. 자세한 내용은 근거, 커닝 및 간격 항목을 참조하세요.
렌더링 대상 및 매개 변수가 개선되었습니다.
텍스트 복잡성 분석 개선.
새 스크립트 속성, 새 스크립트 지원(유니코드 6), 글꼴 대체 추가, 쌍을 이루는 괄호 및 양방향 보강.
글꼴 캐시 성능이 향상되었습니다. Windows 8부터 글꼴 캐시는 전역이며 컴퓨터가 부팅되면 시작됩니다.
새 렌더링 모드입니다.
Windows 8 부터 DirectWrite 는 세계 시장을 위한 앱을 만드는 데 도움이 되는 다양한 기능을 지원합니다.
다음은 전 세계 고객에게 맞게 조정할 수 있는 풍부한 텍스트 앱을 구현하는 데 도움이 되는 몇 가지 영역입니다.
중국어, 일본어 및 한국어 확장 C 및 D
유니코드 컨소시엄은 몇 년마다 중국어, 일본어 및 한국 통합 표기법 블록에 대한 표준화된 추가 목록을 릴리스합니다. 유니코드 6.0 수정 버전을 사용하여 확장 블록 C 및 D를 릴리스했습니다. 이러한 표기법 블록은 유니코드 웹 사이트 확장 C 및 확장 D에서 찾을 수 있습니다.
Windows 8 부터 DirectWrite 는 이러한 새로운 표준화된 CJK Ideographs 블록에 대한 유니코드 코드 포인트를 지원하므로 DirectWrite 앱에서 사용할 수 있습니다.
인도 루피 기호
2005년 3월, 인도 정부는 인도 루피 통화의 상징을 선택하는 경쟁을 발표했다. 많은 경쟁이 끝난 후, 2010년 7월 15일, 인도 정부는 D. 우다야 쿠마르가 만든 디자인을 선택했으며 DirectWrite 에는 기호에 연결된 유니코드 코드 포인트에 대한 지원이 포함되어 있습니다. 따라서 DirectWrite 앱은 이제 이 통화 기호를 지원합니다.
Emoji
이제 DirectWrite 는 앱에서 이모지 사용을 지원합니다. 이모지 표기법의 렌더링을 시도하는 경우 누락된 문자 모양 상자가 표시된 이전 버전의 DirectWrite입니다. Windows 8부터 DirectWrite는 이모지와 연결된 유니코드 코드 블록을 지원하므로 앱이 이모지에 유니코드 표준 코드 포인트를 사용하는 경우 적절한 문자 모양을 표시합니다.
미얀마어, 티피나, 옛 한글어
Windows 8부터 DirectWrite는 미얀마, Tiffinagh 및 이전 한글 언어의 문자 모양에 해당하는 유니코드 코드 포인트 블록을 지원하므로 이러한 세 언어의 텍스트를 포함하는 앱을 만들 수 있습니다. DirectWrite는 이러한 문자를 지원하는 것 외에도 이전 한글이 줄 바꿈을 처리하는 고유한 방법을 지원합니다.
새 스크립트
Windows 8 부터 GetScriptProperties 메서드는 여러 새 스크립트에 대한 정보를 반환합니다. 다음은 Windows 8 이후에서 DirectWrite에서 지원하는 스크립트 목록입니다.
- 아베스탄 주
- Bamum
- 바탁 ()
- 브라미 주
- 이집트 상형 문자
- 임페리얼 아라마이크
- 비문 팔라비
- 비문 파르티안
- 자바어
- 카이티 시
- 리수어(프레이저)
- 만다이크어
- Meetei Mayek
- 올드 사우스 아라비아
- 올드 터키어(오르콘)
- 사마리아
- 타이탐 (란나)
- 타이 비엣