Added backgrounds
Former-commit-id: e3959b04a124978c473bd6330047b5fd6ac27b19
This commit is contained in:
8
src/Nazara/2D/Background.cpp
Normal file
8
src/Nazara/2D/Background.cpp
Normal file
@@ -0,0 +1,8 @@
|
||||
// Copyright (C) 2013 Jérôme Leclercq
|
||||
// This file is part of the "Nazara Engine - 2D Module"
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#include <Nazara/2D/Background.hpp>
|
||||
#include <Nazara/2D/Debug.hpp>
|
||||
|
||||
NzBackground::~NzBackground() = default;
|
||||
33
src/Nazara/2D/ColorBackground.cpp
Normal file
33
src/Nazara/2D/ColorBackground.cpp
Normal file
@@ -0,0 +1,33 @@
|
||||
// Copyright (C) 2013 Jérôme Leclercq
|
||||
// This file is part of the "Nazara Engine - 2D Module"
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#include <Nazara/2D/ColorBackground.hpp>
|
||||
#include <Nazara/Renderer/Renderer.hpp>
|
||||
#include <Nazara/2D/Debug.hpp>
|
||||
|
||||
NzColorBackground::NzColorBackground(const NzColor& color) :
|
||||
m_color(color)
|
||||
{
|
||||
}
|
||||
|
||||
void NzColorBackground::Draw() const
|
||||
{
|
||||
NzRenderer::SetClearColor(m_color);
|
||||
NzRenderer::Clear(nzRendererClear_Color);
|
||||
}
|
||||
|
||||
nzBackgroundType NzColorBackground::GetBackgroundType() const
|
||||
{
|
||||
return nzBackgroundType_Color;
|
||||
}
|
||||
|
||||
NzColor NzColorBackground::GetColor() const
|
||||
{
|
||||
return m_color;
|
||||
}
|
||||
|
||||
void NzColorBackground::SetColor(const NzColor& color)
|
||||
{
|
||||
m_color = color;
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#include <Nazara/3D/Scene.hpp>
|
||||
#include <Nazara/2D/ColorBackground.hpp>
|
||||
#include <Nazara/2D/Drawable.hpp>
|
||||
#include <Nazara/3D/Camera.hpp>
|
||||
#include <Nazara/3D/Light.hpp>
|
||||
@@ -19,6 +20,7 @@
|
||||
#include <Nazara/Utility/SkeletalMesh.hpp>
|
||||
#include <Nazara/Utility/StaticMesh.hpp>
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
#include <set>
|
||||
#include <vector>
|
||||
#include <Nazara/3D/Debug.hpp>
|
||||
@@ -45,6 +47,7 @@ struct NzSceneImpl
|
||||
{
|
||||
}
|
||||
|
||||
std::unique_ptr<NzBackground> background;
|
||||
std::vector<NzUpdatable*> updateList;
|
||||
std::vector<NzUpdatable*> visibleUpdateList;
|
||||
std::vector<NzRenderer::InstancingData> instancingData;
|
||||
@@ -67,6 +70,8 @@ NzScene::NzScene()
|
||||
|
||||
if (NzRenderer::HasCapability(nzRendererCap_Instancing))
|
||||
m_impl->instancingData.resize(NAZARA_RENDERER_INSTANCING_MAX);
|
||||
|
||||
SetBackground(nullptr);
|
||||
}
|
||||
|
||||
NzScene::~NzScene()
|
||||
@@ -103,6 +108,9 @@ void NzScene::Draw()
|
||||
{
|
||||
NzRenderer::Clear(nzRendererClear_Depth);
|
||||
|
||||
if (m_impl->background)
|
||||
m_impl->background->Draw();
|
||||
|
||||
LightComparator lightComparator;
|
||||
|
||||
// Pour les meshs squelettiques, on utilise un buffer commun
|
||||
@@ -315,6 +323,11 @@ void NzScene::Draw()
|
||||
drawable->Draw();
|
||||
}
|
||||
|
||||
NzBackground* NzScene::GetBackground() const
|
||||
{
|
||||
return m_impl->background.get();
|
||||
}
|
||||
|
||||
NzSceneNode& NzScene::GetRoot() const
|
||||
{
|
||||
return m_impl->root;
|
||||
@@ -348,6 +361,14 @@ void NzScene::SetAmbientColor(const NzColor& color)
|
||||
m_impl->ambientColor = color;
|
||||
}
|
||||
|
||||
void NzScene::SetBackground(NzBackground* background)
|
||||
{
|
||||
if (!background)
|
||||
background = new NzColorBackground;
|
||||
|
||||
m_impl->background.reset(background);
|
||||
}
|
||||
|
||||
void NzScene::SetUpdatePerSecond(unsigned int updatePerSecond)
|
||||
{
|
||||
m_impl->updatePerSecond = updatePerSecond;
|
||||
|
||||
Reference in New Issue
Block a user