Changed default material
Former-commit-id: 60fe21986d8cdd22e89ea4ccfbb9c5b33ba8eed6
This commit is contained in:
parent
57e12a2625
commit
abe56631dd
|
|
@ -40,6 +40,7 @@ using NzMaterialRef = NzResourceRef<NzMaterial>;
|
||||||
class NAZARA_API NzMaterial : public NzResource
|
class NAZARA_API NzMaterial : public NzResource
|
||||||
{
|
{
|
||||||
friend NzMaterialLoader;
|
friend NzMaterialLoader;
|
||||||
|
friend class NzRenderer;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
NzMaterial();
|
NzMaterial();
|
||||||
|
|
@ -120,6 +121,9 @@ class NAZARA_API NzMaterial : public NzResource
|
||||||
private:
|
private:
|
||||||
void Copy(const NzMaterial& material);
|
void Copy(const NzMaterial& material);
|
||||||
|
|
||||||
|
static bool Initialize();
|
||||||
|
static void Uninitialize();
|
||||||
|
|
||||||
nzUInt32 m_shaderFlags;
|
nzUInt32 m_shaderFlags;
|
||||||
NzColor m_ambientColor;
|
NzColor m_ambientColor;
|
||||||
NzColor m_diffuseColor;
|
NzColor m_diffuseColor;
|
||||||
|
|
@ -137,6 +141,7 @@ class NAZARA_API NzMaterial : public NzResource
|
||||||
bool m_lightingEnabled;
|
bool m_lightingEnabled;
|
||||||
float m_shininess;
|
float m_shininess;
|
||||||
|
|
||||||
|
static NzMaterial* s_defaultMaterial;
|
||||||
static NzMaterialLoader::LoaderList s_loaders;
|
static NzMaterialLoader::LoaderList s_loaders;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -575,19 +575,7 @@ NzMaterial& NzMaterial::operator=(NzMaterial&& material)
|
||||||
|
|
||||||
NzMaterial* NzMaterial::GetDefault()
|
NzMaterial* NzMaterial::GetDefault()
|
||||||
{
|
{
|
||||||
static NzMaterial defaultMaterial;
|
return s_defaultMaterial;
|
||||||
static bool initialized = false;
|
|
||||||
|
|
||||||
if (!initialized)
|
|
||||||
{
|
|
||||||
defaultMaterial.EnableLighting(false);
|
|
||||||
defaultMaterial.SetDiffuseColor(NzColor::White);
|
|
||||||
defaultMaterial.SetFaceFilling(nzFaceFilling_Line);
|
|
||||||
|
|
||||||
initialized = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return &defaultMaterial;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void NzMaterial::Copy(const NzMaterial& material)
|
void NzMaterial::Copy(const NzMaterial& material)
|
||||||
|
|
@ -619,4 +607,18 @@ void NzMaterial::Copy(const NzMaterial& material)
|
||||||
m_specularMap = material.m_specularMap;
|
m_specularMap = material.m_specularMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool NzMaterial::Initialize()
|
||||||
|
{
|
||||||
|
s_defaultMaterial = new NzMaterial;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NzMaterial::Uninitialize()
|
||||||
|
{
|
||||||
|
delete s_defaultMaterial;
|
||||||
|
s_defaultMaterial = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
NzMaterial* NzMaterial::s_defaultMaterial = nullptr;
|
||||||
NzMaterialLoader::LoaderList NzMaterial::s_loaders;
|
NzMaterialLoader::LoaderList NzMaterial::s_loaders;
|
||||||
|
|
|
||||||
|
|
@ -755,6 +755,14 @@ bool NzRenderer::Initialize()
|
||||||
s_quadBuffer = new NzVertexBuffer(declaration.get(), 4, nzBufferStorage_Hardware, nzBufferUsage_Dynamic);
|
s_quadBuffer = new NzVertexBuffer(declaration.get(), 4, nzBufferStorage_Hardware, nzBufferUsage_Dynamic);
|
||||||
declaration.release();
|
declaration.release();
|
||||||
|
|
||||||
|
if (!NzMaterial::Initialize())
|
||||||
|
{
|
||||||
|
NazaraError("Failed to initialize materials");
|
||||||
|
Uninitialize();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!NzShaderBuilder::Initialize())
|
if (!NzShaderBuilder::Initialize())
|
||||||
{
|
{
|
||||||
NazaraError("Failed to initialize shader builder");
|
NazaraError("Failed to initialize shader builder");
|
||||||
|
|
@ -1293,6 +1301,7 @@ void NzRenderer::Uninitialize()
|
||||||
NzLoaders_Texture_Unregister();
|
NzLoaders_Texture_Unregister();
|
||||||
|
|
||||||
NzDebugDrawer::Uninitialize();
|
NzDebugDrawer::Uninitialize();
|
||||||
|
NzMaterial::Uninitialize();
|
||||||
NzShaderBuilder::Uninitialize();
|
NzShaderBuilder::Uninitialize();
|
||||||
NzTextureSampler::Uninitialize();
|
NzTextureSampler::Uninitialize();
|
||||||
|
|
||||||
|
|
@ -1387,6 +1396,7 @@ bool NzRenderer::EnsureStateUpdate()
|
||||||
{
|
{
|
||||||
TextureUnit& unit = s_textureUnits[i];
|
TextureUnit& unit = s_textureUnits[i];
|
||||||
|
|
||||||
|
///FIXME: Cet appel ne fait-il pas redondance avec le rebinding des textures avant le return ?
|
||||||
if (!unit.textureUpdated)
|
if (!unit.textureUpdated)
|
||||||
{
|
{
|
||||||
NzOpenGL::SetTextureUnit(i);
|
NzOpenGL::SetTextureUnit(i);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue