Mercurial > sdl-ios-xcode
changeset 4738:381d402a5e90
Added support for On_Resized event to App.
Added OpenGL code to draw a rotating triangle.
Rearranged main loop code.
author | dewyatt |
---|---|
date | Sat, 12 Jun 2010 03:21:54 -0400 |
parents | 0e18c79c4111 |
children | f51a9f01b508 |
files | EXCLUDE/GLTSF/include/App.hpp EXCLUDE/GLTSF/src/App.cpp |
diffstat | 2 files changed, 48 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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(); +}