Renderer: Allow to enable or disable API validation layers using config

This commit is contained in:
SirLynix
2022-08-10 00:04:46 +02:00
parent 38e32025e9
commit 117f7c2a4b
19 changed files with 101 additions and 37 deletions

View File

@@ -122,6 +122,16 @@ namespace Nz
constexpr std::size_t RenderAPICount = static_cast<std::size_t>(RenderAPI::Max) + 1;
enum class RenderAPIValidationLevel
{
None = 0,
Errors = 1,
Warnings = 2,
Verbose = 3,
Debug = 4
};
enum class RenderDeviceType
{
Integrated, ///< Hardware-accelerated chipset integrated to a CPU (ex: Intel Graphics HD 4000)

View File

@@ -9,14 +9,16 @@
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Core/DynLib.hpp>
#include <Nazara/Core/ParameterList.hpp>
#include <Nazara/Platform/Platform.hpp>
#include <Nazara/Renderer/Config.hpp>
#include <Nazara/Renderer/Enums.hpp>
#include <Nazara/Renderer/RendererImpl.hpp>
#include <Nazara/Renderer/RenderDevice.hpp>
namespace Nz
{
class Buffer;
class RendererImpl;
class NAZARA_RENDERER_API Renderer : public ModuleBase<Renderer>
{
@@ -42,13 +44,20 @@ namespace Nz
struct Config
{
ParameterList customParameters;
RenderAPI preferredAPI = RenderAPI::Unknown;
#ifdef NAZARA_DEBUG
RenderAPIValidationLevel validationLevel = RenderAPIValidationLevel::Verbose;
#else
RenderAPIValidationLevel validationLevel = RenderAPIValidationLevel::Errors;
#endif
};
private:
void LoadBackend(const Config& config);
std::unique_ptr<RendererImpl> m_rendererImpl;
Config m_config;
DynLib m_rendererLib;
static Renderer* s_instance;

View File

@@ -12,6 +12,7 @@
#include <Nazara/Renderer/Config.hpp>
#include <Nazara/Renderer/Enums.hpp>
#include <Nazara/Renderer/RenderDeviceInfo.hpp>
#include <Nazara/Renderer/Renderer.hpp>
#include <Nazara/Utility/Enums.hpp>
#include <string>
#include <vector>
@@ -44,7 +45,7 @@ namespace Nz
virtual const std::vector<RenderDeviceInfo>& QueryRenderDevices() const = 0;
virtual bool Prepare(const ParameterList& parameters) = 0;
virtual bool Prepare(const Renderer::Config& config) = 0;
};
}