GLUT: Fatal Error in Prog14.exe: pixel format with necessary capabilities not found.

Hello
I need help on this error.
When I create a window in GLUT_INDEX mode (glutCreateWindow()), there is an error.
I use Windows 98, Visual C++ 6.0, glut 3.7, with a GeForce 2 GTS graphic card.
This code is an example of “OpenGL Programming Guide, Third Edition”, french version.
Please, explain to me…

#include <GL/glut.h>

#define RAMPSIZE 16
#define RAMP1START 32
#define RAMP2START 48
static float rotAngle=0.;

static void init(void){
int i;
for(i=0;i<RAMPSIZE;i++){
GLfloat shade;
shade=(GLfloat)i/(GLfloat)RAMPSIZE;
glutSetColor(RAMP1START+(GLint)i,0.,shade,0.);
glutSetColor(RAMP2START+(GLint)i,0.,0.,shade);
}
glEnable(GL_LINE_SMOOTH);
glHint(GL_LINE_SMOOTH_HINT,GL_DONT_CARE);
glLineWidth(1.5);
glClearIndex((GLfloat)RAMP1START);
}

void display(void){
glClear(GL_COLOR_BUFFER_BIT);
glIndexi(RAMP1START);
glPushMatrix();
glRotatef(-rotAngle,0.0,0.0,0.1);
glBegin(GL_LINES);
glVertex2f(-0.5,0.5);
glVertex2f(0.5,-0.5);
glEnd();
glPopMatrix();
glIndexi(RAMP2START);
glPushMatrix();
glRotatef(rotAngle,0.0,0.0,0.1);
glBegin(GL_LINES);
glVertex2f(0.5,0.5);
glVertex2f(-0.5,-0.5);
glEnd();
glPopMatrix();
glFlush();
}

void reshape(int w,int h){
glViewport(0,0,(GLsizei)w,(GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if(w<=h)
gluOrtho2D(-1.0,1.0,-1.0*(GLfloat)h/(GLfloat)w,1.0*(GLfloat)h/(GLfloat)w);
else
gluOrtho2D(-1.0*(GLfloat)w/(GLfloat)h,1.0*(GLfloat)w/(GLfloat)h,-1.0,1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}

void keyboard(unsigned char key,int x,int y){
switch(key){
case ‘r’:
case ‘R’:
rotAngle+=20.;
if(rotAngle>=360.)rotAngle=0.;
glutPostRedisplay();
break;
case 27:
exit(0);
break;
default:
break;
}
}

int main(int argc,char **argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_INDEX);
glutInitWindowSize(200,200);
glutInitWindowPosition(100,100);
glutCreateWindow(“Lissage en mode index couleur”);
init();
glutDisplayFunc(display); glutReshapeFunc(reshape); glutKeyboardFunc(keyboard); glutMainLoop();
return 0;
}

Hi !

A wild guess is that you are using true color mode on your computer ?, in that case you will not be able to use GLUT_INDEX (palette mode) in a window, you need to run in fullscreen mode.

Mikael

Okay, thank you
It works with 16 bits color mode