1 | //************************************ bs::framework - Copyright 2018 Marko Pintera **************************************// |
2 | //*********** Licensed under the MIT license. See LICENSE.md for full terms. This notice is not to be removed. ***********// |
3 | #pragma once |
4 | |
5 | #include "BsPrerequisites.h" |
6 | |
7 | /** @addtogroup Plugins |
8 | * @{ |
9 | */ |
10 | |
11 | /** @defgroup RenderBeast RenderBeast |
12 | * Framework's default renderer implementation. |
13 | */ |
14 | |
15 | /** @} */ |
16 | |
17 | namespace bs { namespace ct |
18 | { |
19 | /** |
20 | * Determines the feature set to be used by RenderBeast. Feature sets control the quality and type of rendering |
21 | * effects depending on available hardware (For example a desktop computer can handle higher end rendering than a |
22 | * mobile device). |
23 | */ |
24 | enum class RenderBeastFeatureSet |
25 | { |
26 | /** High end feature set utilizing the latest and greatest effects. */ |
27 | Desktop, |
28 | /** Mid-range feature set optimized for macOS and its obsolete OpenGL 4.1 version. */ |
29 | DesktopMacOS |
30 | }; |
31 | |
32 | /** Available implementation of the RenderElement class. */ |
33 | enum class RenderElementType |
34 | { |
35 | /** See RenderableElement. */ |
36 | Renderable, |
37 | /** See ParticlesRenderElement. */ |
38 | Particle, |
39 | /** See DecalRenderElement. */ |
40 | Decal |
41 | }; |
42 | |
43 | /** Types of ways for shaders to handle MSAA. */ |
44 | enum class MSAAMode |
45 | { |
46 | /** No MSAA supported. */ |
47 | None, |
48 | /** Single MSAA sample will be resolved. */ |
49 | Single, |
50 | /** All MSAA samples will be resolved. */ |
51 | Full, |
52 | }; |
53 | |
54 | struct RenderBeastOptions; |
55 | struct PooledRenderTexture; |
56 | class RenderTargets; |
57 | class RendererView; |
58 | struct LightData; |
59 | }} |