Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C++ Windows OpenGL
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:
 
    // 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 16-Feb-12 6:01am

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

  Print Answers RSS
0 Sergey Alexandrovich Kryukov 520
1 Mathew Soji 335
2 BillWoodruff 260
3 OriginalGriff 215
4 Afzaal Ahmad Zeeshan 188
0 OriginalGriff 6,168
1 Sergey Alexandrovich Kryukov 5,853
2 DamithSL 5,028
3 Manas Bhardwaj 4,539
4 Maciej Los 3,845


Advertise | Privacy | Mobile
Web01 | 2.8.1411019.1 | Last Updated 16 Feb 2012
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100