Added a static New method to RefCounted-derived classes

Former-commit-id: efd9e68e050fb6cc7e0df7a7c222ca759c502dc5
This commit is contained in:
Lynix
2015-01-25 23:41:09 +01:00
parent 5f5be93992
commit 0db92e671d
59 changed files with 532 additions and 354 deletions

View File

@@ -184,22 +184,19 @@ bool NzRenderTexture::AttachBuffer(nzAttachmentPoint attachmentPoint, nzUInt8 in
bool NzRenderTexture::AttachBuffer(nzAttachmentPoint attachmentPoint, nzUInt8 index, nzPixelFormat format, unsigned int width, unsigned int height)
{
std::unique_ptr<NzRenderBuffer> renderBuffer(new NzRenderBuffer);
renderBuffer->SetPersistent(false);
NzRenderBufferRef renderBuffer = NzRenderBuffer::New();
if (!renderBuffer->Create(format, width, height))
{
NazaraError("Failed to create RenderBuffer");
return false;
}
if (!AttachBuffer(attachmentPoint, index, renderBuffer.get()))
if (!AttachBuffer(attachmentPoint, index, renderBuffer))
{
NazaraError("Failed to attach buffer");
return false;
}
renderBuffer.release();
return true;
}

View File

@@ -884,10 +884,8 @@ bool NzRenderer::Initialize()
}
// Création du shader de Debug
std::unique_ptr<NzShader> shader(new NzShader);
shader->SetPersistent(false);
if (!shader->Create())
NzShaderRef debugShader = NzShader::New();
if (!debugShader->Create())
{
NazaraError("Failed to create debug shader");
return false;
@@ -912,26 +910,25 @@ bool NzRenderer::Initialize()
vertexShaderLength = sizeof(r_compatibilityVertexShader);
}
if (!shader->AttachStageFromSource(nzShaderStage_Fragment, fragmentShader, fragmentShaderLength))
if (!debugShader->AttachStageFromSource(nzShaderStage_Fragment, fragmentShader, fragmentShaderLength))
{
NazaraError("Failed to attach fragment stage");
return false;
}
if (!shader->AttachStageFromSource(nzShaderStage_Vertex, vertexShader, vertexShaderLength))
if (!debugShader->AttachStageFromSource(nzShaderStage_Vertex, vertexShader, vertexShaderLength))
{
NazaraError("Failed to attach vertex stage");
return false;
}
if (!shader->Link())
if (!debugShader->Link())
{
NazaraError("Failed to link shader");
return false;
}
NzShaderLibrary::Register("DebugSimple", shader.get());
shader.release();
NzShaderLibrary::Register("DebugSimple", debugShader);
onExit.Reset();

View File

@@ -35,10 +35,9 @@ NzUberShaderInstance* NzUberShaderPreprocessor::Get(const NzParameterList& param
// Une exception sera lancée à la moindre erreur et celle-ci ne sera pas enregistrée dans le log (car traitée dans le bloc catch)
NzErrorFlags errFlags(nzErrorFlag_Silent | nzErrorFlag_ThrowException, true);
std::unique_ptr<NzShader> shader(new NzShader);
shader->SetPersistent(false);
NzShaderRef shader = NzShader::New();
shader->Create();
for (unsigned int i = 0; i <= nzShaderStage_Max; ++i)
{
const Shader& shaderStage = m_shaders[i];
@@ -91,8 +90,7 @@ NzUberShaderInstance* NzUberShaderPreprocessor::Get(const NzParameterList& param
shader->Link();
// On construit l'instant
shaderIt = m_cache.emplace(flags, shader.get()).first;
shader.release();
shaderIt = m_cache.emplace(flags, shader.Get()).first;
}
catch (const std::exception& e)
{