使用glut工具包来建立窗口,所以就不使用xwindow的窗口函数来建立GUI,所以本代码可以不用改动就可以在windows v算005 和 vc6.0 上面就可以运行(亲自测试)
PS: 跨平台这东西,也就是在本地函数API上面加上一个封装层,然后在各个不同平台上面使用这个封装层来实现。当然,负责这个封装层的组织就的必须得根据各个平台的不同,来具体组织着这个封装层。
听说,OpenGLwindows上面的现在版本,实现都是在转发和组合着directX的API
源码:
//
#include <stdio.h>
#include <stdlib.h>
#include <GL/glut.h>
int LastState = 9999 ;
int LastButton = 9999;
int x0,y0,x1,y1;
float nf = 0.0f ; //·šÏò
GLfloat Sscale = 1.0f;
GLfloat Tvx = 0.0f , Tvy = 0.0f , Tvz = 0.0f ;
unsigned char KEY = 0 ;
void init(void)
{
glEnable(GL_DEPTH_TEST);
GLfloat position[] = {1.0, 1.0, 1.0, 0.0};
glLightfv(GL_LIGHT0, GL_POSITION, position);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
GLfloat ambient[] = {0.0, 0.0, 0.0, 1.0};
GLfloat diffuse[] = {0.25, 0.95, 0.5, 1.0};
GLfloat specular[] = {1.0, 1.0, 1.0, 1.0};
glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, specular);
glMaterialf(GL_FRONT, GL_SHININESS, 50.0);
}