Не могу связать шейдеры с программным объектом в OpenGL, не могу отлаживатьC++

Программы на C++. Форум разработчиков
Ответить
Гость
 Не могу связать шейдеры с программным объектом в OpenGL, не могу отлаживать

Сообщение Гость »


Я присоединяю вершинный и фрагментный шейдер к программному объекту, а затем пытаюсь связать указанную программу. GL_LINK_STATUS возвращает false. Я проверяю информационный журнал, там куча бессмысленных символов. Я проверяю GL_INFO_LOG_LENGTH, он равен 0. Как мне исправить эту ситуацию?

//это конец моей функции LoadBasicShaders glAttachShader (программа, vertShader); glAttachShader (программа, fragShader); glLinkProgram (программа); статус GLint; glGetProgramiv(программа, GL_LINK_STATUS, &статус); если (статус == GL_FALSE) { Глинт logLength = 0; glGetProgramiv (программа, GL_INFO_LOG_LENGTH, &logLength); std::vector log(logLength + 1); glGetProgramInfoLog(программа, logLength, &logLength, &log[0]); fprintf(stderr, "%s\n\n", log); //logLength возвращает 0, log возвращает, казалось бы, случайные символы return -3;//только мой код ошибки } Мои шейдеры самые простые из возможных, поскольку я только начинаю. Вот вершинный шейдер:

#версия 330 макет (местоположение = 0) в позиции vec4; пустая функция() { gl_Position = позиция; } А вот фрагментный шейдер:

#версия 330 из vec4 outputColor; пустая функция() { выходной цвет = vec4(1.0, 1.0, 1.0, 1.0); } Я использую GLFW для создания окна OpenGL и GLEW для загрузки функций:
if (!glfwInit()) {/*проверка ошибок*/} окно = glfwCreateWindow(800, 600, "Swash", NULL, NULL); если (!окно) {/*дополнительная проверка ошибок*/} glfwMakeContextCurrent (окно); glfwSwapInterval (1); glfwSetKeyCallback (окно, key_callback); если (glewInit() != GLEW_OK) {/*ты угадал*/} //до этого момента не вызывайте ничего, что связано с нестандартными функциями OpenGL GLuint шейдерПрограмма; intshaderLoadResult = LoadBasicShaders(shaderProgram, "../res/vert.shader", "../res/frag.shader");
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»