我试图将转换应用到我的绘图的特定部分,只有在按下某个键时才会生效。 我使用glPushMatrix()然后进行转换,然后使用glPopMatrix()。 当我按下键时发生的变化是转换只进行一次,然后无论多少次按下键都没有任何反应。
这是我代码中的一个片段:
Word.run((context: Word.RequestContext) => {
var tables = context.document.body.tables;
tables.load("items");
return context.sync().then(() => {
var firstTableRows = tables.items[0].rows;
context.load(firstTableRows, "items");
context.sync().then(() => {
var header = firstTableRows.items[0];
header.load("values");
context.sync().then(() => {
header.values = ["MyValue"]
context.sync();
});
});
});
}).catch(errorHandler);
当我删除pushMatrix和popMatrix它可以工作,但它将转换应用到我的所有形状,这不是我想要的。 任何帮助将不胜感激..
[更新] 我试图在另外4台计算机上运行我的代码(一台macbook Air,一台macbook Pro - 我的精确副本和2台iMacs)并且它甚至不会在其中任何一台上运行,这可能是意味着问题在于我自己的macbook?! 我还复制了在macbook air,旋转部件和所有内容上完美运行的代码,当我在我的机器上运行时,我得到了与我自己的代码相同的令人失望的结果。
这是我的代码31JL
的heypasteit代码答案 0 :(得分:0)
可能存在的问题:
void drawShapes(){
glClear(GL_COLOR_BUFFER_BIT);
//setting my variables
// maybe you have forgot to set matrix mode correctly. make the projection and modelview
matrices correct.
glPushMatrix();
if (translateFlag) //this is set to true in the keyboard function
//probably your key hit function is not working properly (I can't say without looking at full code)
{
x += 10;
glTranslated(x, 0, 0);
translateFlag = false;
}
drawCircle();
glPopMatrix();
//more drawings
// you are using glFlush() ????? try swapbuffers. exact function depends
on the API you are using (GLUT \ GLFW etc.)
}