# HG changeset patch # User dewyatt # Date 1276327314 14400 # Node ID 381d402a5e9082b8197325eb9375e96e0f06dff3 # Parent 0e18c79c4111a8f5c54ef6f49fad66972e992c1b Added support for On_Resized event to App. Added OpenGL code to draw a rotating triangle. Rearranged main loop code. diff -r 0e18c79c4111 -r 381d402a5e90 EXCLUDE/GLTSF/include/App.hpp --- 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; diff -r 0e18c79c4111 -r 381d402a5e90 EXCLUDE/GLTSF/src/App.cpp --- 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 +#include + +#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(); +}