1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| #include "main.h"
MyFrame_main::MyFrame_main() : wxFrame(NULL, -1, "Hello GL World", wxPoint(-1, -1), wxSize(1024,790), wxDEFAULT_FRAME_STYLE)
{
MyGLCanvas = new wxGLCanvas(this, -1, wxPoint(0,0));
wxSizer *sizer = new wxBoxSizer(wxHORIZONTAL);
sizer->Add(MyGLCanvas, 1, wxALL|wxEXPAND, 0);
SetSizer(sizer);
SetAutoLayout(true);
Layout();
Show(true);
MyGLCanvas->SetCurrent();
wxSafeYield();
initialization ();
drawScene();
MyGLCanvas->SwapBuffers();
}
void MyFrame_main::initialization()
{
glShadeModel(GL_SMOOTH);
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClearDepth(1.0f);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}
void MyFrame_main::drawScene()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(-1.5f,0.0f,-6.0f);
glBegin(GL_TRIANGLES);
glVertex3f( 0.0f, 1.0f, 0.0f);
glVertex3f(-1.0f,-1.0f, 0.0f);
glVertex3f( 1.0f,-1.0f, 0.0f);
glEnd();
glFlush();
}
void MyFrame_main::onResize(wxSizeEvent& event)
{
Layout();
GetSize(&width, &height);
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
BEGIN_EVENT_TABLE(MyFrame_main, wxFrame)
EVT_SIZE(MyFrame_main::onResize)
END_EVENT_TABLE()
IMPLEMENT_APP(Ini);
bool Ini::OnInit()
{
MyFrame_main *frame = new MyFrame_main();
frame->Show(TRUE);
return true;
} |
Partager