2. 시스템 사양
사양
최소
클라이언트
Windows 8
Platform Update for Windows 7 SP1
서버
Windows Server 2012
Platform Update for Windows
Server 2008 R2
Windows 7 SP1, Windows Server 2008 R2에선
Platform Update를 설치하셔야 됩니다.
3. 머임 그게
기존의 Vista, 7에서의 Direct2D는
ID2D1****RenderTarget 사용
렌더 타겟이 리소스 생성과 렌더링을 동시에 수행
이제는
ID2D1DeviceContext를 사용한다!
이제는 #include <d2d1_1.h> (없다고 뭐라 말기)
4. 장치 문맥의 장점
1. Windows Store 앱 개발 가능
2. 렌더 타겟을 지정 가능(윈도우에 그렸다가, 서피스에 그렸다가…)
3. 장치 문맥을 여러 개 생성 가능(멀티 스레딩에 효과적)
4. Direct3D와 같이 사용하기 편해짐
5. ID2D1RenderTarget의 기능 상속(도형, 문자열 렌더링도 지원함!)
6. 새로운 Direct2D 기능들 사용 가능(프린터 제어, 색상 문맥, 효과)
5. 생성 방법
1.
D2D1CreateDevice() 함수로 ID2D1Device 객체 생성
2.
ID2D1Device::CreateDeviceContext() 메서드로 ID2D1DeviceContext 객체 생성
위 2과정을 D2D1CreateDeviceContext() 함수로 한번에 가능
3.
ID2D1DeviceContext::SetTarget(ID2D1Image*) 메서드로 렌더 타겟 지정
6. 렌더 타겟의 종류
ID2D1Image 인터페이스를 상속하는 인터페이스들
1.
2.
비트맵(ID2D1Bitmap, ID2D1Bitmap1)
생성 단계에서 D2D1_BITMAP_OPTIONS_TARGET 옵션이 지정되어야 함.
명령 리스트(ID2D1CommandList*)
그러나, 다른 장치 문맥에서 SetTarget() 메서드로 지정된 후
그 문맥에서 EndDraw() 메서드로 렌더링이
끝나지 않았을 경우 타겟으로 지정할 수 없다.
Ex) 잘못된 예
Ctx1->Set(A)
Ctx1->Set(null)
Ctx2->Set(A)
Ctx1->EndDraw()
7. 렌더 타겟용 비트맵 만들어보기
ID2D1DeviceContext::CreateBitmap()
ID2D1DeviceContext::CreateBitmapFromDxgiSurface() DXGI Surface로부터
ID2D1DeviceContext::CreateBitmapFromWicBitmap() WIC Bitmap으로부터
D2D1_BITMAP_PROPERTIES1 구조체를 인자로 필요
bitmapOptions 필드에 D2D1_BITMAP_OPTIONS_TARGET을 OR(‘|’)로 묶어서 저장
D2D1::BitmapProperties1() 함수를 활용!
DXGI Surface의 경우 Usage에 DXGI_USAGE_RENDER_TARGET_OUTPUT값을 지녀야 함.
또한 만드는 Direct3D 장치가 D3D11_CREATE_DEVICE_RGBA_SUPPORT 옵션을 지니고 있어야 하며,
기능 수준 9.1(D3D_FEATURE_LEVEL_9_1) 이상 이여야 함.
8. 끝
예제 따위…(퍽)
내용 얼마 안돼요… 흑흑 봐줘요
PPT로 만드니까 편하네요
출처: MSDN - Windows Desktop Dev Center – Direct2D
http://msdn.microsoft.com/en-us/library/windows/desktop/dd370990(v=vs.85).aspx