В этом разделе описывается, как собрать уроки.
Что вам нужно скачать. Очевидно, что вам понадобится компилятор C++ и среда сборки. Вам также понадобятся операционные системы Windows или Linux, так как это единственные ОС, поддерживаемые в уроках. Поддерживаемые среды сборки включают Visual Studio 2008/2010, Code::Blocks и GNU Makefiles на базе Linux. Другие сборочные системы могут работать, но они не тестируются регулярно.
Вам необходимо загрузить файл дистрибутив исходных текстов; загрузить файл .7z с наибольшим номером версии. Все библиотеки, необходимые для сборки уроков, входят в состав дистрибутива, так что это единственное, что вам понадобится для скачивания исходных текстов.
Вам также необходимо загрузить утилиту Premake 4 для выбранной вами платформы. Поместите исполняемый файл куда-нибудь в вашем командном пути.
Вам потребуется минимальное знание командной строки, чтобы построить эти учебники. Кроме того, любые упомянутые каталоги всегда относительны к тому месту, где вы распаковали этот дистрибутив.
Расположение файлов в дистрибутиве. Расположение файлов в каталоге уроков достаточно простое. Каталог framework
и все каталоги вида Tut*
содержат исходный код самих учебников. Каждая директория Tut*
содержит код для различных уроков. Каталог framework
просто содержит код утилиты, который обычно используется в каждом уроке.
Каждый урок содержит один или несколько проектов; на каждый проект даются ссылки в тексте этого урока.
Каталог Documents
содержит исходный текст текстовой документации, объясняющей, как работают эти учебники. Этот исходный текст находится в xml файлах, использующих формат DocBook 5.0.
Другие каталоги либо содержат библиотеки, используемые уроками, либо файлы данных, которые загружаются уроками.
Premake 4. Premake - это утилита типа CMake: она генерирует файлы сборки для определенной платформы. В отличие от CMake, Premake - это утилита, работающая исключительно из командной строки. Скрипты сборки Premake написаны на языке Lua, в отличие от скриптов сборки CMake, использующих свой собственный язык.
Обратите внимание, что Premake генерирует только сборочные файлы; после создания сборочных файлов их можно использовать как обычно. Он может генерировать проектные файлы для Visual Studio, Code::Blocks, а также GNU Makefiles. И если вы не хотите изменять одно из руководств, вам нужно запускать Premake только один раз для каждого из них.
Premake загружается в виде предварительно собранного исполняемого файла для всех интересующих платформ, включая Linux.
Неофициальный OpenGL SDK. В комплект поставки входит неофициальный OpenGL SDK (скачивать отдельно его не нужно). Это совокупность библиотек, объединяющая ряд инструментов для разработки OpenGL-приложений, объединенных в единую систему сборки. Загружать его не нужно, версия SDK входит в дистрибутив учебника. Копия, поставляемая вместе с учебниками, не содержит ни документации, ни GLFW.
Библиотека SDK использует Premake для генерации своих сборочных файлов. Итак, с помощью premake4.exe в пути откройте командную строку и перейдите в каталог glsdk
. Введите premake4
, где plat
plat
- название выбранной платформы. Для Visual Studio 2008 это будет "vs2008"; для VS2010 - "vs2010". При этом будут сгенерированы проекты и файлы решений Visual Studio для данной версии.
Для сборок GNU и makefile это "gmake". Это сгенерирует makefile. Для сборки для отладки используйте make config=debug
; аналогично, для сборки для выпуска используйте make config=release
.
Используя сгенерированные сборочные файлы, скомпилируйте их как для отладки, так и для релиза. Вы должны собрать все решение целиком, в уроках используются все предоставляемые библиотеки. Не пытайтесь запускать SDK из IDE, это всего лишь набор библиотек. Все, что вам нужно сделать, это скомпилировать их для отладки и релиза.
Также нет необходимости выполнять make install
или подобные команды после сборки SDK. Комплект SDK предназначен для использования там, где он есть; он не устанавливается ни в какие системные каталоги на вашей машине. Кстати, также как и эти уроки.
Сборка и запуск уроков
Каждый каталог учебника имеет файл premake4.lua
; этот файл используется Premake для генерации файлов сборки для этого учебника. Следовательно, для сборки любого учебника вам нужно только перейти в этот каталог и набрать premake4
, а затем использовать эти файлы сборки для сборки учебника.plat
Каждое учебное пособие, как правило, имеет более одного исходного файла и генерирует несколько исполняемых файлов. Каждый исполняемый файл представляет собой отдельный раздел урока, как описано в документации к этому уроку.
Если вы хотите собрать все учебники сразу, перейдите в корневую директорию дистрибутива и используйте Premake с файлом premake4.lua
в этом каталоге. Это поместит все учебники в один гигантский проект, который вы сможете собрать.
Если вы посмотрите на любой из исходных файлов учебника, вы не найдете нигде функции main
. Эта функция определена в framework/framework.cpp
; она и все остальные исходные файлы в каталоге framework
являются общими для каждого учебника. Он выполняет основную работу с шаблоном: создает окно FreeGLUT и т.д. Это позволяет в исходных файлах учебника сосредоточиться на полезном коде, специфичном для OpenGL.
Обратите внимание, что проект фреймворка - это библиотека, а не исполняемый файл. Поэтому попытка запустить фреймворк из выбранной вами IDE не сработает. Вы должны выбрать один из обучающих проектов и установить его в качестве активного проекта. Тогда вы сможете запустить это учебное пособие из IDE.