Added support for On_Resized event to App.
authordewyatt
Sat, 12 Jun 2010 03:21:54 -0400
changeset 4738 381d402a5e90
parent 4737 0e18c79c4111
child 4739 f51a9f01b508
Added support for On_Resized event to App. Added OpenGL code to draw a rotating triangle. Rearranged main loop code.
EXCLUDE/GLTSF/include/App.hpp
EXCLUDE/GLTSF/src/App.cpp
--- a/EXCLUDE/GLTSF/include/App.hpp	Sat Jun 12 03:19:43 2010 -0400
+++ b/EXCLUDE/GLTSF/include/App.hpp	Sat Jun 12 03:21:54 2010 -0400
@@ -18,12 +18,16 @@
 	virtual void On_Key_Down(int Key);
 	virtual void On_Key_Up(int Key);
 	virtual void On_Char(unsigned int Char);
+	virtual void On_Resized(unsigned int Width, unsigned int Height);
 
 private:
+	void Update();
+	void Draw();
+
 	static const int Width = 800;
 	static const int Height = 600;
 	static const int Bits_Per_Pixel = 32;
-	static const bool Fullscreen = false;
+	static const bool Fullscreen = true;
 
 	Window my_Window;
 	bool my_Done;
--- a/EXCLUDE/GLTSF/src/App.cpp	Sat Jun 12 03:19:43 2010 -0400
+++ b/EXCLUDE/GLTSF/src/App.cpp	Sat Jun 12 03:21:54 2010 -0400
@@ -1,5 +1,11 @@
 #include "App.hpp"
 #include "TSF.hpp"
+#include <GL/gl.h>
+#include <GL/glu.h>
+
+#pragma comment(lib, "glu32.lib")
+
+GLfloat Rotation = 0.0f;
 
 App::App() : my_Done(false)
 {
@@ -19,6 +25,7 @@
 	my_Window.Initialize(L"GLTSF", Video_Mode(Width, Height, Bits_Per_Pixel), Fullscreen);
 	my_Window.Set_Listener(this);
 	my_Window.Show();
+	my_Window.Hide_Cursor();
 }
 
 void App::Finalize()
@@ -31,8 +38,10 @@
 	Initialize();
 	while (!my_Done)
 	{
-		my_Window.Update();
-		my_Window.Clear();
+		my_Window.Handle_Events();
+
+		Update();
+		Draw();
 		my_Window.Display();
 	}
 }
@@ -62,3 +71,35 @@
 {
 	printf("Char: U+%04X\n", Char);
 }
+
+void App::On_Resized(unsigned int Width, unsigned int Height)
+{
+	glViewport(0, 0, Width, Height);
+	glMatrixMode(GL_PROJECTION);
+	glLoadIdentity();
+
+	glMatrixMode(GL_MODELVIEW);
+	glLoadIdentity();
+}
+
+void App::Update()
+{
+	Rotation += 0.2f;
+}
+
+void App::Draw()
+{
+	glClear(GL_COLOR_BUFFER_BIT);
+
+	glLoadIdentity();
+	glRotatef(Rotation, 0.0f, 0.0f, -1.0f);
+
+	glBegin(GL_TRIANGLES);
+		glColor3f(0.7f, 0.0f, 0.0f);
+		glVertex3f(0.0f, 0.5f, 0.0f);
+		glColor3f(0.0f, 0.7f, 0.0f);
+		glVertex3f(-0.5f, -0.5f, 0.0f);
+		glColor3f(0.0f, 0.0f, 0.7f);
+		glVertex3f(0.5f, -0.5f, 0.0f);
+	glEnd();
+}