AtomSampleViewerModule.cpp 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. /*
  2. * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
  3. * its licensors.
  4. *
  5. * For complete copyright and license terms please see the LICENSE at the root of this
  6. * distribution (the "License"). All use of this software is governed by the License,
  7. * or, if provided, by the license below or the license accompanying this file. Do not
  8. * remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
  9. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. *
  11. */
  12. #include <AzCore/Module/Module.h>
  13. #include <AzCore/Memory/SystemAllocator.h>
  14. #include <AreaLightExampleComponent.h>
  15. #include <AssetLoadTestComponent.h>
  16. #include <AuxGeomExampleComponent.h>
  17. #include <AtomSampleViewerSystemComponent.h>
  18. #include <BakedShaderVariantExampleComponent.h>
  19. #include <BistroBenchmarkComponent.h>
  20. #include <BloomExampleComponent.h>
  21. #include <CheckerboardExampleComponent.h>
  22. #include <CullingAndLodExampleComponent.h>
  23. #include <MultiRenderPipelineExampleComponent.h>
  24. #include <MultiSceneExampleComponent.h>
  25. #include <MultiViewSingleSceneAuxGeomExampleComponent.h>
  26. #include <DepthOfFieldExampleComponent.h>
  27. #include <DecalExampleComponent.h>
  28. #include <DynamicDrawExampleComponent.h>
  29. #include <DynamicMaterialTestComponent.h>
  30. #include <MaterialHotReloadTestComponent.h>
  31. #include <ExposureExampleComponent.h>
  32. #include <LightCullingExampleComponent.h>
  33. #include <MeshExampleComponent.h>
  34. #include <MSAA_RPI_ExampleComponent.h>
  35. #include <ParallaxMappingExampleComponent.h>
  36. #include <SampleComponentManager.h>
  37. #include <SceneReloadSoakTestComponent.h>
  38. #include <ShadingExampleComponent.h>
  39. #include <ShadowExampleComponent.h>
  40. #include <ShadowedBistroExampleComponent.h>
  41. #include <SkinnedMeshExampleComponent.h>
  42. #include <SsaoExampleComponent.h>
  43. #include <StreamingImageExampleComponent.h>
  44. #include <RootConstantsExampleComponent.h>
  45. #include <TonemappingExampleComponent.h>
  46. #include <TransparencyExampleComponent.h>
  47. #include <DiffuseGIExampleComponent.h>
  48. #include <SSRExampleComponent.h>
  49. #include <RHI/AlphaToCoverageExampleComponent.h>
  50. #include <RHI/AsyncComputeExampleComponent.h>
  51. #include <RHI/BindlessPrototypeExampleComponent.h>
  52. #include <RHI/ComputeExampleComponent.h>
  53. #include <RHI/CopyQueueComponent.h>
  54. #include <RHI/IndirectRenderingExampleComponent.h>
  55. #include <RHI/InputAssemblyExampleComponent.h>
  56. #include <RHI/SubpassExampleComponent.h>
  57. #include <RHI/DualSourceBlendingComponent.h>
  58. #include <RHI/MRTExampleComponent.h>
  59. #include <RHI/MSAAExampleComponent.h>
  60. #include <RHI/MultiThreadComponent.h>
  61. #include <RHI/MultiViewportSwapchainComponent.h>
  62. #include <RHI/StencilExampleComponent.h>
  63. #include <RHI/MultipleViewsComponent.h>
  64. #include <RHI/QueryExampleComponent.h>
  65. #include <RHI/SwapchainExampleComponent.h>
  66. #include <RHI/SphericalHarmonicsExampleComponent.h>
  67. #include <RHI/Texture3dExampleComponent.h>
  68. #include <RHI/TextureArrayExampleComponent.h>
  69. #include <RHI/TextureExampleComponent.h>
  70. #include <RHI/TextureMapExampleComponent.h>
  71. #include <RHI/TriangleExampleComponent.h>
  72. #include <RHI/TrianglesConstantBufferExampleComponent.h>
  73. #include <RHI/RayTracingExampleComponent.h>
  74. #include <AzFramework/Scene/SceneSystemComponent.h>
  75. #include <Atom/Feature/SkinnedMesh/SkinnedMeshInputBuffers.h>
  76. namespace AtomSampleViewer
  77. {
  78. class Module final
  79. : public AZ::Module
  80. {
  81. public:
  82. AZ_CLASS_ALLOCATOR(Module, AZ::SystemAllocator, 0);
  83. AZ_RTTI(Module, "{8FEB7E9B-A5F7-4917-A1DE-974DE1FA7F1E}", AZ::Module);
  84. Module()
  85. {
  86. m_descriptors.insert(m_descriptors.end(), {
  87. AtomSampleViewerSystemComponent::CreateDescriptor(),
  88. SampleComponentManager::CreateDescriptor(),
  89. });
  90. // RHI Samples
  91. m_descriptors.insert(m_descriptors.end(), {
  92. AlphaToCoverageExampleComponent::CreateDescriptor(),
  93. AsyncComputeExampleComponent::CreateDescriptor(),
  94. BindlessPrototypeExampleComponent::CreateDescriptor(),
  95. ComputeExampleComponent::CreateDescriptor(),
  96. CopyQueueComponent::CreateDescriptor(),
  97. DualSourceBlendingComponent::CreateDescriptor(),
  98. IndirectRenderingExampleComponent::CreateDescriptor(),
  99. InputAssemblyExampleComponent::CreateDescriptor(),
  100. SubpassExampleComponent::CreateDescriptor(),
  101. MRTExampleComponent::CreateDescriptor(),
  102. MSAAExampleComponent::CreateDescriptor(),
  103. MultiThreadComponent::CreateDescriptor(),
  104. MultipleViewsComponent::CreateDescriptor(),
  105. MultiViewportSwapchainComponent::CreateDescriptor(),
  106. QueryExampleComponent::CreateDescriptor(),
  107. StencilExampleComponent::CreateDescriptor(),
  108. SwapchainExampleComponent::CreateDescriptor(),
  109. SphericalHarmonicsExampleComponent::CreateDescriptor(),
  110. Texture3dExampleComponent::CreateDescriptor(),
  111. TextureArrayExampleComponent::CreateDescriptor(),
  112. TextureExampleComponent::CreateDescriptor(),
  113. TextureMapExampleComponent::CreateDescriptor(),
  114. TriangleExampleComponent::CreateDescriptor(),
  115. TrianglesConstantBufferExampleComponent::CreateDescriptor(),
  116. RayTracingExampleComponent::CreateDescriptor()
  117. });
  118. // RPI Samples
  119. m_descriptors.insert(m_descriptors.end(), {
  120. AreaLightExampleComponent::CreateDescriptor(),
  121. AssetLoadTestComponent::CreateDescriptor(),
  122. BakedShaderVariantExampleComponent::CreateDescriptor(),
  123. BistroBenchmarkComponent::CreateDescriptor(),
  124. BloomExampleComponent::CreateDescriptor(),
  125. CheckerboardExampleComponent::CreateDescriptor(),
  126. CullingAndLodExampleComponent::CreateDescriptor(),
  127. MultiRenderPipelineExampleComponent::CreateDescriptor(),
  128. MultiSceneExampleComponent::CreateDescriptor(),
  129. MultiViewSingleSceneAuxGeomExampleComponent::CreateDescriptor(),
  130. DecalExampleComponent::CreateDescriptor(),
  131. DepthOfFieldExampleComponent::CreateDescriptor(),
  132. DynamicMaterialTestComponent::CreateDescriptor(),
  133. MaterialHotReloadTestComponent::CreateDescriptor(),
  134. ExposureExampleComponent::CreateDescriptor(),
  135. MeshExampleComponent::CreateDescriptor(),
  136. DynamicDrawExampleComponent::CreateDescriptor(),
  137. SceneReloadSoakTestComponent::CreateDescriptor(),
  138. ShadingExampleComponent::CreateDescriptor(),
  139. ShadowExampleComponent::CreateDescriptor(),
  140. ShadowedBistroExampleComponent::CreateDescriptor(),
  141. SkinnedMeshExampleComponent::CreateDescriptor(),
  142. SsaoExampleComponent::CreateDescriptor(),
  143. LightCullingExampleComponent::CreateDescriptor(),
  144. StreamingImageExampleComponent::CreateDescriptor(),
  145. AuxGeomExampleComponent::CreateDescriptor(),
  146. MSAA_RPI_ExampleComponent::CreateDescriptor(),
  147. RootConstantsExampleComponent::CreateDescriptor(),
  148. TonemappingExampleComponent::CreateDescriptor(),
  149. TransparencyExampleComponent::CreateDescriptor(),
  150. ParallaxMappingExampleComponent::CreateDescriptor(),
  151. DiffuseGIExampleComponent::CreateDescriptor(),
  152. SSRExampleComponent::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)