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
|
void CMyViewGL::OnCreateGL()
{
glClearColor(0.0F,0.0F,0.0F,1.0F);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_AUTO_NORMAL);
glEnable(GL_NORMALIZE);
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
}
void CMyViewGL::OnDrawGL()
{
GLfloat LightPos[4] = {0.0f, 0.0f, 0.0f, 1.0f};
GLfloat Diffuse[4] = {0.8f, 0.8f, 0.8f, 1.0f};
GLfloat Specular[4] = {1.0f, 1.0f, 1.0f, 1.0f};
GLfloat Ambient[4] = {0.5f, 0.5f, 0.5f, 1.0f};
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//Light position
glLightfv(GL_LIGHT0, GL_DIFFUSE, Diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, Specular);
glLightfv(GL_LIGHT0, GL_AMBIENT, Ambient);
glLightfv(GL_LIGHT0, GL_POSITION, LightPos);
gluLookAt(cam.x, cam.y, cam.z, ref.x, ref.y, ref.z, up.x, up.y, up.z);
if (pc->Gr3DHLMode == Gr3D_HL)
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
else
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
glLineStipple(1, 0xFFFF);
glLineWidth(1.0);
// Draw Element
Draw();
}
void CMyViewGL::OnSizeGL(int cx, int cy)
{
// set correspondence between window and OGL viewport
glViewport(0, 0, cx, cy);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45, float(cx)/float(cy), 0.01, 1000);
} |
Partager