Опыт изучения OpenGL — Часть 4 — Класс engine::ProgramBase

Я продолжаю рассказывать о написанном мною рисовательном API на базе OpenGL, размещенном в открытом репозитории на хостинге BitBucket. К сожалению, написание программы с помощью OpenGL требует существенной предварительной артподготовки в виде Загрузки функций OpenGL (инициализации библиотеки GLEW) Создания окна Создания контекста OpenGL В сегодняшней заметке я освещу класс engine::ProgramBase, который собирает все перечисленные этапы воедино, и в следующих заметках перейду непосредственно к рисованию. Задачи класса ProgramBase Все программы, которые что-то рисуют при помощи OpenGL, как оказалось, имеют ряд общих черт. Читать дальше …

Опыт изучения OpenGL — Часть 3 — Создание контекста рисования

В предыдущих двух заметках я рассказал о том, как загрузить функции OpenGL (проинициализировать библиотеку GLEW) и как создать окно, в котором мы будем рисовать. Но для рисования нам потребуется так называемый OpenGL context — «an object that holds all of OpenGL» — он уже упоминался в первой заметке. Повторим вкратце основные факты о контексте OpenGL: Контекст обладает состоянием. Его состояние определяет, что будет нарисовано на экране. Изменить (повлиять на) это состояние могут только функции API OpenGL. Т. е. контекст можно Читать дальше …

Опыт изучения OpenGL — Часть 2 — Окно

В прошлой заметке я начал рассказывать про свой опыт изучения OpenGL и остановился на том, что проинициализировал библиотеку GLEW, которая загружает все функции API OpenGL. Чтобы начать рисовать что-либо при помощи OpenGL, нам нужно то, на чем можно рисовать, а именно — окно. Ему и посвящена настоящая заметка. Работа окна имеет непосредственное отношение к используемой нами операционной системе, в моем случае — Windows. Поэтому в коде активно используется WinAPI. Исходный код проекта по изучению OpenGL находится в открытом репозитории. Литература Читать дальше …

Опыт изучения OpenGL — Часть 1 — Введение

С детства мечтал писать компьютерные игры, и вот, года три назад решил рискнуть — поизучать OpenGL. Почему взялся изучать не игровой движок, а низкоуровневый API (API — Application Programming Interface)? Потому что люблю изучать все с как можно более низкого уровня, чтобы разобраться как оно работает (например, изучение языка ассемблера Intel очень помогло моему пониманию языков Си и C++). А почему OpenGL, а не DirectX? — Просто по OpenGL я смог найти больше литературы, чем по DirectX. Изучать OpenGL — Читать дальше …

C/C++ в Cygwin

Эта короткая заметка — о том, как начать программировать на языках C и C++ в среде Cygwin. Об установке Cygwin читайте тут. Установка средств разработки Чтобы начать программировать, вам понадобятся компиляторы соответствующих языков и отладчик; пригодится также утилита make. Поэтому запустите программу установки Cygwin (setup.exe) и в диалоге Select Packages выберите следующие пакеты из категории Devel: gcc-core: GNU Compiler Collection (C, OpenMP) gcc-g++: GNU Compiler Collection (C++) gdb: The GNU debugger make: The GNU version of the ‘make’ utility Установите Читать дальше …