Click here to Skip to main content
15,896,118 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hello everyone!

I am try to Limit OpenGL draw to part of the window. In order to do it I am trying to use GL_STENCIL_TEST option. Here is my code:

C++
// Enable stencil and clear the stencil buffer
glClear(GL_STENCIL_BUFFER_BIT);
glEnable(GL_STENCIL_TEST);

// Enable func and Op so drawing will effect the stencil buffer
glStencilFunc(GL_NEVER, 0x0, 0x0);
glStencilOp(GL_INCR, GL_INCR, GL_INCR);

// Draw a rect to the stencil
DrawSolidRect(rectDrawArea);

// Enable func and Op so drawing will not effect the stencil buffer
// but will only effect places where the stencil was drawn to in the previous step.
glStencilFunc(GL_EQUAL, 0x1, 0x1);
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);


The problem is that glClear(GL_STENCIL_BUFFER_BIT) function is very time consuming, and since I am drawing with 25 fps, it really slows down the application.

I tried to remove this function - this solves the slowness problem but it causes flickering when I initialize the application - For about 10 seconds. Than it disappears and works ok.

Can someone suggest why the flickering is or what other function may I use that not so time-consuming?

Thanks!
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900