ID2D1RenderTarget::DrawText не получилось завести?
У меня затык в CreateDxgiSurfaceRenderTarget на таком коде:
if (filterState == State_Running) {
hr = ProcessDX11(pBackBuffer, false);
}
{
IDXGISurface* pDxgiSurface = nullptr;
hr = pBackBuffer->QueryInterface(&pDxgiSurface);
// Create the DXGI Surface Render Target.
FLOAT dpiX;
FLOAT dpiY;
m_pD2dFactory->GetDesktopDpi(&dpiX, &dpiY);
D2D1_RENDER_TARGET_PROPERTIES props = D2D1::RenderTargetProperties(D2D1_RENDER_TARGET_TYPE_DEFAULT, D2D1::PixelFormat(DXGI_FORMAT_UNKNOWN, D2D1_ALPHA_MODE_PREMULTIPLIED), dpiX, dpiY);
CComPtr pD2dRT;
hr = m_pD2dFactory->CreateDxgiSurfaceRenderTarget(pDxgiSurface, &props, &pD2dRT);
if (S_OK == hr) {
ID2D1SolidColorBrush* pD2dBrush = nullptr;
hr = pD2dRT->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::Yellow), &pD2dBrush);
if (S_OK == hr) {
pD2dRT->BeginDraw();
pD2dRT->DrawLine(D2D1::Point2F(0, 0), D2D1::Point2F(100, 100), pD2dBrush, 0.5f);
pD2dRT->EndDraw();
}
}
}
hr = m_pDXGISwapChain1->Present(0, 0);
[merge_posts_bbcode]Добавлено: 2018-03-26 21:07:29[/merge_posts_bbcode]
Я тут ради эксперимента убрал ручную загрузку dxva2.dll. Теперь она загружается сразу при запуске рендерера (либо используется загруженная декодером/плеером). Если надо загружать только при первом обращении, то можно прописать в /DELAYLOAD (такое у нас используется в плеере для gdiplus.dll). Тоже самое можно без проблем проделать с d3d9.dll.