일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 백준
- 연산자
- 문법
- 알고리즘
- 포인터
- VS ERROR
- c
- 티스토리
- 함수
- Kotlin
- Win32
- Tips강좌
- 이지스퍼블리싱
- c#
- Visual Studio
- CS
- Desktop
- Windows
- Direct2D
- doit코틀린프로그래밍
- Javascript
- 프로그래밍
- 지식나눔강좌
- Programming
- c++
- tipssoft
- Tips프로그래밍강좌
- 김성엽
- 배열
- 리뷰
Archives
- Yesterday
- Today
- Total
F.R.I.D.A.Y.
DirectWrite - IDWriteFactory 본문
반응형
Direct2D에서 텍스트 출력을 시행하기 전, 필요한 리소스를 생성할 수 있는 인터페이스
IDWriteFactory
IUnknown 인터페이스로부터 상속받았기 때문에, 종종 IUnknown 으로 캐스팅해 넘길 때가 있습니다.
CreateTextFormat
텍스트 레이아웃을 위한 객체를 생성합니다. 여기에서 텍스트 레이아웃이란 텍스트를 그릴 영역의 크기를 의미합니다. 만일 이 레이아웃의 크기보다 그리게 되는 텍스트의 크기가 큰 경우에는 알맞게 조정됩니다. 단, 영역 외로 그리지 못하게 했다면 해당 영역에 그려지는 부분만 화면에 노출됩니다.
이런 식의 텍스트를 그린다고 했을 때, 빨간 색 영역만큼을 텍스트 레이아웃으로 정하게 한 뒤, 문자열을 그리게 하면, ex의 일부만 나오게 되는 것입니다.
이렇게 말이죠.
함수 원형
HRESULT CreateTextFormat(
WCHAR const *fontFamilyName,
IDWriteFontCollection *fontCollection,
DWRITE_FONT_WEIGHT fontWeight,
DWRITE_FONT_STYLE fontStyle,
DWRITE_FONT_STRETCH fontStretch,
FLOAT fontSize,
WCHAR const *localeName,
IDWriteTextFormat **textFormat
);
fontFamilyName
폰트 이름입니다.
fontCollection
만들게 되는 폰트를 저장할 컬렉션인 듯하다.[# 자세한건 알아봐야 할 듯]
fontWeight
fontStyle
fontStretch
폰트의 폭, 스타일, 늘이기 정도[# 만일 '-' 이란 문자를 두 배 만큼 늘이게 되면 '--'가 출력하는 길이만큼 '-' 문자가 늘어지는 것이라 보면 된다]
fontSize
폰트의 크기. DIPs 를 기준으로 생성한다. 물리 픽셀 단위가 아니다. 따라서 프로그램을 DIPs에 반응하도록 구성하지 않았다면 아래 포스트에서 제기하는 추가 문제에서 크기가 달라지는 상황이 발생할 수 있다.
localeName
지역명이다. 한국은 ko-kr로 설정하면 될 듯.
textFormat
해당 함수로 만들어진 텍스트 레이아웃을 저장할 포인터의 주소를 가진다.
# index
728x90
반응형
'DEV > Direct2D' 카테고리의 다른 글
Direct2D - WIC를 이용해 이미지 그리기 (1) | 2021.04.24 |
---|---|
Direct2D - WIC 비트맵 그리기 사전 작업 (0) | 2021.04.24 |
DirectWrite - DirectWrite 되짚기 (0) | 2021.04.14 |
DirectWrite - 텍스트 출력하기 2 (0) | 2021.04.13 |
DirectWrite - 텍스트 출력하기 1 (2) | 2021.04.10 |
Comments