From 469086747e5cfbec8247986fb5ba29319ef8918a Mon Sep 17 00:00:00 2001 From: Jason Hooks Date: Mon, 7 Nov 2011 23:35:39 -0500 Subject: [PATCH] Compile error fix;RenderingInterface separated; buildStaticGeometry argument changed --- apps/openmw/CMakeLists.txt | 2 +- apps/openmw/mwrender/objects.cpp | 9 +++++---- apps/openmw/mwrender/objects.hpp | 4 ++-- apps/openmw/mwrender/renderinginterface.hpp | 12 ++++++++++++ apps/openmw/mwrender/renderingmanager.cpp | 1 - apps/openmw/mwrender/renderingmanager.hpp | 14 ++++---------- 6 files changed, 24 insertions(+), 18 deletions(-) create mode 100644 apps/openmw/mwrender/renderinginterface.hpp diff --git a/apps/openmw/CMakeLists.txt b/apps/openmw/CMakeLists.txt index 4d3dace03..c41c089c6 100644 --- a/apps/openmw/CMakeLists.txt +++ b/apps/openmw/CMakeLists.txt @@ -16,7 +16,7 @@ set(GAME_HEADER source_group(game FILES ${GAME} ${GAME_HEADER}) add_openmw_dir (mwrender - renderingmanager debugging cellimp interior exterior sky player npcs creatures objects + renderingmanager debugging cellimp interior exterior sky player npcs creatures objects renderinginterface ) add_openmw_dir (mwinput diff --git a/apps/openmw/mwrender/objects.cpp b/apps/openmw/mwrender/objects.cpp index 0632255be..b9147d75d 100644 --- a/apps/openmw/mwrender/objects.cpp +++ b/apps/openmw/mwrender/objects.cpp @@ -2,8 +2,9 @@ #include #include -using namespace MWRender; using namespace Ogre; +using namespace MWRender; + bool Objects::lightConst = false; float Objects::lightConstValue = 0.0f; @@ -159,10 +160,10 @@ void Objects::removeCell(const MWWorld::Ptr& ptr){ sg = 0; } } -void Objects::buildStaticGeometry(const MWWorld::Ptr& ptr){ - if(mSG.find(ptr.getCell()) != mSG.end()) +void Objects::buildStaticGeometry(ESMS::CellStore& cell){ + if(mSG.find(&cell) != mSG.end()) { - Ogre::StaticGeometry* sg = mSG[ptr.getCell()]; + Ogre::StaticGeometry* sg = mSG[&cell]; sg->build(); } } diff --git a/apps/openmw/mwrender/objects.hpp b/apps/openmw/mwrender/objects.hpp index ebb52906a..e830d0993 100644 --- a/apps/openmw/mwrender/objects.hpp +++ b/apps/openmw/mwrender/objects.hpp @@ -5,8 +5,8 @@ #include namespace MWRender{ + class Objects{ -private: OEngine::Render::OgreRenderer &mRend; std::map mCellSceneNodes; std::map mSG; @@ -34,7 +34,7 @@ public: void insertLight (const MWWorld::Ptr& ptr, float r, float g, float b, float radius); void deleteObject (const std::string& handle); void removeCell(const MWWorld::Ptr& ptr); - void buildStaticGeometry(const MWWorld::Ptr& ptr); + void buildStaticGeometry(ESMS::CellStore &cell); /// insert a light related to the most recent insertBegin call. diff --git a/apps/openmw/mwrender/renderinginterface.hpp b/apps/openmw/mwrender/renderinginterface.hpp new file mode 100644 index 000000000..28f3b61fc --- /dev/null +++ b/apps/openmw/mwrender/renderinginterface.hpp @@ -0,0 +1,12 @@ +#include "objects.hpp" +#include "npcs.hpp" +#include "creatures.hpp" +namespace MWRender{ +class RenderingInterface{ + public: + virtual MWRender::Npcs& getNPCs() = 0; + virtual MWRender::Creatures& getCreatures() = 0; + virtual MWRender::Objects& getObjects() = 0; + virtual MWRender::Player& getPlayer() = 0; + }; +} \ No newline at end of file diff --git a/apps/openmw/mwrender/renderingmanager.cpp b/apps/openmw/mwrender/renderingmanager.cpp index b07251f53..c21ce8a43 100644 --- a/apps/openmw/mwrender/renderingmanager.cpp +++ b/apps/openmw/mwrender/renderingmanager.cpp @@ -1,5 +1,4 @@ #include "renderingmanager.hpp" -#include "objects.hpp" #include diff --git a/apps/openmw/mwrender/renderingmanager.hpp b/apps/openmw/mwrender/renderingmanager.hpp index 0d2375feb..16e8e5af4 100644 --- a/apps/openmw/mwrender/renderingmanager.hpp +++ b/apps/openmw/mwrender/renderingmanager.hpp @@ -4,6 +4,7 @@ #include "sky.hpp" #include "debugging.hpp" +#include "renderinginterface.hpp" #include #include @@ -15,9 +16,8 @@ #include "../mwworld/ptr.hpp" #include -#include "objects.hpp" -#include "npcs.hpp" -#include "creatures.hpp" + + namespace Ogre { @@ -38,13 +38,7 @@ namespace MWWorld namespace MWRender { class Player; - class RenderingInterface{ - public: - virtual MWRender::Npcs& getNPCs(); - virtual MWRender::Creatures& getCreatures(); - virtual MWRender::Objects& getObjects(); - virtual MWRender::Player& getPlayer(); - }; + class RenderingManager: private RenderingInterface {