Минимальное OpenGL приложение
По лабораторным в институте должен быть OpenGL. Решил попробовать заранее и был неприятно удивлен отсутсвием полного описания как всё-таки скомпилировать программу (самих исходников вагон и маленькая тележка). Тем более под VS2008.
Трудности разрешил успешно :)
Необходимые библиотеки: gllib.rar
Установка библиотек (компилятор Visual Studio 2008 Express):
Файлы gl.h, glut.h и glu.h положит в папку include/GL компилятора (<папка, куда установлена студия>/VC/include/GL)
Файл glut32.lib – в папку lib (<папка, куда установлена студия>/VC/lib)
Файл glut32.dll – в папку C:/Windows/System
Запуск и настройка проекта:
Запускаем студию. Нажимаем File/New/Project…
Раздел Win32. Тип проекта Win32Project. Пишем имя проекта и нажимаем Ok.
В мастере создания проекта нажимаем Next, выбираем Windows Application и ставим галку на Empty Project.
Кликаем правой кнопкой по разделу Source File -> Add/New Item
Выбираем C++ File (.cpp) и называем его main
Заходим в свойства проекта – Alt+P P
Выбираем Configuration Properties -> Linker -> Input и в поле Additional Dependencies нажимаем троеточие и вписываем glut32.lib и opengl32.lib
Идем в Configuration Properties -> Linker -> Advanced и в поле Entry Point вписываем main
Всё (для компиляции отладочной версии. Опции для компиляции Релиза опишу когда будет что Релизить :) )
Осталось вставить код описаный ниже в файл main.cpp и можно запускать. Должно появиться черное окошко с заголовком Demo.
Исходный код:
#include "gl/glut.h" //подключаем библиотеку void Display() //функция в которой будем рисовать (писать копанды на отрисовку) { glFlush(); //говорит адаптеру, что пора бы уже вывести то, что нарисовали } int main() { glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); //выставляем режимы отображения информации //GLUT_RGB Режим RGB. Используется по умолчанию. //GLUT_SINGLE Окно с одиночным буфером. glutInitWindowSize(800, 600); //размер окна (ширина, высота) glutInitWindowPosition(0,0); //координаты верхнего левого угла окна glutCreateWindow("Demo"); //создаём окно с заголовком Demo glutDisplayFunc(Display); //определяет функцию, в которой мы и будем рисовать glutMainLoop(); //запуск основного цикла программы return 0; }
Leave a comment