Add support for depth clamping

This commit is contained in:
Jérôme Leclercq
2021-07-09 00:22:08 +02:00
parent 3a3279246f
commit 8458301a64
12 changed files with 74 additions and 2 deletions

View File

@@ -16,6 +16,7 @@ namespace Nz
struct RenderDeviceFeatures
{
bool anisotropicFiltering = false;
bool depthClamping = false;
bool nonSolidFaceFilling = false;
};

View File

@@ -7,9 +7,9 @@
#ifndef NAZARA_RENDERPIPELINE_HPP
#define NAZARA_RENDERPIPELINE_HPP
#include <Nazara/Utility/Enums.hpp>
#include <Nazara/Renderer/RenderPipelineLayout.hpp>
#include <Nazara/Renderer/RenderStates.hpp>
#include <Nazara/Utility/Enums.hpp>
namespace Nz
{
@@ -26,6 +26,8 @@ namespace Nz
std::vector<VertexBufferData> vertexBuffers;
};
class RenderDevice;
class NAZARA_RENDERER_API RenderPipeline
{
public:
@@ -33,6 +35,9 @@ namespace Nz
virtual ~RenderPipeline();
virtual const RenderPipelineInfo& GetPipelineInfo() const = 0;
protected:
static void ValidatePipelineInfo(const RenderDevice& device, RenderPipelineInfo& pipelineInfo);
};
}

View File

@@ -49,6 +49,7 @@ namespace Nz
bool blending = false;
bool colorWrite = true;
bool depthBuffer = false;
bool depthClamp = false;
bool depthWrite = true;
bool faceCulling = false;
bool scissorTest = false;

View File

@@ -19,6 +19,7 @@ namespace Nz
NazaraRenderStateBoolMember(blending);
NazaraRenderStateBoolMember(colorWrite);
NazaraRenderStateBoolMember(depthBuffer);
NazaraRenderStateBoolMember(depthClamp);
NazaraRenderStateBoolMember(faceCulling);
NazaraRenderStateBoolMember(scissorTest);
NazaraRenderStateBoolMember(stencilTest);
@@ -95,6 +96,7 @@ namespace std
NazaraRenderStateBool(blending);
NazaraRenderStateBool(colorWrite);
NazaraRenderStateBool(depthBuffer);
NazaraRenderStateBool(depthClamp);
NazaraRenderStateBool(faceCulling);
NazaraRenderStateBool(scissorTest);
NazaraRenderStateBool(stencilTest);