DirectWrite 사용.
IDWriteTextLayout 인터페이스 제공.
*텍스트 그리기 함수들.
DrawText: 간단한 렌더링 방법 제공. IDWriteTextFormat 객체로 포매팅을 명시.
DrawTextLayout: 복잡한 레이아웃과 융통성을 제공. IDWriteTextFormat 객체로 포매팅을 명시.
DrawGlyphRun: 글리프(glyph) 레벨의 정교한 제어가 가능. 측정(measurement) 지원 함수들을 사용 제어값을 만듬.
*단순하게 텍스트 그리기.
// 초기화 설정.
// ID2D1Factorys는 D2D1CreateFactory 함수 호출 생성.
ID2D1Factory* pD2DFactory = NULL;
D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &pD2DFactory);
// IDWriteFactory는 DWriteCreateFactory 함수 호출 생성.
IDWriteFactory* pDWriteFactory = NULL;
DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(pDWriteFactory), reinterpret_cast<IUnknown**>(&pDWriteFactory));
// IDWriteTextFormat 객체 생성.
IDWriteTextFormat* pTextFormat = NULL;
pDWriteFactory->CreateTextFormat(
L"Verdana", // 폰트 패밀리 이름의 문자열
NULL, // 폰트 컬렉션 객체, NULL=시스템 폰트 컬렉션
DWRITE_FONT_WEIGHT_NORMAL, // 폰트 굵기. LIGHT, NORMAL, BOLD 등.
DWRITE_FONT_STYLE_NORMAL, // 폰트 스타일. NORMAL, OBLIQUE, ITALIC.
DWRITE_FONT_STRETCH_NORMAL, // 폰트 간격. CONDENSED, NORMAL, MEDIUM, EXTEXDED 등.
50, // 폰트 크기.
L"", // 로케일을 문자열로 명시. 영어-미국=L"en-us", 한국어-한국=L"ko-kr"
&pTextFormat
);
// IDWriteTextFormat의 SetXxx 호출하여 포맷 속성 지정.
pTextFormat->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_CENTER); // 문단 센터 정렬
pTextFormat->SetParagraphAlignment(DWRITE_PARAGRAPH_ALIGNMENT_CENTER); // 문장 내의 수직 정렬
// ID2D1RenderTarget의 DrawText 함수 호출.
D2D1_SIZE_F rSize = gp_render_target->GetSize();
gp_render_target->DrawText(
L"Hello, World!", // WCHAR* 문자열
13, // 문자의 개수
pTextFormat, // IDWriteTextFormat 텍스트 포맷
D2D1::RectF(0, 0, rSize.width, rSize.height), // 그려질 영역의 크기와 위치.
pTextBrush // 붓(brush)
);
|
cs |
'::public > 윈도우즈 응용 프로그래밍' 카테고리의 다른 글
Direct2D - 비트맵(Bitmap) (0) | 2019.09.27 |
---|---|
Direct2D - 붓(Brush) (0) | 2019.09.27 |
Direct2D - 기하 (0) | 2019.09.26 |
Direct2D - 변환 (0) | 2019.09.26 |
Direct2D - 렌더타겟 (0) | 2019.09.26 |