diff --git a/src/Client/GUI/Scene.cpp b/src/Client/GUI/Scene.cpp new file mode 100644 index 0000000..1f1541d --- /dev/null +++ b/src/Client/GUI/Scene.cpp @@ -0,0 +1,18 @@ +#include "common.h" +#include "PseuGUI.h" +#include "PseuWoW.h" +#include "Scene.h" + +Scene::Scene(PseuGUI *g) +{ + gui = g; + device = gui->_device; + driver = gui->_driver; + smgr = gui->_smgr; + guienv = gui->_guienv; +} + +void Scene::Draw(void) +{ + device->yield(); +} diff --git a/src/Client/GUI/Scene.h b/src/Client/GUI/Scene.h new file mode 100644 index 0000000..cad5669 --- /dev/null +++ b/src/Client/GUI/Scene.h @@ -0,0 +1,50 @@ +#ifndef _SCENE_H +#define _SCENE_H + +#include "irrlicht/irrlicht.h" + +using namespace irr; +using namespace core; +using namespace scene; +using namespace video; +using namespace io; +using namespace gui; + +class PseuGUI; + +// base class +class Scene +{ + friend class PseuGUI; +public: + Scene(PseuGUI *g); + virtual void Draw(void); +protected: + PseuGUI *gui; + irr::IrrlichtDevice *device; + irr::video::IVideoDriver* driver; + irr::scene::ISceneManager* smgr; + irr::gui::IGUIEnvironment* guienv; +}; + +class SceneGuiStart : public Scene +{ +public: + SceneGuiStart(PseuGUI *gui); + ~SceneGuiStart(); +private: + IGUIImage *irrlogo, *driverlogo; + +}; + +class SceneWorld : public Scene +{ +public: + SceneWorld(PseuGUI *gui); + ~SceneWorld(); + void Draw(void); +}; + + + +#endif \ No newline at end of file diff --git a/src/Client/GUI/SceneGuiStart.cpp b/src/Client/GUI/SceneGuiStart.cpp new file mode 100644 index 0000000..94605a3 --- /dev/null +++ b/src/Client/GUI/SceneGuiStart.cpp @@ -0,0 +1,34 @@ +#include "common.h" +#include "PseuGUI.h" +#include "PseuWoW.h" +#include "Scene.h" + + +SceneGuiStart::SceneGuiStart(PseuGUI *gui) : Scene(gui) +{ + + irrlogo = guienv->addImage(driver->getTexture("data/misc/irrlichtlogo.png"), core::position2d(5,5)); + char *fn; + switch(gui->_driverType) + { + case DIRECTX8: + case DIRECTX9: + fn = "data/misc/directxlogo.png"; + break; + + case OPENGL: + fn = "data/misc/opengllogo.png"; + break; + + default: + fn = "data/misc/burninglogo.png"; + } + driverlogo = guienv->addImage(driver->getTexture(fn), core::position2d(50,50)); + +} + +SceneGuiStart::~SceneGuiStart() +{ + irrlogo->drop(); + driverlogo->drop(); +} diff --git a/src/Client/GUI/SceneWorld.cpp b/src/Client/GUI/SceneWorld.cpp new file mode 100644 index 0000000..c6eccb2 --- /dev/null +++ b/src/Client/GUI/SceneWorld.cpp @@ -0,0 +1,23 @@ +#include "common.h" +#include "PseuGUI.h" +#include "PseuWoW.h" +#include "Scene.h" + +SceneWorld::SceneWorld(PseuGUI *g) : Scene(g) +{ +} + +void SceneWorld::Draw(void) +{ + // draw maps here + + // draw all objects + gui->domgr.Update(); // iterate over DrawObjects, draw them and clean up + + // draw interface here + +} + +SceneWorld::~SceneWorld() +{ +} \ No newline at end of file