Move example entities to scene

This commit is contained in:
Riyyi
2021-01-14 03:29:21 +01:00
parent a4845d1bda
commit 0b2cc9f411
4 changed files with 32 additions and 36 deletions
+1 -21
View File
@@ -46,6 +46,7 @@ namespace Inferno {
textureManager->initialize(); textureManager->initialize();
m_scene = std::make_shared<Scene>(); m_scene = std::make_shared<Scene>();
m_scene->initialize();
Renderer2D* renderer2D = new Renderer2D(); Renderer2D* renderer2D = new Renderer2D();
renderer2D->initialize(); renderer2D->initialize();
@@ -58,9 +59,6 @@ namespace Inferno {
// Load assets // Load assets
m_texture = TextureManager::the().load("assets/gfx/test.png");
m_texture2 = TextureManager::the().load("assets/gfx/test-inverted.png");
m_font = FontManager::the().load("assets/fnt/dejavu-sans"); m_font = FontManager::the().load("assets/fnt/dejavu-sans");
} }
@@ -80,19 +78,6 @@ namespace Inferno {
{ {
dbg() << "Application startup"; dbg() << "Application startup";
Entity quad = m_scene->createEntity("Quad");
quad.add<SpriteComponent>(glm::vec4 { 1.0f, 1.0f, 1.0f, 1.0f }, m_texture);
Entity quad2 = m_scene->createEntity("Quad 2");
auto& quad2Transform = quad2.get<TransformComponent>();
quad2Transform.translate.x = 1.1f;
quad2.add<SpriteComponent>(glm::vec4 { 0.5f, 0.6f, 0.8f, 1.0f }, m_texture);
Entity quad3 = m_scene->createEntity("Quad 3");
auto& quad3Transform = quad3.get<TransformComponent>();
quad3Transform.translate.x = 2.2f;
quad3.add<SpriteComponent>(glm::vec4 { 1.0f, 1.0f, 1.0f, 1.0f }, m_texture2);
std::array<CharacterVertex, Renderer::vertexPerQuad> character; std::array<CharacterVertex, Renderer::vertexPerQuad> character;
// character.at(0).quad.textureCoordinates = { 0.0f, 0.0f }; // bottom left // character.at(0).quad.textureCoordinates = { 0.0f, 0.0f }; // bottom left
@@ -131,11 +116,6 @@ namespace Inferno {
character.at(2).quad.textureCoordinates = { x.y, y.y }; character.at(2).quad.textureCoordinates = { x.y, y.y };
character.at(3).quad.textureCoordinates = { x.x, y.y }; character.at(3).quad.textureCoordinates = { x.x, y.y };
character.at(0).quad.textureIndex = 1.0f;
character.at(1).quad.textureIndex = 1.0f;
character.at(2).quad.textureIndex = 1.0f;
character.at(3).quad.textureIndex = 1.0f;
// pos // pos
// texcoords // texcoords
// //
-2
View File
@@ -47,8 +47,6 @@ namespace Inferno {
float m_lastFrameTime = 0.0f; float m_lastFrameTime = 0.0f;
// //
std::shared_ptr<Texture> m_texture;
std::shared_ptr<Texture> m_texture2;
std::shared_ptr<Font> m_font; std::shared_ptr<Font> m_font;
// //
+27 -10
View File
@@ -8,18 +8,11 @@
namespace Inferno { namespace Inferno {
Scene::Scene()
{
initialize();
}
Scene::~Scene()
{
destroy();
}
void Scene::initialize() void Scene::initialize()
{ {
// Initialize
// ---------------------------------
m_registry = std::make_shared<entt::registry>(); m_registry = std::make_shared<entt::registry>();
TransformSystem* transformSystem = new TransformSystem(); TransformSystem* transformSystem = new TransformSystem();
@@ -39,6 +32,30 @@ namespace Inferno {
RenderSystem* renderSystem = new RenderSystem(); RenderSystem* renderSystem = new RenderSystem();
renderSystem->initialize(); renderSystem->initialize();
RenderSystem::the().setRegistry(m_registry); RenderSystem::the().setRegistry(m_registry);
// Load assets
// ---------------------------------
m_texture = TextureManager::the().load("assets/gfx/test.png");
m_texture2 = TextureManager::the().load("assets/gfx/test-inverted.png");
// Construct entities
// ---------------------------------
Entity quad = createEntity("Quad");
quad.add<SpriteComponent>(glm::vec4 { 1.0f, 1.0f, 1.0f, 1.0f }, m_texture);
Entity quad2 = createEntity("Quad 2");
auto& quad2Transform = quad2.get<TransformComponent>();
quad2Transform.translate.x = 1.1f;
quad2.add<SpriteComponent>(glm::vec4 { 0.5f, 0.6f, 0.8f, 1.0f }, m_texture);
Entity quad3 = createEntity("Quad 3");
auto& quad3Transform = quad3.get<TransformComponent>();
quad3Transform.translate.x = 2.2f;
quad3.add<SpriteComponent>(glm::vec4 { 1.0f, 1.0f, 1.0f, 1.0f }, m_texture2);
dbg(Log::Info) << "Scene initialized";
} }
void Scene::update(float deltaTime) void Scene::update(float deltaTime)
+4 -3
View File
@@ -11,12 +11,10 @@ namespace Inferno {
class Camera; class Camera;
class Entity; class Entity;
class Texture;
class Scene { class Scene {
public: public:
Scene();
virtual ~Scene();
void initialize(); void initialize();
void update(float deltaTime); void update(float deltaTime);
void render(); void render();
@@ -29,6 +27,9 @@ namespace Inferno {
glm::mat4 cameraProjectionView(); glm::mat4 cameraProjectionView();
private: private:
std::shared_ptr<Texture> m_texture;
std::shared_ptr<Texture> m_texture2;
std::shared_ptr<entt::registry> m_registry; std::shared_ptr<entt::registry> m_registry;
}; };