// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. using System.IO; using Flax.Build; using Flax.Build.NativeCpp; /// /// Particles module. /// public class Particles : EngineModule { /// /// Determinates whenever GPU particles simulation should be enabled for a given build. /// /// The options. /// True if use GPU particles, otherwise false. public static bool UseGPU(BuildOptions options) { // TODO: disable GPU particles support in build for low-end platforms return true; } /// public override void Setup(BuildOptions options) { base.Setup(options); options.PrivateDependencies.Add("Utilities"); options.PrivateDependencies.Add("Graphics"); options.SourcePaths.Clear(); options.SourceFiles.AddRange(Directory.GetFiles(FolderPath, "*.*", SearchOption.TopDirectoryOnly)); options.SourcePaths.Add(Path.Combine(FolderPath, "Graph", "CPU")); if (options.Target.IsEditor) { options.PrivateDependencies.Add("ShadersCompilation"); options.PublicDefinitions.Add("COMPILE_WITH_PARTICLE_GPU_GRAPH"); options.SourcePaths.Add(Path.Combine(FolderPath, "Graph", "GPU")); if (UseGPU(options)) { options.PublicDefinitions.Add("COMPILE_WITH_GPU_PARTICLES"); } } else { if (UseGPU(options)) { options.PublicDefinitions.Add("COMPILE_WITH_GPU_PARTICLES"); options.SourceFiles.Add(Path.Combine(FolderPath, "Graph", "GPU", "GPUParticles.cpp")); } } } }