我正在创建一个 OpenGL 项目,该项目在单击 OpenGL 视图时绘制一个正方形。
这是我在单击鼠标时创建正方形的逻辑:
if (mouseXPosition != 0 && mouseYPosition != 0 ){
glBegin(GL_POLYGON);
glVertex2f(mouseXPosition, (mouseYPosition + 30));
glVertex2f((mouseXPosition + 30), mouseYPosition);
glVertex2f(mouseXPosition, (mouseYPosition - 30));
glVertex2f((mouseXPosition) -30, mouseYPosition);
glEnd();
}
我认为这里不需要我的其余代码,但如果需要,我会添加它。mouseXPosition 和 mouseYPostion 只是包含 OpenGL 视图内位置的浮点数。每当单击视图以显示新位置时,它们都会更改。我知道这些位置是正确的,因为每当单击视图时我都会将它们打印出来。
当我运行我的代码时,没有编译错误,但是单击鼠标时没有绘制正方形。在 OpenGL 的绘图中是否有禁止 if 语句的东西?如果没有,有人可以向我解释我做错了什么。
添加信息:
我用于这个项目的窗口系统是 Qt,我认为这不会影响这个项目的结果。对于那些 Qt 大师:我在设置变量时确实调用了 updateGL(),因此 OpenGL 内部的变量应该是最新的。