Elaztek Developer Hub
Blamite Game Engine - blam!  00368.02.12.23.1347.blamite
The core library for the Blamite Game Engine.
ogre2_imgui_manager.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include <OGRE/OgrePrerequisites.h>
5 
6 #include <OGRE/OgreRenderQueueListener.h>
7 #include <OGRE/OgreSingleton.h>
8 #include <OGRE/OgreTextureGpu.h>
9 #include <OGRE/OgreResourceGroupManager.h>
10 #include <OGRE/OgreRenderable.h>
11 #include <OGRE/OgreRenderOperation.h>
12 
13 namespace OgreBites
14 {
15  struct InputListener;
16 }
17 
18 namespace Ogre
19 {
20  class SceneManager;
21 
22  class ImguiManager : public RenderQueueListener, public Singleton<ImguiManager>
23  {
24  public:
25  static void createSingleton();
26 
27  ImguiManager();
28  ~ImguiManager();
29 
32  ImFont* addFont(const String& name, const String& group OGRE_RESOURCE_GROUP_INIT);
33 
34  virtual void init(Ogre::SceneManager* mgr);
35 
36  virtual void newFrame(float deltaTime, const Ogre::Rect& windowRect);
37 
38  //inherited from RenderQueueListener
39  virtual void renderQueueEnded(uint8 queueGroupId, const String& invocation, bool& repeatThisInvocation);
40 
41  OgreBites::InputListener* getInputListener();
42 
43  static ImguiManager& getSingleton(void);
44  static ImguiManager* getSingletonPtr(void);
45 
46  protected:
47 
48  class ImGUIRenderable : public Renderable
49  {
50  protected:
51  void initImGUIRenderable(void);
52 
53  public:
56 
57  void updateVertexData(const ImVector<ImDrawVert>& vtxBuf, const ImVector<ImDrawIdx>& idxBuf);
58  Real getSquaredViewDepth(const Camera* cam) const { (void)cam; return 0; }
59 
60  virtual const MaterialPtr& getMaterial(void) const { return mMaterial; }
61  virtual void getWorldTransforms(Matrix4* xform) const { *xform = mXform; }
62  virtual void getRenderOperation(RenderOperation& op) { op = mRenderOp; }
63  virtual const LightList& getLights(void) const;
64 
65  MaterialPtr mMaterial;
66  Matrix4 mXform;
67  RenderOperation mRenderOp;
68 
69  };
70 
71  void createFontTexture();
72  void createMaterial();
73 
74  SceneManager* mSceneMgr;
75 
77  TexturePtr mFontTex;
78 
80 
81  typedef std::vector<ImWchar> CodePointRange;
82  std::vector<CodePointRange> mCodePointRanges;
83  };
84 }
Ogre::ImguiManager::ImguiManager
ImguiManager()
Definition: ogre2_imgui_manager.cpp:193
Ogre::ImguiManager::mCodePointRanges
std::vector< CodePointRange > mCodePointRanges
Definition: ogre2_imgui_manager.h:82
Ogre::ImguiManager::getInputListener
OgreBites::InputListener * getInputListener()
Definition: ogre2_imgui_manager.cpp:214
Ogre::ImguiManager::addFont
ImFont * addFont(const String &name, const String &group OGRE_RESOURCE_GROUP_INIT)
add font from ogre .fontdef file must be called before init()
Definition: ogre2_imgui_manager.cpp:348
Ogre::ImguiManager::ImGUIRenderable::getSquaredViewDepth
Real getSquaredViewDepth(const Camera *cam) const
Definition: ogre2_imgui_manager.h:58
Ogre::ImguiManager::createFontTexture
void createFontTexture()
Definition: ogre2_imgui_manager.cpp:386
Ogre::ImguiManager::ImGUIRenderable::mXform
Matrix4 mXform
Definition: ogre2_imgui_manager.h:66
imgui.h
Ogre::ImguiManager::ImGUIRenderable::ImGUIRenderable
ImGUIRenderable()
Definition: ogre2_imgui_manager.cpp:426
Ogre::ImguiManager::ImGUIRenderable::getMaterial
virtual const MaterialPtr & getMaterial(void) const
Definition: ogre2_imgui_manager.h:60
Ogre::ImguiManager::ImGUIRenderable::mMaterial
MaterialPtr mMaterial
Definition: ogre2_imgui_manager.h:65
OgreBites
Definition: ogre2_imgui_manager.h:13
Ogre::ImguiManager
Definition: ogre2_imgui_manager.h:22
Ogre::ImguiManager::~ImguiManager
~ImguiManager()
Definition: ogre2_imgui_manager.cpp:198
ImFont
Definition: imgui.h:2180
Blam::Globals::String
@ String
Represents a std::string.
Definition: globals.h:48
Ogre::ImguiManager::ImGUIRenderable::getRenderOperation
virtual void getRenderOperation(RenderOperation &op)
Definition: ogre2_imgui_manager.h:62
Ogre::ImguiManager::ImGUIRenderable
Definition: ogre2_imgui_manager.h:48
Ogre::ImguiManager::mSceneMgr
SceneManager * mSceneMgr
Definition: ogre2_imgui_manager.h:74
Ogre::ImguiManager::ImGUIRenderable::getWorldTransforms
virtual void getWorldTransforms(Matrix4 *xform) const
Definition: ogre2_imgui_manager.h:61
Ogre::ImguiManager::init
virtual void init(Ogre::SceneManager *mgr)
Definition: ogre2_imgui_manager.cpp:204
Ogre::ImguiManager::createSingleton
static void createSingleton()
Definition: ogre2_imgui_manager.cpp:175
Ogre::ImguiManager::ImGUIRenderable::updateVertexData
void updateVertexData(const ImVector< ImDrawVert > &vtxBuf, const ImVector< ImDrawIdx > &idxBuf)
Definition: ogre2_imgui_manager.cpp:470
Ogre::ImguiManager::newFrame
virtual void newFrame(float deltaTime, const Ogre::Rect &windowRect)
Definition: ogre2_imgui_manager.cpp:408
Ogre::ImguiManager::renderQueueEnded
virtual void renderQueueEnded(uint8 queueGroupId, const String &invocation, bool &repeatThisInvocation)
Definition: ogre2_imgui_manager.cpp:226
ImVector< ImDrawVert >
Ogre::ImguiManager::createMaterial
void createMaterial()
Definition: ogre2_imgui_manager.cpp:326
Ogre::ImguiManager::ImGUIRenderable::~ImGUIRenderable
~ImGUIRenderable()
Definition: ogre2_imgui_manager.cpp:464
Ogre::ImguiManager::CodePointRange
std::vector< ImWchar > CodePointRange
Definition: ogre2_imgui_manager.h:81
Ogre::ImguiManager::ImGUIRenderable::getLights
virtual const LightList & getLights(void) const
Definition: ogre2_imgui_manager.cpp:492
Ogre::ImguiManager::mFrameEnded
bool mFrameEnded
Definition: ogre2_imgui_manager.h:79
Ogre
Definition: ogre2_imgui_manager.h:18
Ogre::ImguiManager::ImGUIRenderable::initImGUIRenderable
void initImGUIRenderable(void)
Definition: ogre2_imgui_manager.cpp:435
Ogre::ImguiManager::getSingleton
static ImguiManager & getSingleton(void)
Definition: ogre2_imgui_manager.cpp:187
Ogre::ImguiManager::getSingletonPtr
static ImguiManager * getSingletonPtr(void)
Definition: ogre2_imgui_manager.cpp:182
Ogre::ImguiManager::mRenderable
ImGUIRenderable mRenderable
Definition: ogre2_imgui_manager.h:76
Ogre::ImguiManager::ImGUIRenderable::mRenderOp
RenderOperation mRenderOp
Definition: ogre2_imgui_manager.h:67
Ogre::ImguiManager::mFontTex
TexturePtr mFontTex
Definition: ogre2_imgui_manager.h:77