AtomSampleViewerModule.cpp 7.9 KB

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