From 15740faf9fe9fe4be08965098bbf2947e096aeeb Mon Sep 17 00:00:00 2001
From: chai <chaifix@163.com>
Date: Wed, 14 Aug 2019 22:50:43 +0800
Subject: +Unity Runtime code

---
 Runtime/Camera/RenderLayers/GUILayer.h | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 Runtime/Camera/RenderLayers/GUILayer.h

(limited to 'Runtime/Camera/RenderLayers/GUILayer.h')

diff --git a/Runtime/Camera/RenderLayers/GUILayer.h b/Runtime/Camera/RenderLayers/GUILayer.h
new file mode 100644
index 0000000..925b070
--- /dev/null
+++ b/Runtime/Camera/RenderLayers/GUILayer.h
@@ -0,0 +1,33 @@
+#ifndef GUILAYER_H
+#define GUILAYER_H
+
+#include "GUIElement.h"
+#include "Runtime/GameCode/Behaviour.h"
+#include "Runtime/Utilities/delayed_set.h"
+
+/// A GUI Layer is attached to the camera.
+/// It tracks all enabled GUIElements (eg. Text, GUITexture) and renders them
+class GUILayer : public Behaviour
+{
+public:
+	REGISTER_DERIVED_CLASS (GUILayer, Behaviour)
+	
+	GUILayer (MemLabelId label, ObjectCreationMode mode);
+		
+	void RenderGUILayer();
+	GUIElement* HitTest (const Vector2f& screenPosition);
+
+	static void InitializeClass ();
+	static void CleanupClass ();
+
+	// Behaviour
+	virtual void AddToManager() { };
+	virtual void RemoveFromManager() { };
+	
+private:	
+	typedef delayed_set <PPtr<GUIElement> > GUIElements;
+	static GUIElements* ms_GUIElements;
+	friend class GUIElement;
+};
+
+#endif
-- 
cgit v1.1-26-g67d0