Страница 16 |
Введение в OpenGl. Учебник |
|
Главная Страница 1 Страница 2 Страница 3 Страница 4 Страница 5 Страница 6 Страница 7 Страница 8 Страница 9 Страница 10 Страница 11 Страница 12 Страница 13 Страница 14 Страница 15 Страница 16 Страница 17 Страница 18 Страница 19 Страница 20 Страница 21 Скачать учебник |
||
---|---|---|
ойти в главный цикл int main(int argc, char **argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(250,250); glutInitWindowPosition(100,100); glutCreateWindow(“hello”); init(); glutDisplayFunc(display); glutMainLoop(); return 0; |
Поскольку данное пособие предназначено в основном для тех, кто программирует приложения для среды Microsoft Windows, требуется сделать несколько важных замечаний.
Существует два основным типа приложения для этой операционной системы: консольные и оконные.
Консольные приложения по своему строению практически не отличаются от программ DOS запущенных под Windows (однако являются 32-разрядными приложениями защищенного режима). При их запуске система автоматически создает окно, в которое можно выводить текстовую информацию языковыми средствами C без привлечения функций API операционной системы. Тем не менее, само приложение может также создавать дополнительные окна, если разработчику это требуется. Именно так и происходит при создании консольных приложений с использованием GLUT и OpenGL. Система при запуске создает консоль, а GLUT своим методом glutCreateWindow() создает еще одно окно. В этом случае весь графический вывод OpenGL направляется в окно, созданное GLUT, а текстовый вывод функциями стандартной библиотеки C (например, printf(“текстовая строка”) или cout<<”текстовая строка”) будет осуществляться в консольное окно. Это может быть весьма удобно, если помимо графического вывода программа выполняет некоторые вычисления над полученным изображением (определение минимальных и максимальных значений компонент цвета, использование обратного режима OpenGL и так далее). Стартовой точкой выполнения консольной программы является функция main(), в которую системой передаются те самые параметры командной строки (если они есть), которые позже должны быть переданы в glutInit().
В случаях, когда лишнее консольное окно приложению не нужно, лучше изначально создавать оконное приложение. При его запуске вся ответственность по созданию окон ложится на программиста и средства, которыми он пользуется, в нашем случае опять-таки на GLUT. И вот здесь может возникнуть потенциальная проблема, которая происходит из разницы между форматами передачи параметров командной строки в функцию main