Aether3D Game Engine
Aether3D.hpp
Go to the documentation of this file.
1 #ifndef AETHER3D_H
2 #define AETHER3D_H
3 
62 #ifndef INCLUDE_STRING_H
63 # include <string>
64 # define INCLUDE_STRING_H
65 #endif
66 #ifndef INCLUDE_MEMORY_H
67 # include <memory>
68 # define INCLUDE_MEMORY_H
69 #endif
70 #ifndef AUDIO_H
71 # include "Audio.hpp"
72 #endif
73 #ifndef CAMERA_H
74 # include "Camera.hpp"
75 #endif
76 #ifndef KEYBOARD_INPUT_H
77 # include "KeyboardInput.hpp"
78 #endif
79 #ifndef LIGHT_H
80 # include "Light.hpp"
81 #endif
82 #ifndef MOUSE_INPUT_H
83 # include "MouseInput.hpp"
84 #endif
85 #ifndef MATERIAL_H
86 # include "Material.hpp"
87 #endif
88 #ifndef MODEL_H
89 # include "Model.hpp"
90 #endif
91 #ifndef QUATERNION_H
92 # include "Quaternion.hpp"
93 #endif
94 #ifndef RENDERER_H
95 # include "Renderer.hpp"
96 #endif
97 #ifndef SCENE_H
98 # include "Scene.hpp"
99 #endif
100 #ifndef TEXTURE_H
101 # include "Texture.hpp"
102 #endif
103 #ifndef INCLUDE_VEC3_H
104 # include "Vec3.hpp"
105 #endif
106 
109 {
110 public:
111  Aether3D_API();
112  virtual ~Aether3D_API();
113 
120  static const std::string& ReturnCodeToErrorString( int returnCode );
121 
132  Error::Enum LoadDLL( const std::string& path );
133 
135  Audio* MakeAudio();
136 
138  Camera* MakeCamera();
139 
142 
147  Light* MakeLight( Light::Type lightType );
148 
151 
154 
163  Model* MakeModel( const std::string& path, Error::Enum& outError );
164 
170  Renderer* MakeRenderer( const std::string& builtinAssetPath );
171 
173  Scene* MakeScene();
174 
186  Texture* MakeTexture( const std::string& path, bool useMipmaps, bool sRGB, Texture::Tiling tiling, Texture::Filter filter );
187 
201  Texture* MakeTexture( const std::string& left, const std::string& right,
202  const std::string& top, const std::string& bottom,
203  const std::string& front, const std::string& back );
212  Texture* MakeRenderTexture( int width, int height );
213 
221  Texture* MakeRenderTextureCube( int size );
222 
232  Texture* MakeTexture( const std::string& atlasPath, const std::string& atlasMetadataPath, const std::string& fileName );
233 
234 private:
235  struct Impl;
236  std::unique_ptr< Impl > m;
237 };
238 
239 #endif
Camera * MakeCamera()
Definition: Aether3D.cpp:238
Contains meshes loaded from Aether3D&#39;s own .ae3d file format.
Definition: Model.hpp:21
Light.
Definition: Light.hpp:11
Renders models and UI.
Definition: Renderer.hpp:14
KeyboardInput * MakeKeyboardInput()
Definition: Aether3D.cpp:244
Renderer * MakeRenderer(const std::string &builtinAssetPath)
Definition: Aether3D.cpp:274
Perspective or orthographic camera.
Definition: Camera.hpp:12
Light * MakeLight(Light::Type lightType)
Definition: Aether3D.cpp:250
Reads mouse.
Definition: MouseInput.hpp:18
Texture * MakeRenderTexture(int width, int height)
Definition: Aether3D.cpp:306
Stores material properties for Mesh. Their names/values are directly mapped into shader uniforms...
Definition: Material.hpp:19
Texture * MakeRenderTextureCube(int size)
Definition: Aether3D.cpp:312
Stores scene in a scene graph.
Definition: Scene.hpp:27
Model * MakeModel(const std::string &path, Error::Enum &outError)
Definition: Aether3D.cpp:268
Reads keyboard.
Definition: KeyboardInput.hpp:48
Material * MakeMaterial()
Definition: Aether3D.cpp:256
Handles DLL loading and engine object creation.
Definition: Aether3D.hpp:108
MouseInput * MakeMouseInput()
Definition: Aether3D.cpp:262
2D or Cube Map texture.
Definition: Texture.hpp:7
Texture * MakeTexture(const std::string &path, bool useMipmaps, bool sRGB, Texture::Tiling tiling, Texture::Filter filter)
Definition: Aether3D.cpp:286
static const std::string & ReturnCodeToErrorString(int returnCode)
Definition: Aether3D.cpp:318
Audio * MakeAudio()
Definition: Aether3D.cpp:232
Definition: Aether3D.cpp:98
Filter
Filter.
Definition: Texture.hpp:11
Scene * MakeScene()
Definition: Aether3D.cpp:280
Error::Enum LoadDLL(const std::string &path)
Definition: Aether3D.cpp:123
Type
Definition: Light.hpp:15
Tiling
Tiling.
Definition: Texture.hpp:13
Handles audio.
Definition: Audio.hpp:5