без рендера с OpenGL -> контексты - PullRequest
1 голос
/ 21 сентября 2011

У меня есть программа, которая выполняет вычисления на GPU с дополнительным рендерингом OpenGL.Динамическое использование выглядит следующим образом:

  1. функция инициализации (наиболее важным является GLEW инициализации).
  2. загрузка сетки из файла в графический процессор (использование glGenBuffers - связанные функции для создания VBO).
  3. обрабатывать эту сетку параллельно (GPU Computing API).
  4. сохранить сетку в файл.

Моя проблема заключается в том, что при загрузке сетки я использую вызовы opengl иБез контекста я только что получил ошибку сегментации.

Редактировать: Эволюция проблемы:

  1. Мне не хватало GL / glx.h Я думал, что GL / glxew.h включил его,благодаря ответам, которые были исправлены.
  2. Мне не хватало glXMakeCurrent;и поэтому он имел нулевой контекст.
  3. После этого исправления это работает:).

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

Ответы [ 3 ]

2 голосов
/ 21 сентября 2011

Я попытался создать контекст с этим кодом (я использую glew, поэтому я изменил заголовок на GL / glxew.h, но остальная часть этого кода осталась прежней)

Не делай этого.glxew используется для загрузки функций glx.Вам, вероятно, это не нужно.

Если вы хотите использовать GLEW, замените GL/gl.h на GL/glew.h оставьте GL/glx.h без изменений.

X11 и GLX довольно сложные,рассмотрите возможность использования sdl из glfw .

1 голос
/ 21 сентября 2011

GLEW не имеет ничего общего с созданием контекста. Это библиотека загрузки OpenGL; загружает функции OpenGL. Чтобы он функционировал, вам нужен контекст OpenGL.

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

1 голос
/ 21 сентября 2011

Просто дико догадываюсь, но могло ли быть так, что GLEW переопределил glXChooseFBConfig с чем-то нестандартным?Что-то в вызове glXChooseFBConfig разыменовывает неверный указатель.Поэтому либо glXChooseFBConfig сам по себе недопустим, либо fbcount настолько мал, либо visual_attribs неправильно завершен.

...