2010-06-30 17:29:20 -04:00
|
|
|
#include "App.hpp"
|
|
|
|
#include <GL/gl.h>
|
|
|
|
#include <GL/glu.h>
|
|
|
|
|
|
|
|
#pragma comment(lib, "glu32.lib")
|
|
|
|
|
|
|
|
GLfloat Rotation = 0.0f;
|
|
|
|
|
|
|
|
App::App() : my_Done(false)
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
App::~App()
|
|
|
|
{
|
|
|
|
Finalize();
|
|
|
|
}
|
|
|
|
|
|
|
|
void App::Initialize()
|
|
|
|
{
|
|
|
|
Finalize();
|
|
|
|
|
2010-07-04 06:15:42 -04:00
|
|
|
my_Window.Initialize(L"GLIMM", Video_Mode(Width, Height, Bits_Per_Pixel), Fullscreen);
|
2010-06-30 17:29:20 -04:00
|
|
|
my_Window.Set_Listener(this);
|
|
|
|
my_Window.Show();
|
|
|
|
my_Window.Hide_Cursor();
|
|
|
|
}
|
|
|
|
|
|
|
|
void App::Finalize()
|
|
|
|
{
|
|
|
|
my_Window.Finalize();
|
|
|
|
}
|
|
|
|
|
|
|
|
void App::Run()
|
|
|
|
{
|
|
|
|
Initialize();
|
|
|
|
while (!my_Done)
|
|
|
|
{
|
|
|
|
my_Window.Handle_Events();
|
|
|
|
|
|
|
|
Update();
|
|
|
|
Draw();
|
|
|
|
my_Window.Display();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void App::On_Close()
|
|
|
|
{
|
|
|
|
my_Done = true;
|
|
|
|
my_Window.Hide();
|
|
|
|
}
|
|
|
|
|
|
|
|
void App::On_Key_Down(int Key)
|
|
|
|
{
|
|
|
|
switch (Key)
|
|
|
|
{
|
|
|
|
case VK_ESCAPE:
|
|
|
|
On_Close();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void App::On_Key_Up(int Key)
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
void App::On_Char(unsigned int Char)
|
|
|
|
{
|
|
|
|
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();
|
|
|
|
}
|
|
|
|
|
2010-07-06 02:00:15 -04:00
|
|
|
void App::On_Mouse_Button_Down(Mouse_Button Button)
|
|
|
|
{
|
|
|
|
switch (Button)
|
|
|
|
{
|
|
|
|
case Mouse_Button_Left:
|
|
|
|
my_Window.Get_IMM().Toggle();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2010-06-30 17:29:20 -04:00
|
|
|
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();
|
|
|
|
}
|