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:
// 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?