DirectX 11 中的 pd3dDevice 是啥?

Posted

技术标签:

【中文标题】DirectX 11 中的 pd3dDevice 是啥?【英文标题】:What is pd3dDevice in DirectX 11?DirectX 11 中的 pd3dDevice 是什么? 【发布时间】:2022-01-15 21:37:33 【问题描述】:

我目前正在为一个大学项目尝试在 DirectX 11 中使 UI 透明,并且正在查看 Microsoft 文档中的混合状态和其他资源。我不断遇到pd3dDevice,我真的迷失了它是什么。我找了很多地方只是为了看到人们在使用它,但没有提及它是什么。

我首先在这里找到它:Configuring Blending Functionality: Create the Blend State,我正在尝试找到一种使用它或以任何方式访问它的方法,但我找不到它是什么或它引用了什么。

ID3D11BlendState1* g_pBlendStateNoBlend = NULL;

D3D11_BLEND_DESC1 BlendState;
ZeroMemory(&BlendState, sizeof(D3D11_BLEND_DESC1));
BlendState.RenderTarget[0].BlendEnable = FALSE;
BlendState.RenderTarget[0].RenderTargetWriteMask = 
D3D11_COLOR_WRITE_ENABLE_ALL;
pd3dDevice->CreateBlendState1(&BlendState, &g_pBlendStateNoBlend);

【问题讨论】:

首先我要问你对 DirectX 11 了解多少?你能创建一个基本的应用程序吗?因为如果可以,你就不会问这个问题。为了回答你的问题,我会说在做任何事情之前先学习 DirectX 的基础知识,所以我建议你阅读 Frank Luna 的“使用 DirectX 11 进行 3D 游戏编程简介” 【参考方案1】:

这是ID3D11Device1*

要找到这个,除了p 代表“指针”的名称之外,只需谷歌搜索该方法,因为它通常具有足够的判别力,例如,这里CreateBlendState1 将引导您到ID3D11Device1::CreateBlendState1

【讨论】:

这是 字面意思在 OP 链接到的文档中说明的,就在引用的代码 sn-p 的正上方:“混合状态是用于控制混合。这些状态(在D3D11_BLEND_DESC1 中定义)用于通过调用ID3D11Device1::CreateBlendState1 创建混合状态对象。" @RemyLebeau - 这对你(和我)来说可能很明显,但对于不了解 pd3dDevice 是什么的 OP 来说显然不是,这就是我给出额外提示的原因。

以上是关于DirectX 11 中的 pd3dDevice 是啥?的主要内容,如果未能解决你的问题,请参考以下文章

巫师3directx11是啥

使用 DirectX11 更新非 UI 线程中的顶点缓冲区

DirectX11第二篇 DirectX11渲染管线(2016.05.09更新)

DirectX11第二篇 DirectX11渲染管线(2016.05.09更新)

DirectX11第六篇 纹理映射

DirectX11第十篇 其他灯光类型——点光源