Настраиваем Windows для программирования OpenGL

OpenGL 2 - одно из самых популярных на сегодняшний день приложений, которое используют для работы с двух- и трехмерными графическими изображениями, получения различных данных и выставления настроек.

В этой статье мы постараемся более подробно рассказать о преимуществах работы с помощью данного софта. Узнав всю важную информацию, пользователи могут бесплатно скачать Open GL 2 для Windows 7 64 bit / 32 bit и других ОС. Прежде всего, конечно, стоит отметить возможность самостоятельной настройки приложения.

О программе

Установив программное обеспечение, вы получите все необходимые сведения о работе графической подсистемы вашего компьютера и видеорежимах, которые она поддерживает. Главным преимуществом программы является несложность использования: при желании юзер может самостоятельно настроить параметры рендеринга.

Важно отметить, что для максимального взаимодействия программы с разными ПК ее постоянно дорабатывают. Таким образом, последняя версия:

  • Передает, насколько драйвер подходит версиями модели OpenGL.
  • Фиксирует сведения о расширениях, которые программа поддерживает, их функциях и рейтинге.
  • Дает справку о том, какие функции и технологии получения изображения по модели поддерживаются драйвером для Windows 10, 8, 7.
  • Выдает каталог тех форматов изображений и режимов работы, с которыми может работать.
  • Предоставляет по запросу сведения как о сильных сторонах, так и функциональных недочетах, которые влияют на работу.
  • Активирует внутренние расширения OpenGL.
  • Открывает доступ ко всей базе данных со всевозможными расширениями и предоставляет возможность для их активирования, а затем дальнейшего использования.

Вывод

Если в процессе инсталляции ПО возникли трудности, попробуйте переустановить драйвера на видеокарте – проблема должна решиться. Надеемся, что информация о программе оказалась полезной – поделитесь мыслями не только с друзьями, но и с нами – в комментариях мы примем любые ваши замечания, ответим на каждый возникший вопрос! Напоминаем, что скачать OpenGL 2 для Виндовс 7, 8, 10 можно по прямой ссылке ниже. Спасибо за внимание!

Reading Time: 4 minutes

Getting your Windows machine ready for OpenCL is rather straightforward. In short, you only need the latest drivers for your OpenCL device(s) and you"re ready to go. Of course, you will need to add an OpenCL SDK in case you want to develop OpenCL applications but that"s equally easy.

Before we start, a few notes:

  • The steps described herein have been tested on Windows 8.1 only, but should also apply for Windows 7 and Windows 8.
  • We will not discuss how to write an actual OpenCL program or kernel, but focus on how to get everything installed and ready for OpenCL on a Windows machine. This is because writing efficient OpenCL kernels is almost entirely OS independent.

If you want to know more about OpenCL and you are looking for simple examples to get started, check the .

Running an OpenCL application

If you only need to run an OpenCL application without getting into development stuff then most probably everything already works.

If OpenCL applications fail to launch, then you need to have a closer look to the drivers and hardware installed on your machine:

  • Check that you have a device that supports OpenCL. All graphics cards and CPUs from 2011 and later support OpenCL. If your computer is from 2010 or before, . You can also find a list with OpenCL conformant products on Khronos webpage .
  • Make sure your OpenCL device driver is up to date, especially if you"re not using the latest and greatest hardware. With certain older devices OpenCL support wasn"t initially included in the drivers.

Here is where you can download drivers manually:

  • Intel has hidden them a bit, but you can find them with support for OpenCL 2.0.
  • AMD"s GPU-drivers include the OpenCL-drivers for CPUs, APUs and GPUs, version 2.0.
  • NVIDIA"s GPU-drivers mention mostly CUDA, but the drivers for OpenCL 1.1 1.2 are there too.

In addition, it is always a good idea to check for any other special requirements that the OpenCL application may have. Look for device type and OpenCL version in particular. For example, the application may run only on OpenCL CPUs, or conversely, on OpenCL GPUs. Or it may require a certain OpenCL version that your device does not support.

A great tool that will allow you to retrieve the details for the OpenCL devices in your system is Caps Viewer .

Developing OpenCL applications

Now it"s time to put the pedal to the metal and start developing some proper OpenCL applications.

The basic steps would be the following:

  • Make sure you have a machine which supports OpenCL, as described above.
  • Get the OpenCL headers and libraries included in the OpenCL SDK from your favourite vendor.
  • Start writing OpenCL code. That"s the difficult part.
  • Tell the compiler where the OpenCL headers are located.
  • Tell the linker where to find the OpenCL .lib files.
  • Build the fabulous application.
  • Run and prepare to be awed in amazement.

Ok, so let"s have a look into each of these.

OpenCL SDKs

For OpenCL headers and libraries the main options you can choose from are:

  • NVIDIA – CUDA Toolkit . You can grab the OpenCL samples .
  • AMD – AMD APP SDK . Also works with Intel"s CPUs.
    • Headers and OpenCL.lib are here: https://github.com/GPUOpen-LibrariesAndSDKs/OCL-SDK/releases
    • Samples are here: https://github.com/OpenCL/AMD_APP_samples
    • Math libraries are here: https://github.com/clMathLibraries
  • Intel – the previous Intel SDK for OpenCL is now integrated into Intel"s new tools , such as Intel INDE (which has a free starters edition) or Intel Media Server Studio. Grab any of these in order to have everything ready for building OpenCL code.

As long as you pay attention to the OpenCL version and the OpenCL features supported by your device, you can use the OpenCL headers and libraries from any of these three vendors.

OpenCL headers

Let"s assume that we are developing a 64bit C/C++ application using Visual Studio 2013. To begin with, we need to check how many OpenCL platforms are available in the system:

#include #include int main(void) { cl_int err; cl_uint numPlatforms; err = clGetPlatformIDs(0, NULL, &numPlatforms); if (CL_SUCCESS == err) printf("\nDetected OpenCL platforms: %d", numPlatforms); else printf("\nError calling clGetPlatformIDs. Error code: %d", err); return 0; }

We need to specify where the OpenCL headers are located by adding the path to the OpenCL "CL" is in the same location as the other CUDA include files, that is, CUDA_INC_PATH . On a x64 Windows 8.1 machine with CUDA 6.5 the environment variable CUDA_INC_PATH is defined as “C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include

  • Tutorial

Пост ориентирован на новичков. В нем не рассматривается настройка Visual Studio. Он научит вас настраивать некоторые текстовые редакторы на компиляцию OpenGL приложений, либо выполнять это из консоли вручную.

Качаем с бинарники под MinGW . Распаковываем, freeglut.dll из папки bin кидаем в " C:\Windows\System32 " (для х86) или " C:\Windows\SysWOW64 " (для х64), или любую другую папку, которая указана в PATH . Содержимое папок include и lib можно скопировать либо в " MinGW\include " и " MinGW\lib " (так будет проще), либо в отдельные созданые папки " MinGW\freeglut\include " и " MinGW\freeglut\lib ".

На этом с freeglut все. Для его подключения нужно добавить #include

glew
Библиотека glew позволяет определять что видеокарта поддерживает, а что - нет. Ее установка немного сложнее для нашего случая.
Качаем с , поскольку бинарники заточены под Visual Studio и нам не подойдут. Теперь эти исходники нужно скомпилировать. Я в этом практически ничего не понимаю, по-этому обратился к гуглу и нашел помощь :
Распаковываем скачанный архив, открываем консоль, заходим в полученную папку и пишем следующие команды:
gcc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.o -c src/glew.c gcc -shared -Wl,-soname,libglew32.dll -Wl,--out-implib,lib/libglew32.dll.a -o lib/glew32.dll src/glew.o -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 ar cr lib/libglew32.a src/glew.o В результате в папке lib появилось 3 файла: glew32.dll , glew32.dll.a и glew32.a .
glew32.dll копируем туда же, куда ранее скопировали freeglut.dll , остальные 2 - в папку " MinGW\lib " либо " MinGW\glew\lib ".
Из папки include копируем содерижмое в " MinGW\include " или " MinGW\glew\include ".

На этом с glew все. Для его подключения нужно добавить #include , но сделать это необходимо перед подключением других gl библиотек.

Проверяем работоспособность
Создаем минимальный test.cpp:
#include #include #include #include int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA); glutInitWindowSize(512, 512); glutInitContextVersion(4, 1); // Версия OpenGL, которую вы хотите использовать glutInitContextProfile(GLUT_CORE_PROFILE); glutCreateWindow(argv); if (glewInit()) { std::cerr << "Unable to initialize GLEW ... exiting\n"; exit(EXIT_FAILURE); } glutMainLoop(); }
Обратите внимание на функцию glutInitContextVersion - она завершит выполнение программы если ей не удалось создать контекст для указаной версии OpenGL. Чтобы узнать версию OpenGL, которую поддерживает ваша видеокарта, можно заглянуть в ее спецификацию либо скачать бинарники glew с и запустить glewinfo.exe из папки bin . Он сгенерирует файл glewinfo.txt , в котором будет детально расписано что ваша видеокарта поддерживает, а что - нет. Иногда функционал можно расширить установкой более свежего видеодрайвера.

Открываем консоль, заходим в папку с test.cpp и пишем следующую команду:
g++ -o test.exe test.cpp -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows В случае, если вы создавали отдельные папки freeglut и glew , здесь необходимо дополнительно указать соответствующие дополнительные папки include и lib . Тогда пример команды выглядит так:
g++ -o test.exe test.cpp -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows -I"C:\MinGW\freeglut\include" -L"C:\MinGW\freeglut\lib" -I"C:\MinGW\glew\include" -L"C:\MinGW\glew\lib"
Флаг -Wl,--subsystem,windows указывает компилятору что он должен создать графическое приложение, а не консольное.
Если все получилось, должен получится файл test.exe , который при запуске создает белое окно 512х512.

Когда вы захотите поделится своим приложением, убедитесь что вместе с исполняемым файлом передаете используемые библиотеки - freeglut.dll и glew32.dll .

Sublime Text 2
Ну и напоследок, приведу пример настройки Sublime. Скачать его можно отсюда , вводные видео-уроки на английском языке можно глянуть .
После установки открываем файл настройки билда С++:
" C:\Users\%Username%\AppData\Roaming\Sublime Text 2\Packages\C++\C++.sublime-build "
Сохраняем его копию как
" C:\Users\%Username%\AppData\Roaming\Sublime Text 2\Packages\User\C++\С++ OpenGL.sublime-build "

Строчку
"cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"], дополняем подключением библиотек:
"cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}", "-lfreeglut -lopengl32 -lglew32 -Wl,--subsystem,windows"],
Аналогично, строчку
"cmd": ["bash", "-c", "g++ "${file}" -o "${file_path}/${file_base_name}" && "${file_path}/${file_base_name}""] дополняем до
"cmd": ["bash", "-c", "g++ "${file}" -o "${file_path}/${file_base_name}" -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows && "${file_path}/${file_base_name}""] Если вы создавали отдельные папки под freeglut и glew, эти команды следует дополнить указанием адресов дополнительных папок include и lib .

Для того чтобы Sublime не отказывался выводить кириллицу в свою консоль, после
"selector": "source.c, source.c++", добавляем
"encoding": "cp1251",
Теперь, когда у нас открыт test.cpp , выбираем Tools -> Build system -> C++ OpenGL .
Нажимаем Ctrl+B для компиляции, Ctrl+Shift+B для компиляции и запуска.

На этом все!

UPD : Когда дело дошло до кода с gl-функциями из последних версий, выяснилось, что подключение заголовочного файла GL/gl.h недостаточно. В нем содержится устаревшая версия 1.1, и этот файл больше не обновляется. В дополнение к нему необходимо подключить GL/glext.h (последнюю версию которого надо скачать

Пакет файлов под названием OpenGL в большинстве случаев требуется пользователям для корректного запуска определенных игр на компьютере под управлением операционной системы Windows 7. Если данный драйвер отсутствует или его версия устарела, программы просто не будут включаться, а на экране отобразится соответствующее уведомление с просьбой инсталляции или обновления ПО. В этой статье мы максимально развернуто расскажем о загрузке новых библиотек OpenGL.

В первую очередь стоит разобраться, каким же образом инсталлируется рассматриваемый компонент на ПК. Все необходимые файлы ставятся вместе с драйверами графического адаптера. Поэтому сперва следует обновить программное обеспечение этого комплектующего, а потом переходить к разбору альтернативного метода.

Когда у вас установлен самый свежий драйвер на видеокарту и обновлений больше нет, при этом все равно появляется уведомление о необходимости обновления OpenGL, сразу переходите к третьему способу. Если и этот вариант не принес никаких результатов, значит, ваше оборудование не поддерживает последние библиотеки. Рекомендуем задуматься о выборе новой видеокарты.

Способ 1: Обновление драйверов видеокарты в Windows 7

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

Способ 2: Обновление компонентов в фирменной утилите видеокарты

Сейчас основными производителями графических адаптеров являются AMD и NVIDIA. У каждого имеется собственный софт, который обеспечивает корректную работу с операционной системой и позволяет обновлять ПО. Обладателям видеокарт NVIDIA советуем обратиться к материалу по следующей ссылке, чтобы разобраться с установкой новой версии драйвера OpenGL в .

Владельцам карточек от AMD нужно ознакомиться с другими статьями, поскольку в данном случае все действия выполняются в либо в , в зависимости от типа установленного ПО.

Способ 3: Обновление DirectX

Не самым эффективным, но иногда работающим методом является установка новых компонентов библиотеки DirectX. Порой в ней находятся подходящие файлы, которые позволяют нормально функционировать необходимым играм или программам. Сначала нужно узнать, какой DirectX уже установлен на вашем компьютере. Для этого ознакомьтесь с инструкцией в статье ниже.

На данный момент последней версией для ОС Виндовс 7 является DirectX 11. Если у вас инсталлирована более ранняя библиотека, советуем обновить ее и проверить работоспособность ПО. Развернуто на эту тему читайте в другом материале.

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

  • Tutorial

Пост ориентирован на новичков. В нем не рассматривается настройка Visual Studio. Он научит вас настраивать некоторые текстовые редакторы на компиляцию OpenGL приложений, либо выполнять это из консоли вручную.

Качаем с бинарники под MinGW . Распаковываем, freeglut.dll из папки bin кидаем в " C:\Windows\System32 " (для х86) или " C:\Windows\SysWOW64 " (для х64), или любую другую папку, которая указана в PATH . Содержимое папок include и lib можно скопировать либо в " MinGW\include " и " MinGW\lib " (так будет проще), либо в отдельные созданые папки " MinGW\freeglut\include " и " MinGW\freeglut\lib ".

На этом с freeglut все. Для его подключения нужно добавить #include

glew
Библиотека glew позволяет определять что видеокарта поддерживает, а что - нет. Ее установка немного сложнее для нашего случая.
Качаем с , поскольку бинарники заточены под Visual Studio и нам не подойдут. Теперь эти исходники нужно скомпилировать. Я в этом практически ничего не понимаю, по-этому обратился к гуглу и нашел помощь :
Распаковываем скачанный архив, открываем консоль, заходим в полученную папку и пишем следующие команды:
gcc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.o -c src/glew.c gcc -shared -Wl,-soname,libglew32.dll -Wl,--out-implib,lib/libglew32.dll.a -o lib/glew32.dll src/glew.o -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 ar cr lib/libglew32.a src/glew.o В результате в папке lib появилось 3 файла: glew32.dll , glew32.dll.a и glew32.a .
glew32.dll копируем туда же, куда ранее скопировали freeglut.dll , остальные 2 - в папку " MinGW\lib " либо " MinGW\glew\lib ".
Из папки include копируем содерижмое в " MinGW\include " или " MinGW\glew\include ".

На этом с glew все. Для его подключения нужно добавить #include , но сделать это необходимо перед подключением других gl библиотек.

Проверяем работоспособность
Создаем минимальный test.cpp:
#include #include #include #include int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA); glutInitWindowSize(512, 512); glutInitContextVersion(4, 1); // Версия OpenGL, которую вы хотите использовать glutInitContextProfile(GLUT_CORE_PROFILE); glutCreateWindow(argv); if (glewInit()) { std::cerr << "Unable to initialize GLEW ... exiting\n"; exit(EXIT_FAILURE); } glutMainLoop(); }
Обратите внимание на функцию glutInitContextVersion - она завершит выполнение программы если ей не удалось создать контекст для указаной версии OpenGL. Чтобы узнать версию OpenGL, которую поддерживает ваша видеокарта, можно заглянуть в ее спецификацию либо скачать бинарники glew с и запустить glewinfo.exe из папки bin . Он сгенерирует файл glewinfo.txt , в котором будет детально расписано что ваша видеокарта поддерживает, а что - нет. Иногда функционал можно расширить установкой более свежего видеодрайвера.

Открываем консоль, заходим в папку с test.cpp и пишем следующую команду:
g++ -o test.exe test.cpp -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows В случае, если вы создавали отдельные папки freeglut и glew , здесь необходимо дополнительно указать соответствующие дополнительные папки include и lib . Тогда пример команды выглядит так:
g++ -o test.exe test.cpp -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows -I"C:\MinGW\freeglut\include" -L"C:\MinGW\freeglut\lib" -I"C:\MinGW\glew\include" -L"C:\MinGW\glew\lib"
Флаг -Wl,--subsystem,windows указывает компилятору что он должен создать графическое приложение, а не консольное.
Если все получилось, должен получится файл test.exe , который при запуске создает белое окно 512х512.

Когда вы захотите поделится своим приложением, убедитесь что вместе с исполняемым файлом передаете используемые библиотеки - freeglut.dll и glew32.dll .

Sublime Text 2
Ну и напоследок, приведу пример настройки Sublime. Скачать его можно отсюда , вводные видео-уроки на английском языке можно глянуть .
После установки открываем файл настройки билда С++:
" C:\Users\%Username%\AppData\Roaming\Sublime Text 2\Packages\C++\C++.sublime-build "
Сохраняем его копию как
" C:\Users\%Username%\AppData\Roaming\Sublime Text 2\Packages\User\C++\С++ OpenGL.sublime-build "

Строчку
"cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"], дополняем подключением библиотек:
"cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}", "-lfreeglut -lopengl32 -lglew32 -Wl,--subsystem,windows"],
Аналогично, строчку
"cmd": ["bash", "-c", "g++ "${file}" -o "${file_path}/${file_base_name}" && "${file_path}/${file_base_name}""] дополняем до
"cmd": ["bash", "-c", "g++ "${file}" -o "${file_path}/${file_base_name}" -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows && "${file_path}/${file_base_name}""] Если вы создавали отдельные папки под freeglut и glew, эти команды следует дополнить указанием адресов дополнительных папок include и lib .

Для того чтобы Sublime не отказывался выводить кириллицу в свою консоль, после
"selector": "source.c, source.c++", добавляем
"encoding": "cp1251",
Теперь, когда у нас открыт test.cpp , выбираем Tools -> Build system -> C++ OpenGL .
Нажимаем Ctrl+B для компиляции, Ctrl+Shift+B для компиляции и запуска.

На этом все!

UPD : Когда дело дошло до кода с gl-функциями из последних версий, выяснилось, что подключение заголовочного файла GL/gl.h недостаточно. В нем содержится устаревшая версия 1.1, и этот файл больше не обновляется. В дополнение к нему необходимо подключить GL/glext.h (последнюю версию которого надо скачать