Ответ 1
https://github.com/electron/electron/issues/8848 сообщает именно о проблеме с нулевым GL_VERSION и обвиняет электронную версию 1.6.1. Обходной путь состоял в откате к версии 1.4.15.
Я создал движок анимации С++ и OpenGL, поддерживаемый GLX и GLEW, завернутый в модуль Node.js через SWIG. Цель состоит в том, чтобы использовать движок внутри приложения Electron в процессе браузера.
Двигатель выглядит довольно стабильным. Он поддерживает многоконтекст, связывая корректный контекст OpenGL перед всеми соответствующими операциями, проверяя ошибки после почти любой возможной операции и поддерживая довольно большой набор тестов.
За пределами электронного приложения все работает отлично. Однако загадочно, что простые скрипты, которые обычно работают за пределами Electron, терпят неудачу внутри приложения Electron в любом браузере или процессе визуализации.
glGenX
, возвращает 0glGetString(GL_VERSION)
возвращает null, after glGetError
не возвращает ошибкуВ этом порядке:
glXCreateContextAttribsARB
с разумной конфигурацией FB. Возвращаемое значение не равно нулю.XSync(display, false)
вызывается для ожидания ошибок X. Никакие ошибки не сбой программы, установка обработчика ошибок X не дает никаких результатов.glXMakeCurrent
, ошибок, сообщенных glGetError
.glXIsDirect
.glewInit
, возвращая GLEW_OK
.Я довольно озадачен этим. Все, что я проверяю, похоже, предполагает, что контекст был создан правильно, но в противном случае он выглядит поврежденным или дисфункциональным.
Что происходит? Что еще я могу проверить?
https://github.com/electron/electron/issues/8848 сообщает именно о проблеме с нулевым GL_VERSION и обвиняет электронную версию 1.6.1. Обходной путь состоял в откате к версии 1.4.15.