2013-01-06 21 views
0

기본적으로 3D 스왑 체인에서 2D 드로잉을하고 싶습니다. 그러나 내 코드는 소스 코드가없는 다른 프로그램에 삽입됩니다.DirectDraw (2d) 오버레이가있는 Direct3D 11

드로잉을 할 수는 있지만 DXGI_FORMAT_B8G8R8A8_UNORM (BGR) 형식으로 스왑 체인을 만든 경우에만 작동합니다.

Originaly이 프로그램은 DXGI_FORMAT_R8G8B8A8_UNORM (RGB)을 사용하고 프로그램을 BGR로 전환하면 프로그램이 창/화면 외부에서 렌더링됩니다. 거의 모든 것이 더 큽니다.

RGB를 사용하여 2D로 Direct3D 11을 상호 운용하거나 응용 프로그램 렌더링이 BGR에서 올바르게 작동하도록 만드는 방법이 있습니까? 스왑 체인이 DXGI_FORMAT_R8G8B8A8_UNORM 형식으로 작성됩니다

+0

3d swapchain에 2d를 그리는 코드는 다음 예제를 기반으로합니다. http://www.gamedev.net/topic/552795-solved-d3d11-and-direct2d/ –

답변

0

경우에 당신은 당신이 렌더링 타겟의 CreateBitmapFromDxgiSurface 방법에 전달 Direct2D의 비트 맵 속성이 같은 DXGI_FORMAT_R8G8B8A8_UNORM 픽셀 형식을 지정하는지 확인해야합니다.

+0

그러나 URL에 따라 테스트와 테스트 Direct2D 상호 운용성을 위해서는 D3D11_CREATE_DEVICE_BGRA_SUPPORT가 필요합니다. –

+0

예,이 플래그는 필수이지만 스왑 체인 형식이 BGRA 여야한다는 의미는 아닙니다. 혼란 스럽긴하지만 Direct2D는 BGRA 픽셀 포맷 그 이상을 지원합니다. –

+0

CreateBitmapFromDxgiSurface는 Windows 8 API 인 것 같습니다. 저는 Vista/Win7 API를 원합니다. –