GDI와 D3D11을 사용하여 텍스처에 텍스트를 그릴 때 도움이 필요합니다. 나는 D2D/DirectWrite를 사용해 보았지만, 필요에 따라 D3D10 만 지원하고 D3D11은 지원하지 않습니다. 내가 시도한 모든 것이 지금까지 실패했습니다 ... 이제 GDI 메서드를 사용하여 텍스처를 작성하고 싶습니다. D3D11 : GXDI 표면에 GDI 텍스트를 그리는 방법? (D2D없이)
Usage = D3D11_USAGE_DEFAULT;
Format = DXGI_FORMAT_B8G8R8A8_UNORM;
BindFlags = D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET;
CPUAccessFlags = 0;
MiscFlags = D3D11_RESOURCE_MISC_GDI_COMPATIBLE
그럼 내가 여기에 마이크로 소프트 SAIS 등이 질감에서 정상 RenderTargetView을 만들어 :이 PARAMS와 그래서 나는 질감을 만들어
http://msdn.microsoft.com/en-us/library/ff476203%28v=vs.85%29.aspx
다음 단계 :
m_pTexFSText->QueryInterface(__uuidof(IDXGISurface1), (void **)(&m_pDXGISurface));
다음 DXGI 인터페이스를 가져옵니다
렌더링 기능에서 나는 단지 다음과 같습니다 :
m_pDeviceContext->OMSetRenderTargets(1,&m_pTextRenderTarget,NULL);
HDC hDc = NULL;
if(FAILED(m_pDXGISurface->GetDC(TRUE,&hDc)))
return E_FAIL;
COLORREF bla = SetPixel(hDc,1,1,RGB(255,255,255));
bool hmm = TextOutA(hDc, 10, 10, "LALALA!", 7);
if(FAILED(m_pDXGISurface->ReleaseDC(NULL)))
return E_FAIL;
문제는 GDI 드로잉 후에 텍스처가 여전히 비어 있다는 것입니다 (또한 PIX로 테스트 됨). 모든 것이 작동하며 오류 메시지가 없습니다.
아무도 작동 원리를 설명 할 수 있기를 바랍니다.
감사합니다, 스테판
편집 : (설명서에 따라) GetDC(FALSE,&hDc)
과 또한 그것을 시도하지 : 동일한 결과 -> 아무것도.
'DXGI_FORMAT_R8G8B8A8_UINT' 형식을 사용해 보셨습니까? GDI 호환 질감 위의 링크에 다큐에 따라 – Necrolis
특별한 형식이 "당신은 다음과 같은 유형 중 하나에 질감 형식을 설정해야합니다 DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_B8G8R8A8_TYPELESS, DXGI_FORMAT_B8G8R8A8_UNORM_SRGB"필요 – sandicz