Не удается скомпилировать шейдер без сообщения об ошибке (привязки Haskell OpenGL) - PullRequest
1 голос
/ 06 октября 2019

Я пытаюсь нарисовать сферу, используя привязки Haskell GLUT и OpenGL (по сути, прямой перевод обычных типов и функций OpenGL). Я следовал примеру , написанному Свеном Панне (автором привязок OpenGL) при написании кода, и поскольку его код загрузки шейдеров поддерживал протоколирование ошибок, я просто решил скопировать его поверхв мой проект. Однако, когда я пытаюсь скомпилировать мой вершинный шейдер, компиляция завершается неудачно с сообщением «ошибка пользователя (журнал компиляции:)» и без фактического журнала компиляции.

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

Мой вершинный шейдер выглядит так:

#version 430 core

layout(location = 0) in vec3 vPosition;

out vec4 color;

void main()
{
   gl_Position = vec4(vPosition, 1.0);
   color = vec4(1.0f, 0.5f, 0.2f, 1.0f);
}

иесли кому-то интересно, мой фрагментный шейдер выглядит так:

#version 430 core

in vec4 color;
out vec4 fColor;

void main()
{
   fColor = color;
}

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

1 Ответ

1 голос
/ 06 октября 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...