Welcome, Guest. Please login or register. Did you miss your activation email?

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - cidolfas7

Pages: [1]
1
Graphics / [SOLVED] SFML Shape and OGL Name Stack
« on: February 16, 2011, 05:21:00 pm »
I'm using the OGL name stack to allow selection of geometry.  I have code that's drawing a set of squares to the screen using OGL calls.  My selection code works, and I'm able to click on my drawn squares.

Now I'm trying to draw a SFML shape to the screen, and it does.  The issue is that when I try to select any of my squares the SFML shape gets selected no matter what.

Visually the drawn SFML shape only takes up a small portion of the top right corner, but according to the OGL name stack it's taking up the whole screen.  Thus anytime I try to click on other geometry the OGL name stack tells me I'm clicking on the SFML shape.

Squares drawn with OGL:
Code: [Select]

double tx = -1.0 * (double)(width-1);
double ty = -1.0 * (double)(height-1);

for (int j = height-1; j >= 0; j--) {
    for (int i = width-1; i >= 0; i--) {
       
        glTranslated(tx, ty, 0.0);
        glPushName(j);
        glPushName(i);

        glColor3f(0.
        glBegin(GL_QUADS);
          glNormal3f(0.0f, 0.0f, 1.0f);
          glVertex3f(-1.0f, 1.0f, 0.0f);
   
          glNormal3f(0.0f, 0.0f, 1.0f);
          glVertex3f(-1.0f, -1.0f, 0.0f);
   
          glNormal3f(0.0f, 0.0f, 1.0f);
          glVertex3f(1.0f, -1.0f, 0.0f);
   
          glNormal3f(0.0f, 0.0f, 1.0f);
          glVertex3f(1.0f, 1.0f, 0.0f);
        glEnd();
           
        glPopName();
        glPopName();
        tx+=2.0;
    }

    ty+=2.0;
    tx = -1.0 * (double)(width-1);
}



SFML shape:
Code: [Select]

sf::Shape rect = sf::Shape::Rectangle(windowWidth-300, 0, windowWidth, 50, sf::Color(255, 255, 255, 255));

glPushName(-1);
App.Draw(rect);
glPopName();


(App is a SFML RenderWindow).



EDIT:

Did more searching on the forums for issues that seemed similar.  Looks like using PreserveOpenGLStates may have fixed the issue.

2ND EDIT:

Changed topic to solved.  Preserving the OGL state fixed the issue (and a couple others actually).

Pages: [1]
anything