0

kinect カメラ画像の上に、ウィンドウに表示される openGL を使用してテキストを描画しようとしています。プログラムは正方形やその他の図形をうまく描画できますが、メソッドを呼び出してテキストを描画するとクラッシュします。でクラッシュしているようです

glutStrokeCharacter(font, c);

他のすべてが機能し、この行だけをコメントアウトしても、プログラムは正常に動作します。以下は、テキストを描画する方法のコード スニペットです。

void Button::DrawSquare(bool selected)
{

    glEnable( GL_POINT_SMOOTH );
    glLineWidth(7);
    if (selected == true) glColor3f(0,1,0);
    else glColor3f((123.0/255.0f),(205/255.0f),(237.0/255.0f));
    glBegin(GL_LINE_LOOP);
        glVertex2f(X, Y);
        glVertex2f(X+length, Y);
        glVertex2f(X+length, Y+width);
        glVertex2f(X, Y+width);
    glEnd();
    glLineWidth(3);
    glColor3f(0,0,0);
    glBegin(GL_LINE_LOOP);
        glVertex2f(X, Y);
        glVertex2f(X+length, Y);
        glVertex2f(X+length, Y+width);
        glVertex2f(X, Y+width);
    glEnd();
    glLineWidth(4);


    //Start drawing text
    glMatrixMode(GL_PROJECTION);
    glPushMatrix();
    glMatrixMode(GL_MODELVIEW);
    glPushMatrix();
    if (selected == true) glColor3f(0,1,0);
    else glColor3f(1,1,0);
    void *font = GLUT_BITMAP_TIMES_ROMAN_10;
    glRasterPos2i(this->X+15,this->Y+35);
    string s(*this->trackname); 

    for (string::iterator i = s.begin(); i != s.end(); ++i)
    {
        char c = *i;
        glutStrokeCharacter(font, c);// <<-- Line that gives error
    }
    glMatrixMode(GL_MODELVIEW);
    glPopMatrix();
    glMatrixMode(GL_PROJECTION);
    glPopMatrix();
    glColor3f(255,255,255);
}

テキストの直前の四角形の描画は正常に機能します。

4

1 に答える 1