/* * Copyright (c) Contributors to the Open 3D Engine Project. * For complete copyright and license terms please see the LICENSE at the root of this distribution. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #include #include #include #include #include #include #include #include #include #include #include #include #include namespace UnitTest { using namespace AZ; Factory::Factory() { RHI::Factory::Register(this); } Factory::~Factory() { RHI::Factory::Unregister(this); RHI::ResourceInvalidateBus::AllowFunctionQueuing(false); RHI::ResourceInvalidateBus::ClearQueuedEvents(); } Name Factory::GetName() { return m_platformName; } RHI::APIPriority Factory::GetDefaultPriority() { return RHI::APIMiddlePriority; } RHI::APIType Factory::GetType() { return RHI::APIType(m_platformName.GetStringView()); } RHI::PhysicalDeviceList Factory::EnumeratePhysicalDevices() { return PhysicalDevice::Enumerate(); } RHI::Ptr Factory::CreateDevice() { return aznew Device; } RHI::Ptr Factory::CreateSwapChain() { return nullptr; } RHI::Ptr Factory::CreateFence() { return nullptr; } RHI::Ptr Factory::CreateBuffer() { return aznew Buffer; } RHI::Ptr Factory::CreateBufferView() { return aznew BufferView; } RHI::Ptr Factory::CreateBufferPool() { return aznew BufferPool; } RHI::Ptr Factory::CreateImage() { return aznew Image; } RHI::Ptr Factory::CreateImageView() { return aznew ImageView; } RHI::Ptr Factory::CreateImagePool() { return aznew ImagePool; } RHI::Ptr Factory::CreateStreamingImagePool() { return nullptr; } RHI::Ptr Factory::CreateShaderResourceGroupPool() { return aznew ShaderResourceGroupPool; } RHI::Ptr Factory::CreateShaderResourceGroup() { return aznew ShaderResourceGroup; } RHI::Ptr Factory::CreatePipelineLibrary() { return aznew PipelineLibrary; } RHI::Ptr Factory::CreatePipelineState() { return aznew PipelineState; } RHI::Ptr Factory::CreateScope() { return aznew Scope; } RHI::Ptr Factory::CreateFrameGraphCompiler() { return aznew FrameGraphCompiler; } RHI::Ptr Factory::CreateFrameGraphExecuter() { return aznew FrameGraphExecuter; } RHI::Ptr Factory::CreateTransientAttachmentPool() { return aznew TransientAttachmentPool; } AZ::RHI::Ptr Factory::CreateQueryPool() { return aznew QueryPool; } AZ::RHI::Ptr Factory::CreateQuery() { return aznew Query; } AZ::RHI::Ptr Factory::CreateIndirectBufferSignature() { return aznew IndirectBufferSignature; } AZ::RHI::Ptr Factory::CreateIndirectBufferWriter() { return aznew IndirectBufferWriter; } AZ::RHI::Ptr Factory::CreateRayTracingBufferPools() { AZ_Assert(false, "Not implemented"); return nullptr; } AZ::RHI::Ptr Factory::CreateRayTracingBlas() { AZ_Assert(false, "Not implemented"); return nullptr; } AZ::RHI::Ptr Factory::CreateRayTracingTlas() { AZ_Assert(false, "Not implemented"); return nullptr; } AZ::RHI::Ptr Factory::CreateRayTracingPipelineState() { AZ_Assert(false, "Not implemented"); return nullptr; } AZ::RHI::Ptr Factory::CreateRayTracingShaderTable() { AZ_Assert(false, "Not implemented"); return nullptr; } }