【发布时间】:2020-05-21 00:41:49
【问题描述】:
我知道这个函数会创建一个“缓冲区”。但究竟什么是缓冲区?它是内存中的COM 对象吗?如果是,那么在我的理解中,这个函数接受一个描述符和一些初始数据在内存中创建这个COM对象,然后将输入ID3D11Buffer**指向的ID3D11Buffer指针设置到接口在新创建的 COM 对象中。一旦 COM 对象被创建,初始化数据就不再需要了,我们可以删除它们。一旦我们调用 ID3DBuffer::Release(),下划线的 COM 对象就会被销毁。我的理解正确吗?
【问题讨论】:
-
一般来说,您不需要也无法知道。这些缓冲区可以在 Direct3D 设备(比如硬件 Nvidia 卡)或软件中通过 Warp 驱动程序创建。或者可能根本没有缓冲区。你不知道也不需要知道。只需按照文档说明进行操作即可。
-
好吧,但我认为我需要比文档更多的解释才能使语法对我有意义,例如为什么我需要输入 ID3D11Buffer**,以及它将指向什么在我调用 CreateBuffer 函数后
-
Windows 编程不能以这种方式工作。我们经常做一些事情,因为这就是文档所说的。您不知道缓冲区指向的位置,就像您不知道 HWND 实际包含什么一样。只需在文档说需要时使用它。
标签: c++ graphics directx computer-science directx-11