gpt4 book ai didi

c++ - 将 D3DFMT_UNKNOWN 传递到 IDirect3DDevice9::CreateTexture()

转载 作者:行者123 更新时间:2023-11-30 04:40:31 27 4
gpt4 key购买 nike

我有点想知道,如果您使用 CreateTexture 函数在 DirectX 的内存中创建纹理:

HRESULT CreateTexture(
UINT Width,
UINT Height,
UINT Levels,
DWORD Usage,
D3DFORMAT Format,
D3DPOOL Pool,
IDirect3DTexture9** ppTexture,
HANDLE* pSharedHandle
);

...并以 D3DFMT_UNKNOWN 格式传递到底应该发生什么?如果我尝试获取第一层或第二层的表面会导致错误吗?它能失败吗?图形设备会选择它选择的随机格式吗?这会导致不同显卡型号/品牌之间出现问题吗?

最佳答案

我刚刚试了一下,基本上没有失败

Usage 设置为 D3DUSAGE_RENDERTARGETD3DUSAGE_DYNAMIC 时,它始终显示为 D3DFMT_A8R8G8B8,无论是什么我对后台缓冲区格式或其他设置做了。不知道是不是我显卡的问题。我的猜测是指定未知意味着“为我选择”,并且 32 位格式对我的卡来说是最简单的。

当使用 D3DUSAGE_DEPTHSTENCIL 时,它始终失败。

所以我最好的结论是指定 D3DFMT_UNKNOWN 作为格式让 DirectX 选择它应该是什么。或者它可能总是默认为 D3DFMT_A8R8G8B

遗憾的是,我无法在任何地方的任何文档中确认任何这一点。 :|

关于c++ - 将 D3DFMT_UNKNOWN 传递到 IDirect3DDevice9::CreateTexture(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1204452/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com