Some cleanup

This commit is contained in:
Lynix
2020-03-05 17:24:55 +01:00
parent 9515f1c807
commit 74275292bf
3 changed files with 61 additions and 45 deletions

View File

@@ -7,31 +7,41 @@
#ifndef NAZARA_ENUMS_RENDERER_HPP
#define NAZARA_ENUMS_RENDERER_HPP
#include <Nazara/Core/Flags.hpp>
namespace Nz
{
enum RenderAPI
enum class RenderAPI
{
RenderAPI_Direct3D, ///< Microsoft Render API, only works on MS platforms
RenderAPI_Mantle, ///< AMD Render API, Vulkan predecessor, only works on AMD GPUs
RenderAPI_Metal, ///< Apple Render API, only works on OS X platforms
RenderAPI_OpenGL, ///< Khronos Render API, works on Web/Desktop/Mobile and some consoles
RenderAPI_Vulkan, ///< New Khronos Render API, made to replace OpenGL, works on desktop (Windows/Linux) and mobile (Android)
Direct3D, ///< Microsoft Render API, only works on MS platforms
Mantle, ///< AMD Render API, Vulkan predecessor, only works on AMD GPUs
Metal, ///< Apple Render API, only works on OS X platforms
OpenGL, ///< Khronos Render API, works on Web/Desktop/Mobile and some consoles
Vulkan, ///< New Khronos Render API, made to replace OpenGL, works on desktop (Windows/Linux) and mobile (Android), and Apple platform using MoltenVK
RenderAPI_Other, ///< RenderAPI not corresponding to an entry of the enum, or result of a failed query
Unknown, ///< RenderAPI not corresponding to an entry of the enum, or result of a failed query
RenderAPI_Max = RenderAPI_Other
Max = Unknown
};
enum RenderDeviceType
enum class RenderDeviceType
{
RenderDeviceType_Integrated, ///< Hardware-accelerated chipset integrated to a CPU (ex: Intel Graphics HD 4000)
RenderDeviceType_Dedicated, ///< Hardware-accelerated GPU (ex: AMD R9 390)
RenderDeviceType_Software, ///< Software-renderer
RenderDeviceType_Virtual, ///< Proxy renderer relaying instructions to another unknown device
Integrated, ///< Hardware-accelerated chipset integrated to a CPU (ex: Intel Graphics HD 4000)
Dedicated, ///< Hardware-accelerated GPU (ex: AMD R9 390)
Software, ///< Software-renderer
Virtual, ///< Proxy renderer relaying instructions to another unknown device
RenderDeviceType_Unknown, ///< Device type not corresponding to an entry of the enum, or result of a failed query
Unknown, ///< Device type not corresponding to an entry of the enum, or result of a failed query
RenderDeviceType_Max = RenderDeviceType_Unknown
Max = Unknown
};
enum class ShaderBindingType
{
Texture,
UniformBuffer,
Max = UniformBuffer
};
enum class ShaderLanguage
@@ -45,8 +55,19 @@ namespace Nz
enum class ShaderStageType
{
Fragment,
Vertex
Vertex,
Max = Vertex
};
struct EnumAsFlags<ShaderStageType>
{
static constexpr ShaderStageType max = ShaderStageType::Max;
};
using ShaderStageTypeFlags = Flags<ShaderStageType>;
constexpr ShaderStageTypeFlags ShaderStageType_All = ShaderStageType::Fragment | ShaderStageType::Vertex;
}
#endif // NAZARA_ENUMS_RENDERER_HPP