diff --git a/src/dxvk/dxvk_objects.h b/src/dxvk/dxvk_objects.h new file mode 100644 index 000000000..f96fc373c --- /dev/null +++ b/src/dxvk/dxvk_objects.h @@ -0,0 +1,99 @@ +#pragma once + +#include "dxvk_gpu_event.h" +#include "dxvk_gpu_query.h" +#include "dxvk_memory.h" +#include "dxvk_meta_clear.h" +#include "dxvk_meta_copy.h" +#include "dxvk_meta_mipgen.h" +#include "dxvk_meta_pack.h" +#include "dxvk_meta_resolve.h" +#include "dxvk_pipemanager.h" +#include "dxvk_renderpass.h" +#include "dxvk_unbound.h" + +#include "../util/util_lazy.h" + +namespace dxvk { + + class DxvkObjects { + + public: + + DxvkObjects(DxvkDevice* device) + : m_device (device), + m_memoryManager (device), + m_renderPassPool (device), + m_pipelineManager (device, &m_renderPassPool), + m_eventPool (device), + m_queryPool (device), + m_dummyResources (device) { + + } + + DxvkMemoryAllocator& memoryManager() { + return m_memoryManager; + } + + DxvkRenderPassPool& renderPassPool() { + return m_renderPassPool; + } + + DxvkPipelineManager& pipelineManager() { + return m_pipelineManager; + } + + DxvkGpuEventPool& eventPool() { + return m_eventPool; + } + + DxvkGpuQueryPool& queryPool() { + return m_queryPool; + } + + DxvkUnboundResources& dummyResources() { + return m_dummyResources; + } + + DxvkMetaClearObjects& metaClear() { + return m_metaClear.get(m_device); + } + + DxvkMetaCopyObjects& metaCopy() { + return m_metaCopy.get(m_device); + } + + DxvkMetaResolveObjects& metaResolve() { + return m_metaResolve.get(m_device); + } + + DxvkMetaMipGenObjects& metaMipGen() { + return m_metaMipGen.get(m_device); + } + + DxvkMetaPackObjects& metaPack() { + return m_metaPack.get(m_device); + } + + private: + + DxvkDevice* m_device; + + DxvkMemoryAllocator m_memoryManager; + DxvkRenderPassPool m_renderPassPool; + DxvkPipelineManager m_pipelineManager; + + DxvkGpuEventPool m_eventPool; + DxvkGpuQueryPool m_queryPool; + + DxvkUnboundResources m_dummyResources; + + Lazy m_metaClear; + Lazy m_metaCopy; + Lazy m_metaResolve; + Lazy m_metaMipGen; + Lazy m_metaPack; + + }; + +} \ No newline at end of file