GDI と D3D11 を使用してテキストをテクスチャに描画する際に助けが必要です。D2D/DirectWrite を使用してみましたが、必要に応じて D3D11 ではなく D3D10 のみをサポートしています。これまで試したことはすべて失敗しました... GDI メソッドを使用してテクスチャに書き込みたいと思います。だから私はこのパラメータでテクスチャを作成しました:
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
次に、マイクロソフトがここで言うように、このテクスチャから通常の RenderTargetView を作成しました。
次のステップ: DXGI インターフェイスを取得します。
m_pTexFSText->QueryInterface(__uuidof(IDXGISurface1), (void **)(&m_pDXGISurface));
Render 関数では、次のようにします。
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)
:同じ結果->何もありません。