Ndk/RenderSystem: Finish first implementation
Huge WIP, but I have a first render with it Former-commit-id: 82ecea8b6ce5c452818f1585c61af7623c28e958
This commit is contained in:
parent
fac893f379
commit
80ed8c48bd
|
|
@ -7,6 +7,7 @@
|
||||||
#ifndef NDK_SYSTEMS_RENDERSYSTEM_HPP
|
#ifndef NDK_SYSTEMS_RENDERSYSTEM_HPP
|
||||||
#define NDK_SYSTEMS_RENDERSYSTEM_HPP
|
#define NDK_SYSTEMS_RENDERSYSTEM_HPP
|
||||||
|
|
||||||
|
#include <Nazara/Graphics/ForwardRenderTechnique.hpp>
|
||||||
#include <NDK/EntityList.hpp>
|
#include <NDK/EntityList.hpp>
|
||||||
#include <NDK/System.hpp>
|
#include <NDK/System.hpp>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
|
@ -20,6 +21,7 @@ namespace Ndk
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
RenderSystem();
|
RenderSystem();
|
||||||
|
inline RenderSystem(const RenderSystem& renderSystem);
|
||||||
~RenderSystem() = default;
|
~RenderSystem() = default;
|
||||||
|
|
||||||
void Update(float elapsedTime);
|
void Update(float elapsedTime);
|
||||||
|
|
@ -32,6 +34,7 @@ namespace Ndk
|
||||||
|
|
||||||
EntityList m_cameras;
|
EntityList m_cameras;
|
||||||
EntityList m_drawables;
|
EntityList m_drawables;
|
||||||
|
NzForwardRenderTechnique m_renderTechnique;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,11 @@
|
||||||
// Copyright (C) 2015 Jérôme Leclercq
|
// Copyright (C) 2015 Jérôme Leclercq
|
||||||
// This file is part of the "Nazara Development Kit"
|
// This file is part of the "Nazara Development Kit"
|
||||||
// For conditions of distribution and use, see copyright notice in Prerequesites.hpp
|
// For conditions of distribution and use, see copyright notice in Prerequesites.hpp
|
||||||
|
|
||||||
|
namespace Ndk
|
||||||
|
{
|
||||||
|
inline RenderSystem::RenderSystem(const RenderSystem& renderSystem) :
|
||||||
|
System(renderSystem)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ namespace Ndk
|
||||||
{
|
{
|
||||||
if (addDefaultSystems)
|
if (addDefaultSystems)
|
||||||
AddDefaultSystems();
|
AddDefaultSystems();
|
||||||
|
|
||||||
|
m_entities.reserve(100); // Temporaire, je le jure
|
||||||
}
|
}
|
||||||
|
|
||||||
inline BaseSystem& World::AddSystem(std::unique_ptr<BaseSystem>&& system)
|
inline BaseSystem& World::AddSystem(std::unique_ptr<BaseSystem>&& system)
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
// For conditions of distribution and use, see copyright notice in Prerequesites.hpp
|
// For conditions of distribution and use, see copyright notice in Prerequesites.hpp
|
||||||
|
|
||||||
#include <NDK/Systems/RenderSystem.hpp>
|
#include <NDK/Systems/RenderSystem.hpp>
|
||||||
|
#include <Nazara/Graphics/Scene.hpp>
|
||||||
#include <NDK/Components/CameraComponent.hpp>
|
#include <NDK/Components/CameraComponent.hpp>
|
||||||
#include <NDK/Components/GraphicsComponent.hpp>
|
#include <NDK/Components/GraphicsComponent.hpp>
|
||||||
#include <NDK/Components/NodeComponent.hpp>
|
#include <NDK/Components/NodeComponent.hpp>
|
||||||
|
|
@ -21,6 +22,23 @@ namespace Ndk
|
||||||
NodeComponent& cameraNode = camera->GetComponent<NodeComponent>();
|
NodeComponent& cameraNode = camera->GetComponent<NodeComponent>();
|
||||||
|
|
||||||
camComponent.ApplyView();
|
camComponent.ApplyView();
|
||||||
|
|
||||||
|
NzScene dummyScene;
|
||||||
|
dummyScene.SetViewer(camComponent);
|
||||||
|
|
||||||
|
NzAbstractRenderQueue* renderQueue = m_renderTechnique.GetRenderQueue();
|
||||||
|
renderQueue->Clear();
|
||||||
|
|
||||||
|
for (const Ndk::EntityHandle& drawable : m_drawables)
|
||||||
|
{
|
||||||
|
GraphicsComponent& graphicsComponent = drawable->GetComponent<GraphicsComponent>();
|
||||||
|
NodeComponent& drawableNode = drawable->GetComponent<NodeComponent>();
|
||||||
|
|
||||||
|
graphicsComponent.AddToRenderQueue(renderQueue, drawableNode.GetTransformMatrix());
|
||||||
|
}
|
||||||
|
|
||||||
|
m_renderTechnique.Clear(&dummyScene);
|
||||||
|
m_renderTechnique.Draw(&dummyScene);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue