일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Javascript
- 문법
- VS ERROR
- 이지스퍼블리싱
- 김성엽
- 프로그래밍
- 알고리즘
- c
- 티스토리
- CS
- doit코틀린프로그래밍
- Visual Studio
- Direct2D
- c++
- c#
- Tips프로그래밍강좌
- Tips강좌
- Programming
- 포인터
- 리뷰
- 함수
- tipssoft
- Windows
- Desktop
- 백준
- Kotlin
- 지식나눔강좌
- 연산자
- 배열
- Win32
Archives
- Yesterday
- Today
- Total
F.R.I.D.A.Y.
Direct2D - D2D1CreateFactory() 본문
반응형

Factory 객체를 생성하는 함수
Index
- D2D1CreateFactory
- 함수 원형
- D2D1_FACTORY_TYPE
- REFIID
- D2D1_FACTORY_OPTIONS
- void* ppIFactory
- 생성 코드
- 함수 원형
D2D1CreateFactorycopy^
Direct2D를 이용할 때, 각종 리소스(이미지) 등을 생성할 수 있도록 제공하는 객체가 바로 ID2D1Factory 인터페이스로 만들어진 객체다. 이 객체를 생성할 수 있도록 도와주는 함수가 D2D1CreateFactory 함수다.
함수 원형copy^
HRESULT D2D1CreateFactory(
D2D1_FACTORY_TYPE factoryType,
REFIID riid,
const D2D1_FACTORY_OPTIONS *pFactoryOptions,
void **ppIFactory
);
D2D1_FACTORY_TYPEcopy^
해당 팩토리 객체를 단일 스레드로 이용할 것인지 멀티 스레드 환경으로 이용할 것인지를 정하는 옵션.
REFIIDcopy^
ID2D1Factory 인터페이스의 ID를 전달하는 인자.
__uuid(ID2D1Factory)
처럼 사용할 수 있다.
이 인자가 필요한 이유는 인터페이스를 링커로 연견할 때 GUID[1]가 필요한데, 이 값은 extern으로 정의되어 있으며 실제 값은 정적 라이브러리(lib)에서 가져온다. 따라서 링커로 연결할 때 라이브러리 연결이 필요한데 링킹 작업 중에 라이브러리 연결을 피한다.[2]
D2D1_FACTORY_OPTIONScopy^
ID2D1Factory 객체의 디버깅 수준을 가지고 있다. 아직 알 필요 없는 걸로.
void* ppIFactorycopy^
함수의 결과로 나온 Factory 객체를 저장할 포인터 주소다.
생성 코드copy^
ID2D1Factory *pFactory;
HRESULT hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &pFactory);
// D2D1CreateFactory 성공시 hr에는 S_OK 상수가 들어가 있다.
소개한 함수 원형과는 달리 첫 인자와 네 번째 인자만 입력해도 된다.[3]
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 |