glm::value_ptr 参数太多
glm::value_ptr has too many arguments
我是 OpenGL 和 GLM 的新手。我一直在关注在线教程,希望找到一个有效的教程。一个教程告诉我使用这个片段:
//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()
的参数太多 ("too many arguments in function call")。即使删除所有参数也不会造成任何改变。
是我的教程错了吗?还是我打错了什么?
glUniform4fv
采用 三个 参数。您正在寻找的函数显然是 glUniformMatrix4fv
,它需要四个。
我是 OpenGL 和 GLM 的新手。我一直在关注在线教程,希望找到一个有效的教程。一个教程告诉我使用这个片段:
//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()
的参数太多 ("too many arguments in function call")。即使删除所有参数也不会造成任何改变。
是我的教程错了吗?还是我打错了什么?
glUniform4fv
采用 三个 参数。您正在寻找的函数显然是 glUniformMatrix4fv
,它需要四个。