Added shader flags
Renamed ShaderBuilder enum to ShaderFlags Former-commit-id: b3440bac5491f0a0a90cbd7f9ed8e396c16c0864
This commit is contained in:
@@ -29,6 +29,9 @@
|
||||
|
||||
/// Chaque modification d'un paramètre du module nécessite une recompilation de celui-ci
|
||||
|
||||
// Le nombre maximum d'instances pouvant être géré par le Renderer
|
||||
#define NAZARA_RENDERER_INSTANCING_MAX 8192
|
||||
|
||||
// Utilise un tracker pour repérer les éventuels leaks (Ralentit l'exécution)
|
||||
#define NAZARA_RENDERER_MEMORYLEAKTRACKER 0
|
||||
|
||||
|
||||
@@ -73,6 +73,7 @@ enum nzRendererCap
|
||||
nzRendererCap_AnisotropicFilter,
|
||||
nzRendererCap_FP64,
|
||||
nzRendererCap_HardwareBuffer,
|
||||
nzRendererCap_Instancing,
|
||||
nzRendererCap_MultipleRenderTargets,
|
||||
nzRendererCap_OcclusionQuery,
|
||||
nzRendererCap_PixelBufferObject,
|
||||
@@ -143,17 +144,18 @@ enum nzSamplerWrap
|
||||
nzSamplerWrap_Max = nzSamplerWrap_Repeat
|
||||
};
|
||||
|
||||
enum nzShaderBuilderFlags
|
||||
enum nzShaderFlags
|
||||
{
|
||||
nzShaderBuilder_None = 0,
|
||||
nzShaderFlags_None = 0,
|
||||
|
||||
nzShaderBuilder_Deferred = 0x01,
|
||||
nzShaderBuilder_DiffuseMapping = 0x02,
|
||||
nzShaderBuilder_Instancing = 0x04,
|
||||
nzShaderBuilder_Lighting = 0x08,
|
||||
nzShaderBuilder_NormalMapping = 0x10,
|
||||
nzShaderBuilder_ParallaxMapping = 0x20,
|
||||
nzShaderBuilder_SpecularMapping = 0x40
|
||||
nzShaderFlags_Deferred = 0x01,
|
||||
nzShaderFlags_DiffuseMapping = 0x02,
|
||||
nzShaderFlags_FlipUVs = 0x04,
|
||||
nzShaderFlags_Instancing = 0x08,
|
||||
nzShaderFlags_Lighting = 0x10,
|
||||
nzShaderFlags_NormalMapping = 0x20,
|
||||
nzShaderFlags_ParallaxMapping = 0x40,
|
||||
nzShaderFlags_SpecularMapping = 0x80
|
||||
};
|
||||
|
||||
enum nzShaderLanguage
|
||||
|
||||
@@ -37,7 +37,7 @@ class NAZARA_API NzMaterial : public NzResource
|
||||
NzMaterial(NzMaterial&& material);
|
||||
~NzMaterial();
|
||||
|
||||
void Apply() const;
|
||||
void Apply(const NzShader* shader) const;
|
||||
|
||||
void EnableAlphaBlending(bool alphaBlending);
|
||||
void EnableFaceCulling(bool faceCulling);
|
||||
@@ -46,6 +46,7 @@ class NAZARA_API NzMaterial : public NzResource
|
||||
void EnableZWrite(bool zWrite);
|
||||
|
||||
NzColor GetAmbientColor() const;
|
||||
const NzShader* GetCustomShader() const;
|
||||
NzColor GetDiffuseColor() const;
|
||||
NzTexture* GetDiffuseMap() const;
|
||||
NzTextureSampler& GetDiffuseSampler();
|
||||
@@ -55,7 +56,7 @@ class NAZARA_API NzMaterial : public NzResource
|
||||
nzFaceFilling GetFaceFilling() const;
|
||||
NzTexture* GetHeightMap() const;
|
||||
NzTexture* GetNormalMap() const;
|
||||
const NzShader* GetShader() const;
|
||||
nzUInt32 GetShaderFlags() const;
|
||||
float GetShininess() const;
|
||||
NzColor GetSpecularColor() const;
|
||||
NzTexture* GetSpecularMap() const;
|
||||
@@ -64,6 +65,8 @@ class NAZARA_API NzMaterial : public NzResource
|
||||
nzBlendFunc GetSrcBlend() const;
|
||||
nzRendererComparison GetZTestCompare() const;
|
||||
|
||||
bool HasCustomShader() const;
|
||||
|
||||
bool IsAlphaBlendingEnabled() const;
|
||||
bool IsFaceCullingEnabled() const;
|
||||
bool IsLightingEnabled() const;
|
||||
@@ -85,7 +88,7 @@ class NAZARA_API NzMaterial : public NzResource
|
||||
void SetFaceFilling(nzFaceFilling filling);
|
||||
void SetHeightMap(NzTexture* map);
|
||||
void SetNormalMap(NzTexture* map);
|
||||
void SetShader(const NzShader* shader);
|
||||
void SetCustomShader(const NzShader* shader);
|
||||
void SetShininess(float shininess);
|
||||
void SetSpecularColor(const NzColor& specular);
|
||||
void SetSpecularMap(NzTexture* map);
|
||||
@@ -99,25 +102,23 @@ class NAZARA_API NzMaterial : public NzResource
|
||||
static NzMaterial* GetDefault();
|
||||
|
||||
private:
|
||||
void UpdateShader() const;
|
||||
|
||||
nzBlendFunc m_dstBlend;
|
||||
nzBlendFunc m_srcBlend;
|
||||
nzFaceCulling m_faceCulling;
|
||||
nzFaceFilling m_faceFilling;
|
||||
nzRendererComparison m_zTestCompareFunc;
|
||||
nzUInt32 m_shaderFlags;
|
||||
NzColor m_ambientColor;
|
||||
NzColor m_diffuseColor;
|
||||
NzColor m_specularColor;
|
||||
NzTextureSampler m_diffuseSampler;
|
||||
NzTextureSampler m_specularSampler;
|
||||
mutable const NzShader* m_shader;
|
||||
mutable const NzShader* m_customShader;
|
||||
NzTexture* m_diffuseMap;
|
||||
NzTexture* m_heightMap;
|
||||
NzTexture* m_normalMap;
|
||||
NzTexture* m_specularMap;
|
||||
bool m_alphaBlendingEnabled;
|
||||
bool m_autoShader;
|
||||
bool m_faceCullingEnabled;
|
||||
bool m_lightingEnabled;
|
||||
bool m_zTestEnabled;
|
||||
|
||||
@@ -22,7 +22,6 @@ class NzMaterial;
|
||||
class NzRenderTarget;
|
||||
class NzShader;
|
||||
class NzVertexBuffer;
|
||||
class NzVertexDeclaration;
|
||||
|
||||
class NAZARA_API NzRenderer
|
||||
{
|
||||
@@ -94,7 +93,7 @@ class NAZARA_API NzRenderer
|
||||
static void Uninitialize();
|
||||
|
||||
private:
|
||||
static bool EnsureStateUpdate();
|
||||
static bool EnsureStateUpdate(bool instancing);
|
||||
|
||||
static unsigned int s_moduleReferenceCounter;
|
||||
};
|
||||
|
||||
@@ -36,6 +36,7 @@ class NAZARA_API NzShader : public NzResource, NzNonCopyable
|
||||
|
||||
void Destroy();
|
||||
|
||||
nzUInt32 GetFlags() const;
|
||||
NzString GetLog() const;
|
||||
nzShaderLanguage GetLanguage() const;
|
||||
NzString GetSourceCode(nzShaderType type) const;
|
||||
@@ -67,6 +68,8 @@ class NAZARA_API NzShader : public NzResource, NzNonCopyable
|
||||
bool SendVector(int location, const NzVector4d& vector) const;
|
||||
bool SendVector(int location, const NzVector4f& vector) const;
|
||||
|
||||
void SetFlags(nzUInt32 flags);
|
||||
|
||||
void Unlock();
|
||||
|
||||
NzShader& operator=(NzShader&& shader);
|
||||
@@ -75,6 +78,7 @@ class NAZARA_API NzShader : public NzResource, NzNonCopyable
|
||||
static bool IsTypeSupported(nzShaderType type);
|
||||
|
||||
private:
|
||||
nzUInt32 m_flags = nzShaderFlags_None;
|
||||
NzShaderImpl* m_impl = nullptr;
|
||||
bool m_compiled = false;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user