GDevelop Core
Core library for developing platforms and tools compatible with GDevelop.
EffectsCodeGenerator.h
1 /*
2  * GDevelop Core
3  * Copyright 2008-present Florian Rival ([email protected]). All rights
4  * reserved. This project is released under the MIT License.
5  */
6 #pragma once
7 
8 #include <set>
9 #include <utility>
10 #include <vector>
11 #include "GDCore/String.h"
12 #include "GDCore/IDE/Project/ArbitraryObjectsWorker.h"
13 
14 namespace gd {
15 class Project;
16 class Platform;
17 class Effect;
18 } // namespace gd
19 
20 namespace gd {
21 
25 class GD_CORE_API EffectsCodeGenerator : public ArbitraryObjectsWorker {
26 public:
30  static void GenerateEffectsIncludeFiles(const gd::Platform& platform,
31  gd::Project& project,
32  std::set<gd::String>& includeFiles);
33 
34 private:
35  EffectsCodeGenerator(const gd::Platform &platform_,
36  std::set<gd::String> &includeFiles_)
37  : platform(platform_), includeFiles(includeFiles_){};
38 
39  void AddEffectIncludeFiles(const gd::Effect& effect);
40 
41  void DoVisitObject(gd::Object &object) override;
42 
43  const gd::Platform &platform;
44  std::set<gd::String> &includeFiles;
45 };
46 
47 } // namespace gd
ArbitraryObjectsWorker is an abstract class used to browse objects (and behaviors) and do some work o...
Definition: ArbitraryObjectsWorker.h:30
Represents an effect that can be applied on a layer.
Definition: Effect.h:22
Internal class used to generate code from events.
Definition: EffectsCodeGenerator.h:25
Represent an object of a platform.
Definition: Object.h:37
Base class for implementing a platform.
Definition: Platform.h:42
Base class representing a project (game), including all resources, scenes, objects,...
Definition: Project.h:51
Definition: CommonTools.h:24