PDA

View Full Version : errors



nullhead
11-11-2013, 03:09 PM
I used this code in the "OpenGL Programming Guide Sixth Edition," and it keeps telling me that things such as glutWireSphere() and glutSwapBuffers don't exist, can somebody help me?
code:

#include <iostream> //first line of script
#include <GL/gl.h>
#include <GL/glu.h>
#include <unistd.h>
#include <stdlib.h>

using namespace std;

static int year = 0, day = 0;

void init(void)
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
}

void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);

glPushMatrix();
glutWireSphere(1.0,20,16); //sun
glRotatef((GLfloat)year, 0.0,1.0,0.0);
glTranslatef(2.0,0.0,0.0);
glRotatef((GLfloat)day, 0.0, 1.0, 0.0);
glutWireSphere(0.2,10,8); //planet
glPopMatrix();
glutSwapBuffers();
}

void reshape(int w, int h)
{
glViewport(0,0,(GLsizei)w,(GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60.0,(GLfloat)w/(GLfloat) h,1.0,20.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0.0,0.0,5.0,0.0,0.0,0.0,0.0,1.0,0.0);
}

void keyboard(unsigned char key, int x, int y)
{
switch(key) {
case 'd':
day = (day +10)%360;
glutPostRedisplay();
break;
case'D':
day = (day - 10) % 360;
glutPostRedisplay();
break;
case 'y':
year = (year+5)%360;
glutPostRedisplay();
break;
case 'Y':
year = (year-5)%360;
glutPostRedisplay();
break;
default:
break;
}
}

int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(500,500);
glutInitWindowPosition(100,100);
glutCreateWindow(argv[0]);
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;
}//end of script

p.s: I am using Ubuntu Linux & CodeBlocks

Ehsan Kamrani
11-12-2013, 06:56 AM
you should include glut.h as well.