forked from teamnwah/openmw-tes3coop
Objects started, RenderingInterface
This commit is contained in:
parent
3761271c59
commit
f1bc5b0ab6
10 changed files with 84 additions and 14 deletions
|
@ -16,7 +16,7 @@ set(GAME_HEADER
|
||||||
source_group(game FILES ${GAME} ${GAME_HEADER})
|
source_group(game FILES ${GAME} ${GAME_HEADER})
|
||||||
|
|
||||||
add_openmw_dir (mwrender
|
add_openmw_dir (mwrender
|
||||||
renderingmanager debugging cellimp interior exterior sky player
|
renderingmanager debugging cellimp interior exterior sky player npcs creatures objects
|
||||||
)
|
)
|
||||||
|
|
||||||
add_openmw_dir (mwinput
|
add_openmw_dir (mwinput
|
||||||
|
|
|
@ -28,15 +28,6 @@ namespace MWRender
|
||||||
/// Base class for cell render, that implements inserting references into a cell in a
|
/// Base class for cell render, that implements inserting references into a cell in a
|
||||||
/// cell type- and render-engine-independent way.
|
/// cell type- and render-engine-independent way.
|
||||||
|
|
||||||
class NPC{
|
|
||||||
|
|
||||||
};
|
|
||||||
class Creature{
|
|
||||||
|
|
||||||
};
|
|
||||||
class Obj{
|
|
||||||
|
|
||||||
};
|
|
||||||
class CellRenderImp
|
class CellRenderImp
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
2
apps/openmw/mwrender/creatures.cpp
Normal file
2
apps/openmw/mwrender/creatures.cpp
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
#include "creatures.hpp"
|
||||||
|
using namespace MWRender;
|
5
apps/openmw/mwrender/creatures.hpp
Normal file
5
apps/openmw/mwrender/creatures.hpp
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
namespace MWRender{
|
||||||
|
class Creatures{
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
2
apps/openmw/mwrender/npcs.cpp
Normal file
2
apps/openmw/mwrender/npcs.cpp
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
#include "npcs.hpp"
|
||||||
|
using namespace MWRender;
|
5
apps/openmw/mwrender/npcs.hpp
Normal file
5
apps/openmw/mwrender/npcs.hpp
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
namespace MWRender{
|
||||||
|
class Npcs{
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
16
apps/openmw/mwrender/objects.cpp
Normal file
16
apps/openmw/mwrender/objects.cpp
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#include "objects.hpp"
|
||||||
|
|
||||||
|
using namespace MWRender;
|
||||||
|
|
||||||
|
void Objects::insertBegin (ESM::CellRef &ref, bool static_){
|
||||||
|
|
||||||
|
}
|
||||||
|
void Objects::insertMesh(const std::string &mesh){
|
||||||
|
|
||||||
|
}
|
||||||
|
void Objects::insertLight(float r, float g, float b, float radius){
|
||||||
|
|
||||||
|
}
|
||||||
|
void Objects::insertObjectPhysics(){
|
||||||
|
|
||||||
|
}
|
18
apps/openmw/mwrender/objects.hpp
Normal file
18
apps/openmw/mwrender/objects.hpp
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#include "components/esm_store/cell_store.hpp"
|
||||||
|
|
||||||
|
#include "../mwworld/refdata.hpp"
|
||||||
|
|
||||||
|
namespace MWRender{
|
||||||
|
class Objects{
|
||||||
|
public:
|
||||||
|
Objects(){}
|
||||||
|
~Objects(){}
|
||||||
|
void insertBegin (ESM::CellRef &ref, bool static_ = false);
|
||||||
|
void insertMesh(const std::string &mesh);
|
||||||
|
|
||||||
|
/// insert a light related to the most recent insertBegin call.
|
||||||
|
void insertLight(float r, float g, float b, float radius);
|
||||||
|
void insertObjectPhysics();
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
|
@ -15,6 +15,7 @@
|
||||||
|
|
||||||
#include "player.hpp"
|
#include "player.hpp"
|
||||||
|
|
||||||
|
|
||||||
using namespace MWRender;
|
using namespace MWRender;
|
||||||
using namespace Ogre;
|
using namespace Ogre;
|
||||||
|
|
||||||
|
@ -67,6 +68,20 @@ RenderingManager::~RenderingManager ()
|
||||||
delete mSkyManager;
|
delete mSkyManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MWRender::Npcs& RenderingManager::getNPCs(){
|
||||||
|
return npcs;
|
||||||
|
}
|
||||||
|
MWRender::Objects& RenderingManager::getObjects(){
|
||||||
|
return objects;
|
||||||
|
}
|
||||||
|
MWRender::Creatures& RenderingManager::getCreatures(){
|
||||||
|
return creatures;
|
||||||
|
}
|
||||||
|
MWRender::Player* RenderingManager::getPlayer(){
|
||||||
|
return mPlayer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void RenderingManager::removeCell (MWWorld::Ptr::CellStore *store){
|
void RenderingManager::removeCell (MWWorld::Ptr::CellStore *store){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,9 @@
|
||||||
#include "../mwworld/ptr.hpp"
|
#include "../mwworld/ptr.hpp"
|
||||||
|
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
|
#include "objects.hpp"
|
||||||
|
#include "npcs.hpp"
|
||||||
|
#include "creatures.hpp"
|
||||||
|
|
||||||
namespace Ogre
|
namespace Ogre
|
||||||
{
|
{
|
||||||
|
@ -34,13 +37,22 @@ namespace MWWorld
|
||||||
|
|
||||||
namespace MWRender
|
namespace MWRender
|
||||||
{
|
{
|
||||||
class Player;
|
class Player;
|
||||||
|
class RenderingInterface{
|
||||||
|
public:
|
||||||
|
virtual MWRender::Npcs& getNPCs();
|
||||||
|
virtual MWRender::Creatures& getCreatures();
|
||||||
|
virtual MWRender::Objects& getObjects();
|
||||||
|
virtual MWRender::Player* getPlayer();
|
||||||
|
};
|
||||||
|
|
||||||
class RenderingManager {
|
class RenderingManager: private RenderingInterface {
|
||||||
|
|
||||||
OEngine::Render::OgreRenderer &rend;
|
OEngine::Render::OgreRenderer &rend;
|
||||||
Ogre::Camera* camera;
|
Ogre::Camera* camera;
|
||||||
|
MWRender::Npcs npcs;
|
||||||
|
MWRender::Creatures creatures;
|
||||||
|
MWRender::Objects objects;
|
||||||
|
|
||||||
/// Root node for all objects added to the scene. This is rotated so
|
/// Root node for all objects added to the scene. This is rotated so
|
||||||
/// that the OGRE coordinate system matches that used internally in
|
/// that the OGRE coordinate system matches that used internally in
|
||||||
|
@ -56,6 +68,10 @@ class RenderingManager {
|
||||||
public:
|
public:
|
||||||
RenderingManager(OEngine::Render::OgreRenderer& _rend, const boost::filesystem::path& resDir, OEngine::Physic::PhysicEngine* engine);
|
RenderingManager(OEngine::Render::OgreRenderer& _rend, const boost::filesystem::path& resDir, OEngine::Physic::PhysicEngine* engine);
|
||||||
~RenderingManager();
|
~RenderingManager();
|
||||||
|
virtual MWRender::Npcs& getNPCs();
|
||||||
|
virtual MWRender::Creatures& getCreatures();
|
||||||
|
virtual MWRender::Objects& getObjects();
|
||||||
|
virtual MWRender::Player* getPlayer();
|
||||||
bool toggleRenderMode(int mode);
|
bool toggleRenderMode(int mode);
|
||||||
|
|
||||||
void removeCell (MWWorld::Ptr::CellStore *store); // TODO do we want this?
|
void removeCell (MWWorld::Ptr::CellStore *store); // TODO do we want this?
|
||||||
|
@ -83,7 +99,7 @@ class RenderingManager {
|
||||||
OEngine::Render::OgreRenderer& getOgreRenderer(){return rend;}
|
OEngine::Render::OgreRenderer& getOgreRenderer(){return rend;}
|
||||||
Ogre::SceneManager *getMgr() { return rend.getScene(); }
|
Ogre::SceneManager *getMgr() { return rend.getScene(); }
|
||||||
Ogre::SceneNode *getRoot() { return mwRoot; }
|
Ogre::SceneNode *getRoot() { return mwRoot; }
|
||||||
MWRender::Player *getPlayer() { return mPlayer; }
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
SkyManager* mSkyManager;
|
SkyManager* mSkyManager;
|
||||||
|
|
Loading…
Reference in a new issue