일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Tips강좌
- doit코틀린프로그래밍
- 티스토리
- 문법
- Visual Studio
- Direct2D
- 이지스퍼블리싱
- 연산자
- Tips프로그래밍강좌
- Windows
- 김성엽
- Win32
- Desktop
- VS ERROR
- Javascript
- 프로그래밍
- c#
- 백준
- 함수
- 포인터
- 배열
- Kotlin
- CS
- c
- Programming
- 리뷰
- tipssoft
- c++
- 알고리즘
- 지식나눔강좌
Archives
- Yesterday
- Today
- Total
F.R.I.D.A.Y.
Direct2D - D2D1CreateFactory() 본문
반응형
Factory 객체를 생성하는 함수
D2D1CreateFactory
Direct2D를 이용할 때, 각종 리소스(이미지) 등을 생성할 수 있도록 제공하는 객체가 바로 ID2D1Factory 인터페이스로 만들어진 객체다. 이 객체를 생성할 수 있도록 도와주는 함수가 D2D1CreateFactory 함수다.
함수 원형
HRESULT D2D1CreateFactory(
D2D1_FACTORY_TYPE factoryType,
REFIID riid,
const D2D1_FACTORY_OPTIONS *pFactoryOptions,
void **ppIFactory
);
D2D1_FACTORY_TYPE
해당 팩토리 객체를 단일 스레드로 이용할 것인지 멀티 스레드 환경으로 이용할 것인지를 정하는 옵션.
REFIID
ID2D1Factory 인터페이스의 ID를 전달하는 인자.
__uuid(ID2D1Factory)
처럼 사용할 수 있다.
이 인자가 필요한 이유는 인터페이스를 링커로 연견할 때 GUID[# UUID라고도 불린다.]가 필요한데, 이 값은 extern으로 정의되어 있으며 실제 값은 정적 라이브러리(lib)에서 가져온다. 따라서 링커로 연결할 때 라이브러리 연결이 필요한데 링킹 작업 중에 라이브러리 연결을 피한다.[# Microsoft Visual C++의 언어 확장이라고]
D2D1_FACTORY_OPTIONS
ID2D1Factory 객체의 디버깅 수준을 가지고 있다. 아직 알 필요 없는 걸로.
void* ppIFactory
함수의 결과로 나온 Factory 객체를 저장할 포인터 주소다.
생성 코드
ID2D1Factory *pFactory;
HRESULT hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &pFactory);
// D2D1CreateFactory 성공시 hr에는 S_OK 상수가 들어가 있다.
소개한 함수 원형과는 달리 첫 인자와 네 번째 인자만 입력해도 된다.[# overload 기능 덕]
# index
728x90
반응형
'DEV > Direct2D' 카테고리의 다른 글
Direct2D - DrawRectangle() (0) | 2021.04.05 |
---|---|
Direct2D - Resize() (0) | 2021.04.04 |
Direct2D - Clear() (0) | 2021.04.04 |
Direct2D - CreateHwndRenderTarget() (0) | 2021.04.04 |
Direct2D 기본 구조(Factory, RenderTarget) (0) | 2021.04.04 |
Comments