glutBitmapString no muestra nada

Voy a mostrar FPS en la pantalla con la función de freeglut glutBitmapString, pero no muestra nada. Aquí está mi código. ¿Hay alguien que pueda averiguar dónde está el problema?

void PrintFPS()
{
    frame++;
    time=glutGet(GLUT_ELAPSED_TIME);
    if (time - timebase > 100) {
        cout << "FPS:\t"<<frame*1000.0/(time-timebase)<<endl;
        char* out = new char[30];
        sprintf(out,"FPS:%4.2f",frame*1000.0f/(time-timebase));
        glColor3f(1.0f,1.0f,1.0f);
        glRasterPos2f(20,20);
        glutBitmapString(GLUT_BITMAP_TIMES_ROMAN_24,(unsigned char* )out);


        timebase = time;
        frame = 0;
    }
}

void RenderScene(void)
{
    // Clear the window with current clearing color
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);

    GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 0.5f };
    GLfloat vYellow[] = {1.0f,1.0f,0.0f,1.0f};
    shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vYellow);
    //triangleBatch.Draw();
    squareBatch.Draw();
    PrintFPS();
    glutSwapBuffers();
}

Se supone que muestra los FPS en la parte superior izquierda de la pantalla.

Respuestas a la pregunta(1)

Su respuesta a la pregunta