/* * 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 * */ #pragma once #include #include #include #include #include #include #include #include namespace UnitTest { class Factory : public AZ::RHI::Factory { public: Factory(); ~Factory(); AZ_CLASS_ALLOCATOR(Factory, AZ::SystemAllocator, 0); private: const AZ::Name m_platformName{"UnitTest"}; AZ::Name GetName() override; AZ::RHI::APIType GetType() override; AZ::RHI::APIPriority GetDefaultPriority() override; uint32_t GetAPIUniqueIndex() const override { return 0; } AZ::RHI::PhysicalDeviceList EnumeratePhysicalDevices() override; AZ::RHI::Ptr CreateDevice() override; AZ::RHI::Ptr CreateSwapChain() override; AZ::RHI::Ptr CreateFence() override; AZ::RHI::Ptr CreateBuffer() override; AZ::RHI::Ptr CreateBufferView() override; AZ::RHI::Ptr CreateBufferPool() override; AZ::RHI::Ptr CreateImage() override; AZ::RHI::Ptr CreateImageView() override; AZ::RHI::Ptr CreateImagePool() override; AZ::RHI::Ptr CreateStreamingImagePool() override; AZ::RHI::Ptr CreateShaderResourceGroupPool() override; AZ::RHI::Ptr CreateShaderResourceGroup() override; AZ::RHI::Ptr CreatePipelineLibrary() override; AZ::RHI::Ptr CreatePipelineState() override; AZ::RHI::Ptr CreateScope() override; AZ::RHI::Ptr CreateFrameGraphCompiler() override; AZ::RHI::Ptr CreateFrameGraphExecuter() override; AZ::RHI::Ptr CreateTransientAttachmentPool() override; AZ::RHI::Ptr CreateQueryPool() override; AZ::RHI::Ptr CreateQuery() override; AZ::RHI::Ptr CreateIndirectBufferSignature() override; AZ::RHI::Ptr CreateIndirectBufferWriter() override; AZ::RHI::Ptr CreateRayTracingBufferPools() override; AZ::RHI::Ptr CreateRayTracingBlas() override; AZ::RHI::Ptr CreateRayTracingTlas() override; AZ::RHI::Ptr CreateRayTracingPipelineState() override; AZ::RHI::Ptr CreateRayTracingShaderTable() override; }; }