Przeglądaj źródła

save GuiId in Gui

mikymod 12 lat temu
rodzic
commit
cb9ad68250
3 zmienionych plików z 21 dodań i 1 usunięć
  1. 12 0
      engine/gui/Gui.cpp
  2. 6 0
      engine/gui/Gui.h
  3. 3 1
      engine/renderers/RenderWorld.cpp

+ 12 - 0
engine/gui/Gui.cpp

@@ -208,6 +208,18 @@ Gui::~Gui()
 	destroy_gfx();
 }
 
+//-----------------------------------------------------------------------------
+const GuiId Gui::id() const
+{
+	return m_id;
+}
+
+//-----------------------------------------------------------------------------
+void Gui::set_id(const GuiId id)
+{
+	m_id = id;
+}
+
 //-----------------------------------------------------------------------------
 Vector2 Gui::resolution() const
 {

+ 6 - 0
engine/gui/Gui.h

@@ -38,6 +38,8 @@ namespace crown
 {
 
 typedef Id UniformId;
+
+typedef Id GuiId;
 typedef Id GuiRectId;
 typedef Id GuiTriangleId;
 typedef Id GuiImageId;
@@ -60,6 +62,9 @@ struct Gui
 						Gui(RenderWorld& render_world, GuiResource* gr, Renderer& r);
 						~Gui();
 
+	const GuiId 		id() const;
+	void				set_id(const GuiId id);
+
 	Vector2				resolution() const;
 	void				move(const Vector3& pos);
 
@@ -95,6 +100,7 @@ public:
 	RenderWorld&		m_render_world;
 	const GuiResource*	m_resource;
 	Renderer&			m_r;
+	GuiId				m_id;
 
 	Matrix4x4			m_projection;
 	Matrix4x4			m_pose;

+ 3 - 1
engine/renderers/RenderWorld.cpp

@@ -195,7 +195,9 @@ GuiId RenderWorld::create_gui(GuiResource* gr)
 {
 	Renderer* r = device()->renderer();
 	Gui* gui = CE_NEW(m_gui_pool, Gui)(*this, gr, *r);
-	return m_guis.create(gui);
+	GuiId id = m_guis.create(gui);
+	gui->set_id(id);
+	return id;
 }
 
 //-----------------------------------------------------------------------------