Как я могу создать всплывающее меню для настройки параметров освещения в OpenGL

avatar
Yu Yu
8 апреля 2018 в 12:25
208
0
0

Можно ли создать всплывающее меню, чтобы изменить или модифицировать свойство освещения в OpenGL с помощью SDL?

Я пытаюсь использовать glutCreateMenu();:

void mydisplay()
{
    //glClear(GL_COLOR_BUFFER_BIT);
    GLfloat tp_ambient[] = { 0.05,0.05,0.05,1 };
    GLfloat tp_diffuse[] = { 0.7,0.3,1,1 };
    GLfloat tp_specular[] = { 0.6,0.6,0.6,1 };
    glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, tp_ambient);
    glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, tp_diffuse);
    glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, tp_specular);
    glPushMatrix();
    glTranslatef(0.0f, 0.0f, -0.6f);
    GLUquadricObj *quadric = gluNewQuadric();
    gluSphere(quadric, 0.1, 16, 16);
    gluDeleteQuadric(quadric);

    glPopMatrix();
    /*
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    glTranslatef(0.0f, 0.0f, -0.1f);*/

    glutCreateMenu(ProcessMenu);
    glutAddMenuEntry("position change", 0);
    glutAttachMenu(GLUT_RIGHT_BUTTON);

}
void ProcessMenu(int value) {
    if (value == 0) {
        GLfloat ambient[] = { 0.1,0.1,0.1,1 };
    }
    glutPostRedisplay();
}

Но я получаю эту ошибку:

Ошибка C2065 'ProcessMenu': необъявленный идентификатор

Что нужно настроить?
Правильно ли я использую всплывающее меню?
Если вам полезно просмотреть весь мой код, посмотрите мой предыдущий решенный вопрос<20895556942246>.

Источник
Richard Critten
8 апреля 2018 в 12:28
1

Вам нужно переместить void ProcessMenu(int value) { ... } до того места, где он используется (или объявить его вперед).

Yu Yu
8 апреля 2018 в 12:31
1

@RichardCritten Ic, ошибка C2065 решена

Yu Yu
8 апреля 2018 в 12:31
0

@Rabbid76 OpenGL

Yu Yu
8 апреля 2018 в 12:34
0

Мне жаль, что я был глуп перед кодированием. Здесь я хочу попробовать glutCreateMenu(); в OpenGL @Rabbid76

SurvivalMachine
8 апреля 2018 в 14:40
0

Если вы новичок, вы можете рассмотреть возможность изучения современного OpenGL вместо используемой вами версии 20-летней давности.

Paritosh Kulkarni
8 апреля 2018 в 19:32
0

Я бы посоветовал вам посмотреть на дорогой imgui.

Ответы (0)