C++ - 重新解释此数据的最快方法
C++ - Fastest way to reinterpret this data
假设我有以下类:
class DX11ConstantBuffer
{
public:
ID3D11Buffer *pData;
};
我在函数中收到此类的数组:
DX11ConstantBuffer **pp
我的包装器(DX11ConstantBuffer
)包含一个指向ID3D11Buffer
的指针。以下函数:
pDevcon->VSSetConstantBuffers
需要一个指向 ID3D11Buffer
s 数组的指针,
ID3D11Buffer *const *ppConstantBuffers
当函数收到指向我自己的包装器数组的指针时,从中创建ID3D11Buffer
数组的最快方法是什么?为了更清楚:
void ...(DX11ConstantBuffer **pp, ....)
{
ID3D11Buffer** _pp = GetAllID3D11BufferElementsFrom(pp);
pDevcon->VSSetConstantBuffers(..., _pp, ...);
}
该函数旨在每帧调用几次。
最快的方法是主动的,即在需要调用 VSSetConstantBuffers
之前维护一个连续的ID3D11Buff*
数组,为此您需要一个std::vector<ID3D11Buff*>
。 您可以在设置DX11ConstantBuffer::pData
或DX11ConstantBuffer
析构函数运行时更新vector
,并且如果您希望更好地保证可以pData
私有并具有可以可靠地拦截更改的访问器函数。
如果你不主动地这样做,那么对于你当前的对象,你别无选择,只能迭代DX11ConstantBuffer
s,并将ID3D11Buf*
s逐个复制到数组/向量中。
你可以使包装器继承自它所包含的类型。
相关文章:
- 通过JNI传递数据数组的最快方法是什么
- 如何使用curlpp通过POST方法上传文件和json数据
- 有哪些有效的方法可以消除一组 100 万个字符串>重复数据?
- 拥有映射的现代方法,该映射可以指向或引用已在堆栈上分配的不同类型的数据
- 将线程中的数据存储到全局容器的最佳方法?
- 将复杂的非基元C++数据类型转换为 Erlang/Elixir 格式,以使用 NIF 导出方法
- 在C++中查找像素 RGB 数据的最快方法是什么?
- 构造智能点数据类型以及普通数据类型的通用方法
- 将传入的网络"char*"数据转换为"uint8_t"并返回的安全方法是什么?
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?
- 在 c++ 中解析数据包数据的最佳方法是什么?
- 处理编译器关于可能丢失数据的警告的最优雅方法是什么
- 创建异构顶点数据数组的可移植方法
- 使用 memcpy 将矢量数据复制到 wstring 的正确方法
- 在 std::vector<无符号字符中存储任意数据的方法>
- 在C++事务之间存储大量字符数据的有效方法
- 学习数据结构和算法的简单方法
- C++中的多维数据集:从 std::vector 的 2D 数据到 std::vector 的 2D 网格的最干净方法?
- C++ 使用派生类方法更改基类数据成员
- 调试数据方法 Q抽象表模型