셰이핑 엔진 사용

Uniscribe는 특정 스크립트에 대한 레이아웃 지식이 포함된 여러 셰이핑 엔진을 사용합니다. 또한 문자 모양 생성, 익스텐트 측정 및 단어 분리 지원과 같은 글꼴 관련 스크립트 기능을 처리하기 위해 OpenType 레이아웃 셰이핑 엔진을 활용합니다. Uniscribe는 유니코드 양방향 알고리즘을 사용하여 양방향 문자 다시 정렬을 관리하고 아랍어, 히브리어 및 태국어 셰이핑에 대한 비 OpenType 레이아웃 글꼴 형식을 이해합니다.

각 셰이핑 엔진에 할당된 정확한 코드 포인트 범위는 다를 수 있으므로 스크립트 번호는 SCRIPT_UNDEFINED 제외하고 게시되지 않습니다. 그러나 애플리케이션은 전역 스크립트 속성 테이블에 액세스하는 ScriptGetProperties 함수를 호출하여 스크립트의 특성을 테스트할 수 있습니다. 애플리케이션은 전역 스크립트 속성을 사용하여 자체 레이아웃 규칙을 필요한 셰이핑 엔진 분할과 결합하는 데 도움이 될 수 있습니다.

애플리케이션은 ScriptShape 함수를 호출하여 셰이핑 엔진에 액세스합니다. 모든 복잡한 스크립트 셰이핑 엔진, 숫자 셰이핑 엔진 및 ASCII 셰이핑 엔진은 셰이핑하기 전에 디바이스 컨텍스트 핸들에 표시된 글꼴의 유효성을 검사합니다. 읽기 가능하려면 ScriptItemize 함수에서 반환된 스크립트를 사용하여 복잡한 스크립트를 셰이밍해야 합니다. 다른 실행은 SCRIPT_ANALYSIS 구조체의 eScript 멤버에 지정된 SCRIPT_UNDEFINED 셰이핑된 경우 읽을 수 있지만 입력 품질이 손실될 수 있습니다.

ScriptShape 는 성공하면 0을 반환하거나 애플리케이션에서 제공하는 글꼴에 충분한 문자 모양이나 셰이핑 테이블이 없는 경우 USP_E_SCRIPT_NOT_IN_FONT. 애플리케이션이 SCRIPT_UNDEFINED 지정하고 일부 문자가 글꼴에서 지원되지 않는 경우 함수는 여전히 성공합니다. 이 경우 애플리케이션은 문자 모양 출력 버퍼에서 누락된 문자 모양이 있는지 검사해야 합니다. 누락된 문자 모양을 처리하는 전략은 글꼴 대체 사용을 참조하세요.

Uniscribe 사용