miscflags d3d11_resource_misc_gdi_compatible用于GDI兼容纹理,而idxgi
MiscFlags D3D11_RESOURCE_MISC_GDI_COMPATIBLE is used for GDI compatible texture, yet IDXGISurface1::GetDC throws exception
我正在用Miscflags D3D11_Resource_Misc_gdi_compatible创建纹理。但是调试层显示以下错误。如果我使用 d3d10_resource_misc_gdi_compatible flag createTexture2d() - 引发异常。为什么调试层期望D3D10_RESOURCE_MISC代替D3D11_RESOURCE_MISC?
dxgi错误:idxgisurface1 :: getDC:GetDC只能为使用D3D10_RESOURCE_MISC_GDI_GDI_COMPATIBLE FLAG创建的纹理调用GETDC。[其他错误#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));
对不起。我的错。在从表面兼容GDI兼容DC之前,idxgisurface1已无效。现在正在工作!无DXGI错误。
相关文章:
- OpenInventor从9.8升级到10.4.2后,GLSL纹理返回零
- SFML纹理像播放器
- OpenGL大的3D纹理(>2GB)非常慢
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- 着色器纹理值与创建纹理时写入的值不同
- OpenGL将纹理四边形渲染为(0,0)
- 宽度为奇数的16位纹理为片状
- 使用 CUDA 和纹理进行图像减法
- 在不使用统一的情况下将纹理传递给 GLSL 着色器?
- 将使用太多的纹理插值器 - 带旋转的着色器
- dx11 渲染到纹理仅显示透明颜色
- OpenGL 4.3 错误地将第 4 个纹理坐标映射到与第 3 个纹理坐标相同的位置
- 如何使用 DXGI 格式DXGI_FORMAT_R1_UNORM创建 2D 纹理?
- 纹理单位重叠?渲染了错误的纹理
- SFML 纹理变换(放大)
- SDL2 二维纹理分配/池化
- Qt OpenGL 渲染到纹理性能问题
- 为什么我会得到黑色纹理?
- glBindTexture 是否覆盖活动纹理单元的内容
- miscflags d3d11_resource_misc_gdi_compatible用于GDI兼容纹理,而idxgi