AtomSampleViewerModule.cpp 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  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. #include <AzCore/Module/Module.h>
  9. #include <AzCore/Memory/SystemAllocator.h>
  10. #include <AreaLightExampleComponent.h>
  11. #include <AssetLoadTestComponent.h>
  12. #include <AuxGeomExampleComponent.h>
  13. #include <AtomSampleViewerSystemComponent.h>
  14. #include <BakedShaderVariantExampleComponent.h>
  15. #include <SponzaBenchmarkComponent.h>
  16. #include <BloomExampleComponent.h>
  17. #include <CheckerboardExampleComponent.h>
  18. #include <CullingAndLodExampleComponent.h>
  19. #include <MultiRenderPipelineExampleComponent.h>
  20. #include <MultiSceneExampleComponent.h>
  21. #include <MultiViewSingleSceneAuxGeomExampleComponent.h>
  22. #include <DepthOfFieldExampleComponent.h>
  23. #include <DecalExampleComponent.h>
  24. #include <DynamicDrawExampleComponent.h>
  25. #include <DynamicMaterialTestComponent.h>
  26. #include <MaterialHotReloadTestComponent.h>
  27. #include <ExposureExampleComponent.h>
  28. #include <LightCullingExampleComponent.h>
  29. #include <MeshExampleComponent.h>
  30. #include <MSAA_RPI_ExampleComponent.h>
  31. #include <ParallaxMappingExampleComponent.h>
  32. #include <SampleComponentManager.h>
  33. #include <SceneReloadSoakTestComponent.h>
  34. #include <ShadingExampleComponent.h>
  35. #include <ShadowExampleComponent.h>
  36. #include <ShadowedSponzaExampleComponent.h>
  37. #include <SkinnedMeshExampleComponent.h>
  38. #include <SsaoExampleComponent.h>
  39. #include <StreamingImageExampleComponent.h>
  40. #include <RootConstantsExampleComponent.h>
  41. #include <TonemappingExampleComponent.h>
  42. #include <TransparencyExampleComponent.h>
  43. #include <DiffuseGIExampleComponent.h>
  44. #include <SSRExampleComponent.h>
  45. #include <ShaderReloadTestComponent.h>
  46. #include <RHI/AlphaToCoverageExampleComponent.h>
  47. #include <RHI/AsyncComputeExampleComponent.h>
  48. #include <RHI/BindlessPrototypeExampleComponent.h>
  49. #include <RHI/ComputeExampleComponent.h>
  50. #include <RHI/CopyQueueComponent.h>
  51. #include <RHI/IndirectRenderingExampleComponent.h>
  52. #include <RHI/InputAssemblyExampleComponent.h>
  53. #include <RHI/SubpassExampleComponent.h>
  54. #include <RHI/DualSourceBlendingComponent.h>
  55. #include <RHI/MRTExampleComponent.h>
  56. #include <RHI/MSAAExampleComponent.h>
  57. #include <RHI/MultiThreadComponent.h>
  58. #include <RHI/MultiViewportSwapchainComponent.h>
  59. #include <RHI/StencilExampleComponent.h>
  60. #include <RHI/MultipleViewsComponent.h>
  61. #include <RHI/QueryExampleComponent.h>
  62. #include <RHI/SwapchainExampleComponent.h>
  63. #include <RHI/SphericalHarmonicsExampleComponent.h>
  64. #include <RHI/Texture3dExampleComponent.h>
  65. #include <RHI/TextureArrayExampleComponent.h>
  66. #include <RHI/TextureExampleComponent.h>
  67. #include <RHI/TextureMapExampleComponent.h>
  68. #include <RHI/TriangleExampleComponent.h>
  69. #include <RHI/TrianglesConstantBufferExampleComponent.h>
  70. #include <RHI/RayTracingExampleComponent.h>
  71. #include <RHI/MatrixAlignmentTestExampleComponent.h>
  72. #include <AzFramework/Scene/SceneSystemComponent.h>
  73. #include <Atom/Feature/SkinnedMesh/SkinnedMeshInputBuffers.h>
  74. namespace AtomSampleViewer
  75. {
  76. class Module final
  77. : public AZ::Module
  78. {
  79. public:
  80. AZ_CLASS_ALLOCATOR(Module, AZ::SystemAllocator, 0);
  81. AZ_RTTI(Module, "{8FEB7E9B-A5F7-4917-A1DE-974DE1FA7F1E}", AZ::Module);
  82. Module()
  83. {
  84. m_descriptors.insert(m_descriptors.end(), {
  85. AtomSampleViewerSystemComponent::CreateDescriptor(),
  86. SampleComponentManager::CreateDescriptor(),
  87. });
  88. // RHI Samples
  89. m_descriptors.insert(m_descriptors.end(), {
  90. AlphaToCoverageExampleComponent::CreateDescriptor(),
  91. AsyncComputeExampleComponent::CreateDescriptor(),
  92. BindlessPrototypeExampleComponent::CreateDescriptor(),
  93. ComputeExampleComponent::CreateDescriptor(),
  94. CopyQueueComponent::CreateDescriptor(),
  95. DualSourceBlendingComponent::CreateDescriptor(),
  96. IndirectRenderingExampleComponent::CreateDescriptor(),
  97. InputAssemblyExampleComponent::CreateDescriptor(),
  98. SubpassExampleComponent::CreateDescriptor(),
  99. MRTExampleComponent::CreateDescriptor(),
  100. MSAAExampleComponent::CreateDescriptor(),
  101. MultiThreadComponent::CreateDescriptor(),
  102. MultipleViewsComponent::CreateDescriptor(),
  103. MultiViewportSwapchainComponent::CreateDescriptor(),
  104. QueryExampleComponent::CreateDescriptor(),
  105. StencilExampleComponent::CreateDescriptor(),
  106. SwapchainExampleComponent::CreateDescriptor(),
  107. SphericalHarmonicsExampleComponent::CreateDescriptor(),
  108. Texture3dExampleComponent::CreateDescriptor(),
  109. TextureArrayExampleComponent::CreateDescriptor(),
  110. TextureExampleComponent::CreateDescriptor(),
  111. TextureMapExampleComponent::CreateDescriptor(),
  112. TriangleExampleComponent::CreateDescriptor(),
  113. TrianglesConstantBufferExampleComponent::CreateDescriptor(),
  114. RayTracingExampleComponent::CreateDescriptor(),
  115. MatrixAlignmentTestExampleComponent::CreateDescriptor()
  116. });
  117. // RPI Samples
  118. m_descriptors.insert(m_descriptors.end(), {
  119. AreaLightExampleComponent::CreateDescriptor(),
  120. AssetLoadTestComponent::CreateDescriptor(),
  121. BakedShaderVariantExampleComponent::CreateDescriptor(),
  122. SponzaBenchmarkComponent::CreateDescriptor(),
  123. BloomExampleComponent::CreateDescriptor(),
  124. CheckerboardExampleComponent::CreateDescriptor(),
  125. CullingAndLodExampleComponent::CreateDescriptor(),
  126. MultiRenderPipelineExampleComponent::CreateDescriptor(),
  127. MultiSceneExampleComponent::CreateDescriptor(),
  128. MultiViewSingleSceneAuxGeomExampleComponent::CreateDescriptor(),
  129. DecalExampleComponent::CreateDescriptor(),
  130. DepthOfFieldExampleComponent::CreateDescriptor(),
  131. DynamicMaterialTestComponent::CreateDescriptor(),
  132. MaterialHotReloadTestComponent::CreateDescriptor(),
  133. ExposureExampleComponent::CreateDescriptor(),
  134. MeshExampleComponent::CreateDescriptor(),
  135. DynamicDrawExampleComponent::CreateDescriptor(),
  136. SceneReloadSoakTestComponent::CreateDescriptor(),
  137. ShadingExampleComponent::CreateDescriptor(),
  138. ShadowExampleComponent::CreateDescriptor(),
  139. ShadowedSponzaExampleComponent::CreateDescriptor(),
  140. SkinnedMeshExampleComponent::CreateDescriptor(),
  141. SsaoExampleComponent::CreateDescriptor(),
  142. LightCullingExampleComponent::CreateDescriptor(),
  143. StreamingImageExampleComponent::CreateDescriptor(),
  144. AuxGeomExampleComponent::CreateDescriptor(),
  145. MSAA_RPI_ExampleComponent::CreateDescriptor(),
  146. RootConstantsExampleComponent::CreateDescriptor(),
  147. TonemappingExampleComponent::CreateDescriptor(),
  148. TransparencyExampleComponent::CreateDescriptor(),
  149. ParallaxMappingExampleComponent::CreateDescriptor(),
  150. DiffuseGIExampleComponent::CreateDescriptor(),
  151. SSRExampleComponent::CreateDescriptor(),
  152. ShaderReloadTestComponent::CreateDescriptor(),
  153. });
  154. }
  155. ~Module() override = default;
  156. AZ::ComponentTypeList GetRequiredSystemComponents() const override
  157. {
  158. AZ::ComponentTypeList requiredComponents;
  159. requiredComponents =
  160. {
  161. azrtti_typeid<AzFramework::SceneSystemComponent>(),
  162. azrtti_typeid<AtomSampleViewerSystemComponent>(),
  163. azrtti_typeid<SampleComponentManager>()
  164. };
  165. return requiredComponents;
  166. }
  167. };
  168. } // namespace AtomSampleViewer
  169. // DO NOT MODIFY THIS LINE UNLESS YOU RENAME THE GEM
  170. // The first parameter should be GemName_GemIdLower
  171. // The second should be the fully qualified name of the class above
  172. AZ_DECLARE_MODULE_CLASS(Gem_AtomSampleViewer, AtomSampleViewer::Module)