我是opengl的新手。在我的代码中,我使用glPushMatrix()/ glPopMatrix()并在使用 glPushMatrix()/ glPopMatrix()后绘制我的图片。但它不起作用换句话说,我的鼠标控件不会改变变量nScale。
答案 0 :(得分:1)
您需要先应用转换发出您希望应用转换的绘制调用。您发布的代码具有以下顺序:
glPushMatrix();
glBegin(GL_QUADS);
...
glEnd();
glScalef(nScale, nScale, 1.0f);
glPopMatrix();
由于glScalef()
在绘制调用之后出现,因此不会影响它们。然后glPopMatrix()
调用将撤消glScalef()
调用指定的转换。由于glScalef()
和glPopMatrix()
之间没有平局调用,glScalef()
调用无效。
如果要将比例因子应用于渲染的四边形,则需要在绘制调用之前移动glScalef()
调用:
glPushMatrix();
glScalef(nScale, nScale, 1.0f);
glBegin(GL_QUADS);
...
glEnd();
glPopMatrix();