Move example entities to scene
This commit is contained in:
@@ -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
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -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;
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user