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