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
17namespace 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}}