3 #include "Mountain/core.hpp" 4 #include "Mountain/resource/compute_shader.hpp" 15 enum class MOUNTAIN_API Types : uint32_t
20 ForceOverLifetime = 1 << 1,
21 ColorOverLifetime = 1 << 2,
22 ColorBySpeed = 1 << 3,
37 virtual ~
Base() =
default;
38 DEFAULT_COPY_MOVE_OPERATIONS(
Base)
40 virtual void SetComputeShaderUniforms(
const ComputeShader& computeShader, Types enabledModules)
const = 0;
41 virtual void RenderImGui(uint32_t* enabledModulesInt) = 0;
45 bool_t BeginImGui(uint32_t* enabledModulesInt, Types type)
const;
46 void EndImGui()
const;
49 enum class ShapeType : uint32_t
56 enum class ShapeArcMode : uint32_t
66 ShapeArcMode mode = ShapeArcMode::Random;
74 float_t radiusThickness = 1.f;
76 float_t arcAngle = Calc::TwoPi;
95 ShapeType type = ShapeType::Circle;
105 float_t randomizeDirection = 0.f;
106 float_t randomizeRotation = 0.f;
107 float_t randomizePosition = 0.f;
109 bool_t showSpawnArea =
false;
111 MOUNTAIN_API
void SetComputeShaderUniforms(
const ComputeShader& computeShader, Types enabledModules)
const override;
112 MOUNTAIN_API
void RenderImGui(uint32_t* enabledModulesInt)
override;
113 MOUNTAIN_API
void RenderDebug(
const ParticleSystem& system,
Vector2 renderTargetSizeDiff)
const override;
121 void SetComputeShaderUniforms(
const ComputeShader& computeShader, Types enabledModules)
const override;
122 void RenderImGui(uint32_t* enabledModulesInt)
override;
130 void SetComputeShaderUniforms(
const ComputeShader& computeShader, Types enabledModules)
const override;
131 void RenderImGui(uint32_t* enabledModulesInt)
override;
135 ENUM_FLAGS(Mountain::ParticleSystemModules::Types)
Defines general utility functions.
Defines multiple color structs.
static constexpr Vector2 One() noexcept
static constexpr Color Transparent()
Constant for Transparent.
The Color struct represents a color in RGBA color space.
Contains all declarations of the Mountain Framework.