Добавление меню и дополнительных окон в приложении OpenGL - PullRequest
0 голосов
/ 18 декабря 2011

Мой код основной функции программы OpenGL на данный момент таков:

int main(int argc, char **argv)
{
    glutInit(&argc, argv); // Initialize GLUT
    glutInitDisplayMode(GLUT_SINGLE); // Set up a basic display buffer (only single buffered for now)
    glutInitWindowSize(500, 500); // Set the width and height of the window
    glutInitWindowPosition(100, 100); // Set the position of the window (on your screen)
    glutCreateWindow("Statistical Mechanics Simulation"); // Set the title for the window
    glutDisplayFunc(display); // Tell GLUT to use the method "display" for rendering
    glutReshapeFunc(reshape); // Tell GLUT to use the method "reshape" for rendering
    glutIdleFunc(simulate);

    containers.push_back(Container(Coordinate(-50, -50, -50), Coordinate(100, 100, 50)));
    containers[0].addParticle(Particle(1, 5, Coordinate(30, 30, 0), Coordinate(5, 3, 0)));
    containers[0].addParticle(Particle(4, 2, Coordinate(-10, 20, 0), Coordinate(0, 0, 0)));
    containers[0].addParticle(Particle(5, 5, Coordinate(0, 0, 0), Coordinate(50, 0, 0)));

    glutMainLoop(); // Enter GLUT's main loop

    return 0;
}

Как лучше всего добавить меню в верхнюю часть этого окна OpenGL, чтобы оно могло функционировать больше как обычное приложение Windows? Как насчет добавления других окон и панелей?

Ответы [ 2 ]

3 голосов
/ 18 декабря 2011

OpenGL - это просто API для рисования.Создание окон верхнего уровня лежит за пределами его возможностей.Вполне возможно реализовать инструментарий GUI с OpenGL.Однако я думаю, что вам лучше использовать настоящий инструментарий, такой как Qt или GTK.

Пока вы используете GLUT , который не является частью OpenGL!для небольших и простых примеров программ.Вы не обязаны его использовать.

1 голос
/ 18 декабря 2011

Если вы используете хардкор-ядро OpenGL, вы можете посмотреть на Clutter .Это библиотека, которая предоставляет виджеты на основе OpenGL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...