3
0

Factory.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #pragma once
  9. #include <Atom/RHI/Factory.h>
  10. #include <Tests/Buffer.h>
  11. #include <Tests/FrameGraph.h>
  12. #include <Tests/Image.h>
  13. #include <Tests/Query.h>
  14. #include <Tests/Scope.h>
  15. #include <Tests/ShaderResourceGroup.h>
  16. #include <Tests/TransientAttachmentPool.h>
  17. namespace UnitTest
  18. {
  19. class Factory
  20. : public AZ::RHI::Factory
  21. {
  22. public:
  23. Factory();
  24. ~Factory();
  25. AZ_CLASS_ALLOCATOR(Factory, AZ::SystemAllocator);
  26. private:
  27. const AZ::Name m_platformName{"UnitTest"};
  28. AZ::Name GetName() override;
  29. AZ::RHI::APIType GetType() override;
  30. AZ::RHI::APIPriority GetDefaultPriority() override;
  31. uint32_t GetAPIUniqueIndex() const override { return 0; }
  32. bool SupportsXR() const override;
  33. AZ::RHI::PhysicalDeviceList EnumeratePhysicalDevices() override;
  34. AZ::RHI::Ptr<AZ::RHI::Device> CreateDevice() override;
  35. AZ::RHI::Ptr<AZ::RHI::DeviceSwapChain> CreateSwapChain() override;
  36. AZ::RHI::Ptr<AZ::RHI::DeviceFence> CreateFence() override;
  37. AZ::RHI::Ptr<AZ::RHI::DeviceBuffer> CreateBuffer() override;
  38. AZ::RHI::Ptr<AZ::RHI::DeviceBufferView> CreateBufferView() override;
  39. AZ::RHI::Ptr<AZ::RHI::DeviceBufferPool> CreateBufferPool() override;
  40. AZ::RHI::Ptr<AZ::RHI::DeviceImage> CreateImage() override;
  41. AZ::RHI::Ptr<AZ::RHI::DeviceImageView> CreateImageView() override;
  42. AZ::RHI::Ptr<AZ::RHI::DeviceImagePool> CreateImagePool() override;
  43. AZ::RHI::Ptr<AZ::RHI::DeviceStreamingImagePool> CreateStreamingImagePool() override;
  44. AZ::RHI::Ptr<AZ::RHI::DeviceShaderResourceGroupPool> CreateShaderResourceGroupPool() override;
  45. AZ::RHI::Ptr<AZ::RHI::DeviceShaderResourceGroup> CreateShaderResourceGroup() override;
  46. AZ::RHI::Ptr<AZ::RHI::DevicePipelineLibrary> CreatePipelineLibrary() override;
  47. AZ::RHI::Ptr<AZ::RHI::DevicePipelineState> CreatePipelineState() override;
  48. AZ::RHI::Ptr<AZ::RHI::Scope> CreateScope() override;
  49. AZ::RHI::Ptr<AZ::RHI::FrameGraphCompiler> CreateFrameGraphCompiler() override;
  50. AZ::RHI::Ptr<AZ::RHI::FrameGraphExecuter> CreateFrameGraphExecuter() override;
  51. AZ::RHI::Ptr<AZ::RHI::DeviceTransientAttachmentPool> CreateTransientAttachmentPool() override;
  52. AZ::RHI::Ptr<AZ::RHI::DeviceQueryPool> CreateQueryPool() override;
  53. AZ::RHI::Ptr<AZ::RHI::DeviceQuery> CreateQuery() override;
  54. AZ::RHI::Ptr<AZ::RHI::DeviceIndirectBufferSignature> CreateIndirectBufferSignature() override;
  55. AZ::RHI::Ptr<AZ::RHI::DeviceIndirectBufferWriter> CreateIndirectBufferWriter() override;
  56. AZ::RHI::Ptr<AZ::RHI::DeviceRayTracingBufferPools> CreateRayTracingBufferPools() override;
  57. AZ::RHI::Ptr<AZ::RHI::DeviceRayTracingBlas> CreateRayTracingBlas() override;
  58. AZ::RHI::Ptr<AZ::RHI::DeviceRayTracingTlas> CreateRayTracingTlas() override;
  59. AZ::RHI::Ptr<AZ::RHI::DeviceRayTracingPipelineState> CreateRayTracingPipelineState() override;
  60. AZ::RHI::Ptr<AZ::RHI::DeviceRayTracingShaderTable> CreateRayTracingShaderTable() override;
  61. AZ::RHI::Ptr<AZ::RHI::DeviceDispatchRaysIndirectBuffer> CreateDispatchRaysIndirectBuffer() override;
  62. };
  63. }