engine now has basic compatibility with the new renderer scene format
This commit is contained in:
parent
e292902cbd
commit
ca6f1bf916
@ -1,7 +1,7 @@
|
||||
#ifndef CAMERANODE_H
|
||||
#define CAMERANODE_H
|
||||
|
||||
#include "scene.h"
|
||||
#include "scenetree.h"
|
||||
#include "camera.h"
|
||||
#include "glm/vec3.hpp"
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include <btBulletCollisionCommon.h>
|
||||
#include <btBulletDynamicsCommon.h>
|
||||
#include "resourcemanager.h"
|
||||
#include "scene.h"
|
||||
#include "scenetree.h"
|
||||
#include "cameranode.h"
|
||||
|
||||
Engine::Engine() :
|
||||
@ -19,14 +19,11 @@ Engine::Engine() :
|
||||
m_clock = new sf::Clock();
|
||||
m_clock->restart();
|
||||
m_renderer = new SparrowRenderer();
|
||||
m_renderer->setCamera(NULL);
|
||||
}
|
||||
|
||||
Engine::~Engine()
|
||||
{
|
||||
delete m_clock;
|
||||
if(m_window != NULL)
|
||||
m_renderer->destroyGL();
|
||||
delete m_renderer;
|
||||
if(m_window != NULL)
|
||||
{
|
||||
@ -84,9 +81,8 @@ void Engine::update()
|
||||
void Engine::start()
|
||||
{
|
||||
m_running = true;
|
||||
while(!m_input->isCloseRequested() && m_running){
|
||||
while(!m_input->isCloseRequested() && m_running)
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
void Engine::stop()
|
||||
@ -106,5 +102,5 @@ unsigned int Engine::getDeltaTime()
|
||||
|
||||
void Engine::setScene(std::string sceneName)
|
||||
{
|
||||
m_scene = RESOURCE_GET(Scene, sceneName);
|
||||
m_scene = RESOURCE_GET(SceneTree, sceneName);
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
class Input;
|
||||
class SparrowRenderer;
|
||||
class Scene;
|
||||
class SceneTree;
|
||||
namespace sf
|
||||
{
|
||||
class Clock;
|
||||
@ -45,7 +45,7 @@ private:
|
||||
sf::Window* m_window;
|
||||
|
||||
Input* m_input;
|
||||
Scene* m_scene;
|
||||
SceneTree* m_scene;
|
||||
btDiscreteDynamicsWorld* m_world;
|
||||
SparrowRenderer* m_renderer;
|
||||
|
||||
|
@ -9,14 +9,9 @@
|
||||
#include "tools/pathfinder.h"
|
||||
|
||||
int main(){
|
||||
CameraNode camera;
|
||||
RESOURCE_ADD(&camera, SceneNode, "camera");
|
||||
|
||||
Scene scene("testScene");
|
||||
scene.addChild("camera");
|
||||
SceneTree scene("testScene");
|
||||
|
||||
Engine engine;
|
||||
engine.getRenderer()->setCamera(&camera);
|
||||
engine.createWindow("test");
|
||||
engine.setScene("testScene");
|
||||
engine.start();
|
||||
|
@ -1,17 +1,34 @@
|
||||
#include "scene.h"
|
||||
#include "scenetree.h"
|
||||
#include "resourcemanager.h"
|
||||
|
||||
// Scene
|
||||
|
||||
Scene::Scene(std::string name) :
|
||||
m_name(name)
|
||||
SceneTree::SceneTree(std::string name) :
|
||||
m_name(name),
|
||||
m_skybox(NULL)
|
||||
{
|
||||
RESOURCE_ADD(this, Scene, m_name);
|
||||
RESOURCE_ADD(this, SceneTree, m_name);
|
||||
}
|
||||
|
||||
Scene::~Scene()
|
||||
SceneTree::~SceneTree()
|
||||
{
|
||||
RESOURCE_ADD(NULL, Scene, m_name);
|
||||
RESOURCE_ADD(NULL, SceneTree, m_name);
|
||||
}
|
||||
|
||||
SceneIterator<Light*>* SceneTree::getLights()
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SceneIterator<GeometryNode*>* SceneTree::getGeometry()
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void SceneTree::update()
|
||||
{
|
||||
m_objects.update();
|
||||
m_map.update();
|
||||
}
|
||||
|
||||
// Container Node
|
@ -1,8 +1,10 @@
|
||||
#ifndef SCENE_H
|
||||
#define SCENE_H
|
||||
#ifndef SCENETREE_H
|
||||
#define SCENETREE_H
|
||||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include "scene.h"
|
||||
#include "light.h"
|
||||
|
||||
class SceneNode
|
||||
{
|
||||
@ -22,18 +24,30 @@ protected:
|
||||
std::vector<SceneNode*> m_children;
|
||||
};
|
||||
|
||||
class Scene : public ContainerNode
|
||||
class SceneTree : public Scene
|
||||
{
|
||||
public:
|
||||
Scene(std::string name);
|
||||
~Scene();
|
||||
SceneTree(std::string name);
|
||||
~SceneTree();
|
||||
|
||||
virtual SceneIterator<Light*>* getLights();
|
||||
virtual SceneIterator<GeometryNode*>* getGeometry();
|
||||
|
||||
void update();
|
||||
|
||||
Texture* getSkybox() {return m_skybox;}
|
||||
void setSkybox(Texture* skybox) {m_skybox = skybox;}
|
||||
|
||||
private:
|
||||
std::string m_name;
|
||||
ContainerNode m_objects;
|
||||
ContainerNode m_map;
|
||||
Texture* m_skybox;
|
||||
};
|
||||
|
||||
//general Node
|
||||
|
||||
class ObjectNode : public SceneNode//, public PhongEntity
|
||||
class ObjectNode : public SceneNode
|
||||
{
|
||||
//add bullet rigidbody
|
||||
public:
|
||||
@ -72,7 +86,7 @@ public:
|
||||
// parametre fog
|
||||
};
|
||||
|
||||
class LightNode : public SceneNode
|
||||
class LightNode : public SceneNode, public Light
|
||||
{
|
||||
public:
|
||||
virtual void update();
|
||||
@ -89,4 +103,4 @@ public:
|
||||
// map
|
||||
};
|
||||
|
||||
#endif // SCENE_H
|
||||
#endif // SCENETREE_H
|
Loading…
x
Reference in New Issue
Block a user