How can I check my OpenGL version?
Without polling extension functionality, from what version’s functions may I assume supported? Minimum of 1.4 and 3.2 seems incredibly historic, so I assume glx version is not numbered in parallel with OpenGL version.
What GLSL version may I assume? It displays the Cg compiler version, but what’s my GLSL version?
2 Answers 2
GLX is the protocol that transports OpenGL commands in a X11 command stream. The most recent version of GLX is 1.4.
The OpenGL version is told in the «OpenGL version string». And you got 3.2
so I assume glx version is not numbered in parallel with OpenGL version.
No it’s not, because they’re two different things. GLX transports OpenGL, it doesn’t implement it.
Как узнать версию OpenGL на компьютере?
Узнать установленную версию можно при помощи команды dxdiag, вводимой в меню «Выполнить». Загрузить новый дистрибутив можно с официального сайта поддержки Microsoft в разделе Downloads. Как уже понятно, DirectX OpenGL обновить можно обычным стартом процесса инсталляции загруженного дистрибутива.
Что такое OpenGL на андроид?
«OpenGL (Open Graphics Library) — спецификация, определяющая независимый от языка программирования платформонезависимый программный интерфейс для написания приложений, использующих двумерную и трёхмерную компьютерную графику. Включает более 300 функций для рисования сложных трёхмерных сцен из простых примитивов.
Как узнать какая видеокарта?
Инструмент Windows «Сведения о системе» отображает весь список установленного оборудования. Запустить утилиту можно через командную строку: нажмите [Windows]+[R] и введите «msinfo32» (без кавычек). В левом столбце выберите «Компоненты» — «Дисплей». Во втором поле «Имя» указана модель вашей видеокарты.
Как узнать характеристики видеокарты на Windows 7?
Первое, что следует попробовать, чтобы посмотреть, какая видеокарта на компьютере — зайти в диспетчер устройств и проверить информацию там. Самый быстрый способ сделать это в Windows 10, 8, Windows 7 и Windows XP — нажать клавиши Win + R (где Win — клавиша с эмблемой ОС) и ввести команду devmgmt.
Как узнать какая видеокарта стоит на компьютере Windows 10?
Нажмите на клавиатуре комбинацию клавиш Win (клавиша со значком Windows) + R. В открывшемся окошке введите команду dxdiag и нажмите Enter. Откроется средство диагностики, позволяющее узнавать информацию о видеокарте.
Как узнать модель видеокарты на Windows 7?
Как узнать свою видеокарту на Windows 7 / 8 / 8.
Как узнать на сколько Гб у тебя видеокарта?
Для этого откройте меню «Пуск» и в поле «Выполнить» введите команду «dxdiag.exe». В открывшемся окне перейдите на вторую вкладку под названием «Монитор». В строке «Всего памяти» указано количество RAM вашей видеокарты.
Как найти видеокарту в биосе?
- Войти в BIOS.
- Найти раздел Chipset.
- Найти параметр Boot Graphic Adapter Priority или First Display Boot и нажать Enter.
- В списке вариантов нужно выбрать PCI Express или PCI, указав, то система должна использовать видеокарту, подключенную к этому слоту.
- Далее сохраняем настройки, выходим из BIOS.
Какая видео карта лучше?
Мы, в свою очередь, подведем итоги нашего рейтинга: Лучшая видеокарта до 15 000 рублей – GIGABYTE Radeon RX 5500; . Игровая видеокарта по цене и качеству – Asus GeForce RTX 2070 SUPER DUAL EVO; Самая мощная видеокарты для игр – Asus GeForce RTX 2080 Ti ROG STRIX OC .
Как узнать есть ли драйвера на видеокарту?
2. В диспетчере, в списке устройств, открыть раздел «Видеоадаптеры», найти в нем видеокарту, щелкнуть по ней правой кнопкой мышки и в появившемся контекстном меню выбрать пункт «Свойства». 3. В открывшемся окне перейти на вкладку «Драйвер«, где и будет отображаться версия драйвера видеокарты.
Как узнать какой у тебя драйвер Nvidia?
O: Нажмите правую клавишу мыши на рабочем столе и выберите Панель управления NVIDIA. В меню Панели управления NVIDIA выберите Помощь > Информация о системе. Версия драйвера указана в верхней части окна Детали. Более продвинутые пользователи могут узнать версию драйвера из Мастера управления оборудованием Windows.
Как удалить драйвер видеокарты Nvidia Windows 10?
Удаление драйверов видеокарты через панель управления и Display Driver Uninstaller. Обычный способ удаления — зайти в Панель управления Windows, выбрать пункт «Программы и компоненты», найти все пункты, имеющие отношение к вашей видеокарте, после чего по очереди удалить их.
Как переустановить драйвера видеокарты на Windows 7?
- Зайти в «Диспетчер устройств»;
- Найти там видеокарту;
- Вызвать щелчком по ее наименованию правой кнопкой мыши контекстное меню и выбрать в нем пункт «Свойства»;
- Затем в закладке «Драйвер» нажать кнопку «Обновить»;
Как обновить драйвера для видеокарты на ноутбуке?
- Способ №1.
- Для Windows7. .
- В открывшемся списке нажмите двойным щелчком мыши по разделу «Видеоадаптеры»:
- Далее нужно нажать правой кнопкой мыши по вашей видеокарте и в выпадающем списке выбрать «Обновить драйверы…
Как обновить драйвера видеокарты на ноутбуке Lenovo?
Откройте диспетчер устройств, найти его можно в меню «Пуск» или в панели управления в разделе «Система и безопасность». Откройте вкладку «Видеоадаптеры» и щёлкните по названию карты памяти правой кнопкой мыши. В открывшемся меню нажмите команду «Обновить драйверы».
Как обновить драйвера для видеокарты на Windows 10?
- Введите «диспетчер устройств» в поле поиска на панели задач и щелкните элемент Диспетчер устройств.
- Выберите категорию, чтобы просмотреть имена устройств, а затем щелкните правой кнопкой мыши (или нажмите и удерживайте) устройство, которое требуется обновить.
- Выберите пункт Автоматический поиск обновленных драйверов.
Как перезагрузить драйвер видеокарты Windows 7?
Чтобы перезапустить драйвер вашего графического ускорителя, нажмите на клавиатуре комбинацию клавиш Win+Ctrl+Shift+B. Как только вы нажмете данную комбинацию, ваш экран потухнет на пару-тройку секунд, а затем вы услышите звуковой сигнал и изображение снова вернется на экран.
Как обновить драйвера для Windows 7?
- Откройте окно центра обновления Windows, нажав кнопку » Пуск » . .
- На левой панели нажмите пункт Поиск обновлений и подождите, пока Windows выполнит поиск последних обновлений для вашего компьютера.
Как установить видеокарту на Windows 7?
Для Windows 7 делаем следующее: заходим в «Пуск» и нажимаем «Панель управления». Дальше выбирайте «Просмотр» – «Крупные значки» и нажмите по пункту «Система». Потом в списке слева зайдите в «Диспетчер устройств». Разверните пункт «Видеоадаптеры», или двойным нажатием на него, или нажав слева от названия по стрелочке.
Как узнать версию opengl
В статье глубже описана структура API OpenGL, обработка ошибок, работа с расширениями и получение информации о возможностях драйвера.
Содержание
Структура API OpenGL
API OpenGL описан на языке C без применения C++ ради простоты и платформонезависимости. Он состоит только из функций, констант и примитивных типов, объявленных через typedef , таких как «typedef int GLenum;» .
Функции делятся на две группы:
- команды (англ. commands) для изменения состояния драйвера
- запросы (англ. queries) состояния драйвера
Вот несколько примеров:
- функция-команда void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) устанавливает цвет очистки; RGBA компоненты цвета передаются как число с плавающей точкой на отрезке [0..1] .
- функция-команда void glClear() очищает буфер кадра путём заливки пикселей цветом очистки.
- функция-запрос const GLubyte *glGetString(GLenum name) возвращает строковое значение некоторой константы или величины в видеодрайвере, выбор величины зависит от параметра name ; при этом const GLubyte* можно преобразовать в const char* с помощью reinterpret_cast .
- тип данных GLclampf означает “число с плавающей точкой на отрезке [0..1] ”; при этом никаких проверок принадлежности диапазону компилятор делать не будет, потому что тип объявлен просто как typedef float GLclampf .
Функции-команды ничего не возвращают, даже статуса своего выполнения. Это даёт возможность выполнить команду асинхронно, не заставляя приложение ждать, пока видеодрайвер отправит данные на видеокарту и получит от неё ответ.
Обработка ошибок
OpenGL старательно обрабатывает ошибки, такие как “недопустимый аргумент”, “неправильная константа enum”, “несвоевременный вызов команды”. Узнать о наличии общей ошибки в одной из предыдущих функций-команд можно функцией-запросом GLenum glGetError() .
- Если функция возвращает GL_NO_ERROR , ошибок не было
- В противном случае код ошибки обозначает категорию ошибки без конкретных указаний
- Функция не только возвращает код ошибки, но и очищает флаг ошибки в драйвере
Условно, код может выглядеть так:
Функцию можно улучшить, если учесть следующее:
- Распечатать строку ошибки можно в поток ошибок std::cerr
- Любую ошибку можно считать фатальной, вызывая std::abort для аварийного завершения программы после вывода текста ошибки
- Функцию можно сделать статическим методом класса CUtils
Представим улучшенную версию:
После добавления этого метода можно улучшить основной цикл приложения:
Расширения OpenGL
В целях максимальной гибкости, все изменения в OpenGL вносятся в виде расширений. Расширение OpenGL — это задокументированная спецификация, которая описывает новые функции и их поведение, изменения в поведении старых функций и новые константы. Каждое расширение имеет имя, например, «GL_ARB_multitexture» . При выпуске новой версии OpenGL часть расширений попадает в новую версию и становится частью ядра OpenGL. Таким образом, в версии OpenGL 3.0 и выше вы автоматически получаете ряд возможностей, которые в OpenGL 1.2 были доступны только как расширения.
- В UNIX-системах и на мобильных устройствах доступны достаточно свежие версии OpenGL (обычно 3.0 и выше), где многие важные расширения уже стали частью ядра стандарта.
- В Windows версии старше OpenGL 1.1 напрямую недоступны, но разработчики драйверов дают доступ к ним через механизм расширений. Если видеодрайвер не установлен, будет доступен только OpenGL 1.1, обладающий весьма ограниченными возможностями.
Функция, описанная в расширении, может не существовать в конкретной реализации OpenGL (если она не поддерживает данное расширение). Поэтому программист должен
- либо запросить адрес функции и использовать её, только если адрес ненулевой
- либо проверить наличие поддержки расширения по его имени и потом смело запрашивать адреса описанных в расширении функций
В стандарте OpenGL не описан способ получения адреса, и каждая операционная система или мультимедийная библиотека предоставляет свой способ. В SDL2 есть функция void *SDL_GL_GetProcAddress(const char *proc) , которая по имени OpenGL-функции возвращает её адрес или nullptr , если функция недоступна.
Получение информации о версии OpenGL
Один и тот же видеодрайвер может создать разные констексты с разными версиями OpenGL и разными наборами расширений. Поэтому получать версионную информацию следует уже после создания контекста.
Для получения информации мы применим функцию-запрос glGetString с тремя различными параметрами. На эту тему есть статья Get Context Info (opengl.org).
- константа с именем GL_VERSION возвращает строку версии OpenGL, причём в начале строки обязательно стоит «<номер мажорной версии>.<номер минорной версии> » , а остальная часть строки не определена. Например, строка «3.0 Mesa 10.3.2» обозрачает “OpenGL версии 3.0, реализуемый подсистемой графики Mesa версии 10.3.2”.
- константа с именем GL_VENDOR возвращает имя поставщика реализации OpenGL. Например, строка «Intel Open Source Technology Center» обозначает “Видеодрайвер предоставлен OpenSource-подразделением корпорации Intel”.
- константа с именем GL_EXTENSIONS содержит полный список расширений, разделённый пробелами. Список обычно насчитывает свыше ста расширений.
Функция печати информации о контексте
Следуя “правилу трёх ударов”, можно отрефакторить этот код:
Библиотека GLEW
- Сайт проекта: http://glew.sourceforge.net/
- В Debian/Ubuntu доступна в пакете libglew-dev
Запрашивать функции и проверять расширения вручную не всегда удобно. Для решения этой типовой задачи создана библиотека GLEW (сокращение от “openGL Extensions Wrapper”). С помощью макросов и отложенной загрузки адресов функций эта библиотека позволяет использовать расширения так, как будто бы никаких расширений не существует:
- вы просто вызываете функции по имени; если функции нет, произойдёт разыменование нулевого указания
- также вы можете использовать модифицированное имя расширения (с префиксом “GLEW_” вместо “GL_”) как целочисленную переменную со значением 0 или 1; 1 означает, что расширение есть и доступно, 0 означает, что расширения нет или оно недоступно
- если расширение недоступно, вы не должны вызывать функции расширения, чтобы не получить разыменование нулевого указателя
- если при создании контекста OpenGL вы потребовали и получили контекст не ниже определённой версии, то можно даже не проверять расширения, вошедшие в эту версию: они есть.
Подключать заголовок glew.h следует до первого включения gl.h , иначе вы получите ошибку при компиляции.
Библиотека GLEW требует явного вызова функции glewInit для своей инициализации. Сделать вызов следует только один раз. Чтобы не накладывать на класс CAbstractWindow лишних ограничений, нужно гарантировать, что при первом конструировании объекта CAbstractWindow функция будет вызвана, а при последующих — уже нет. Также надо установить глобальную переменную-флаг glewExperimental , чтобы GLEW оборачивала функции из версий OpenGL 3.x и 4.x.
Для этой цели можно использовать два подхода
- взять из стандартного заголовка <mutex> функцию std::call_once
- завести в функции статическую переменную типа bool, которая будет устанавливаться в false в инициализаторе (который для статических переменных внутри функции вызывается ровно один раз)
В многопоточной среде было бы правильным использовать call_once, чтобы исключить возможность повторного вызова инициализации во время выполнения “glewInit” в другом потоке. Однако, ни контекст OpenGL, ни GLEW не могут использоваться из нескольких потоков одновременно. Поэтому call_once нам не потребуется, и достаточно статической переменной типа bool:
Узнаём о расширениях через GLEW
Читать полный список расширений, полученный через glGetString(GL_EXTENSIONS) , не очень удобно. Сканировать его программно слишком трудоёмко в плане вычислений.
Для удобного получения расширений у GLEW есть переменные-флаги, которые устанавливаются при вызове glewInit() . Для проверки наличия расширения надо:
- найти идентификатор расширения в реестре расширений (opengl.org), например, GL_ARB_vertex_shader
- заменить префикс GL_ на GLEW_
- написать проверку переменной-флага с таким именем
Теперь можно улучшить функцию PrintOpenGLInfo :
На машине с Ubuntu 14.04 и встроенной видеокартой Intel программа выводит следующее:
На машине с Windows 8 и видеокартой Intel вывод отличается:
Создаём работоспособное приложение
Код запроса версии OpenGL разместим в классе CWindow , потому что в дальнейших примерах нам уже не нужно будет печатать что-либо в консоль.
How To: Check the graphics card type and OpenGL version
OpenGL is an industry standard 3D graphics API. OpenGL 4.1 or later is required to run CityEngine 2022.0. For more information, refer to the CityEngine system requirements. OpenGL drivers are usually installed together with the rest of the graphics driver and support software (such as DirectX).
Procedure
Follow the instructions provided to check the type of graphics card installed on the system and the version of OpenGL running.
- Check the graphics card type (Windows):
- Click Start, type dxdiag, and press Enter to access a diagnostic tool listing the graphics card information.
- Click the Display tab.
- Install the OpenGL Extensions Viewer to determine the OpenGL version (Windows, Mac, and Android mobile devices).
- Windows: Go to OpenGL Extensions Viewer (Windows) to download and install the OpenGL Extensions Viewer.
- Mac and Android mobile devices: Go to OpenGL Extensions Viewer (Windows), and click the appropriate link to download the OpenGL Extensions Viewer from the Mac App Store, iTunes Store, or the Android Market, depending on the device and operating system.
The OpenGL Extensions Viewer is a free application designed by Realtech VR. The viewer displays the current version of OpenGL installed, and provides tools to test or update the graphics card driver.
Related Information
Last Published: 10/5/2022
Article ID: 000011375
Software: Esri CityEngine 2011.1, 2010.3, 2010.2, 2010.1 ArcGIS CityEngine 2022.0, 2021.1, 2021.0, 2020.1, 2020.0, 2019.1, 2019.0, 2018.1, 2018.0, 2017.1, 2017.0, 2016.1, 2016.0, 2015.2, 2015.1, 2015.0, 2014.1, 2014.0, 2013.1, 2012.1, 2011.2, 2011.1, 2010
Download the Esri Support App on your phone to receive notifications when new content is available for Esri products you use
Download the Esri Support App on your phone to receive notifications when new content is available for Esri products you use