【发布时间】:2017-07-01 14:29:01
【问题描述】:
我想在调整大小时调用 openGL 函数以使游戏响应。
我有这个功能:
void Game::changeSize(int w, int h) {
if (h == 0)
h = 1;
float ratio = w * 1.0 / h;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glViewport(0, 0, w, h);
gluPerspective(45.0f, ratio, 0.1f, 100.0f);
glMatrixMode(GL_MODELVIEW);
}
我在主循环中用 changeSize(m_width, m_height) 调用它。 它设置视口,但在 framebuffer_size_callback GLFW 上我无法设置新的宽度和高度。
void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
Game game;
game.changeSize(width, height);
}
如何让它发挥作用?
谢谢
【问题讨论】:
-
为什么要在回调中创建一个新的
Game实例?这是某种形式的单例类吗? -
在另一个类中使用 void。
-
为什么投反对票?