MiscFlags D3D11_RESOURCE_MISC_GDI_COMPATIBLE используется для текстуры, совместимой с GDI, но IDXGISurface1 :: GetDC создает исключение - PullRequest
0 голосов
/ 18 февраля 2019

Я создаю текстуру с помощью MiscFlags D3D11_RESOURCE_MISC_GDI_COMPATIBLE.Тем не менее уровень отладки показывает следующую ошибку.Если я использую D3D10_RESOURCE_MISC_GDI_COMPATIBLE флаг CreateTexture2D () - выдает исключение.Почему уровень отладки ожидает D3D10_RESOURCE_MISC вместо D3D11_RESOURCE_MISC?

DXGI ERROR: IDXGISurface1 :: GetDC: GetDC можно вызывать только для текстур, которые были созданы с флагом D3D10_RESOURCEIB_MISC.[РАЗНАЯ ОШИБКА № 89:]

TRY_POINTER(renderer);
D3D11_TEXTURE2D_DESC desc;
ZeroMemory(&desc, sizeof(desc));
desc.Width = gsl::narrow_cast<UINT>(width);
desc.Height = gsl::narrow_cast<UINT>(height);
desc.ArraySize = 1;
desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM;
desc.Usage = D3D11_USAGE_DEFAULT;
desc.BindFlags = D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET;
desc.CPUAccessFlags = 0;
desc.MipLevels = 1;
desc.SampleDesc.Count = 1;
desc.MiscFlags = D3D11_RESOURCE_MISC_GDI_COMPATIBLE;

ID3D11DevicePtr device = renderer->Device();
ID3D11Texture2DPtr  texture2D;
IF_FAILED_THROW_HR(device->CreateTexture2D(&desc, nullptr, &texture2D));

1 Ответ

0 голосов
/ 27 февраля 2019

Извините.Это моя вина.IDXGISurface1 обнулялся до использования DC, совместимого с GDI, с поверхности.Теперь это работает!Нет ошибок DXGI.

...