Я новичок в OpenGL и GLM. Я слежу за онлайн-учебниками в надежде найти тот, который работает. Один учебник говорит мне, чтобы использовать этот фрагмент кода:glm :: value_ptr имеет слишком много аргументов
//Define the screen width and height, and get the ratio
const float S_WIDTH = 800;
const float S_HEIGHT = 600;
const float S_RATIO = S_WIDTH/S_HEIGHT;
//In my shader "shdprog" get the uniform variable "ortho"'s location
GLuint orthoadr = glGetUniformLocation(shdprog, "ortho");
//Create a 4x4 matrix using glm
glm::mat4 ortho = glm::ortho(-S_RATIO, S_RATIO, -1.f, 1.f, -1.f, 1.f);
//Set the custom GLSL "ortho" uniform to the value of the glm::mat4 ortho
glUniform4fv(orthoadr, 1, GL_FALSE, glm::value_ptr(ortho)/*too many arguments in function call*/);
По какой-то причине, Visual Studio говорит мне, что glm::value_ptr()
имеет слишком много аргументов («слишком много аргументов в вызове функции»). Даже удаление всех аргументов ничего не меняет.
Является ли мой учебник неправильным? Или я что-то придумал?
Пожалуйста, отправьте сообщение [MCVE] вместе с точным сообщением об ошибке, которое вы получите. –
Извините. Это лучше? –
Это не ваша проблема, но 'const float S_RATIO = S_WIDTH/S_HEIGHT' даст значение 1. Вы делаете * integer * math, что приводит к целому числу, которое затем превращается в float. 800/600 равно 1, когда вы округлите до ближайшего целого числа. –