PDA

View Full Version : stencil.c : eerie behavior ?



Whilibarj
04-04-2005, 06:25 AM
I took the stencil.c example and I made a little modification.

http://www.opengl.org/resources/code/basics/redbook/stencil.c

I made this change in the display function :

void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

/* draw blue sphere where the stencil is 1 */
glStencilFunc (GL_EQUAL, 0x1, 0x1);
glStencilOp (GL_KEEP, GL_ZERO, GL_ZERO);
glCallList (BLUEMAT);
glutSolidSphere (0.5, 15, 15);

/* draw the tori where the stencil is not 1 */
glStencilOp (GL_KEEP, GL_KEEP, GL_KEEP);
glStencilFunc (GL_NOTEQUAL, 0x1, 0x1);
glPushMatrix();
glRotatef (45.0, 0.0, 0.0, 1.0);
glRotatef (45.0, 0.0, 1.0, 0.0);
glCallList (YELLOWMAT);
glutSolidTorus (0.275, 0.85, 15, 15);
glPushMatrix();
glRotatef (90.0, 1.0, 0.0, 0.0);
glutSolidTorus (0.275, 0.85, 15, 15);
glPopMatrix();
glPopMatrix();
}

Resize the window a few times and you will notice a very eerie behavior. Anyone can explain why ?

redarrow
04-04-2005, 06:46 AM
By eerie do you mean messy?

I compiled stencil.c with and without your changes, for me it runs messy both ways...
I doubt those changes have much to do with it after all you never changed anything in the resize function so I don't why it should mess up if you resize the window.

I would guess it's just a buggy graphics driver.
After all in my case .. I use Linux and a Nvidia card - NVidia Linux drivers are _always_ buggy :(
(even though I've had no problems.. yet)

Whilibarj
04-04-2005, 06:55 AM
True. I also have the problem with the original example :(

So I guess that it is not the stencil buffer that causes the problem