#pragma once #include "Runtime/Render/Windows/CoreDXIncludes.h" using namespace Microsoft::WRL; class XD3D12DeviceComponent; class XD3D12Device; class XNoncopyable; class XD3D12CommandListManager : public XD3D12DeviceComponent, public XNoncopyable { public: explicit XD3D12CommandListManager(XD3D12Device* dev) : XD3D12DeviceComponent(dev) { } void CreateCommandList(); void CreateCommandAllocator(); void CreateCommandQueue(); void Initialize() override; ID3D12CommandAllocator* GetCommandAllocator() const { return mCommandAllocPtr.Get(); } ID3D12GraphicsCommandList* GetCommandList()const { return mCommandListPtr.Get(); } ID3D12CommandQueue* GetCommandQueue()const { return mCommandQueuePtr.Get(); } protected: //命令分配器 //用于创建命令的分配器, 这个分配器需要与CommandList绑定 ComPtr<ID3D12CommandAllocator> mCommandAllocPtr = nullptr; //命令列表 //命令列表其实还不是命令队列, 这个List通过增删改查,来修改命令的顺序优先级 //中间包含多个api方法实际上就是提交命令 ComPtr<ID3D12GraphicsCommandList> mCommandListPtr = nullptr; //命令队列 //等上面的List确定好之后在提交到这个命令队列中, 提交到GPU中执行 ComPtr<ID3D12CommandQueue> mCommandQueuePtr = nullptr; }; XD3D12CommandListManager.h(13, 62): [C2504] “XD3D12DeviceComponent”: 未定义基类
时间: 2024-03-31 19:34:48 浏览: 112
#pragma预处理命令整理
根据代码,XD3D12DeviceComponent是XD3D12CommandListManager的基类之一,但是在XD3D12CommandListManager中并没有找到XD3D12DeviceComponent的定义。提示信息[C2504] “XD3D12DeviceComponent”: 未定义基类也说明了这一点。因此,XD3D12DeviceComponent需要在XD3D12CommandListManager之前被定义。
阅读全文