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