键盘输入无效的OpenGL转换

时间:2016-10-17 20:06:58

标签: c++ opengl transformation

我试图将转换应用到我的绘图的特定部分,只有在按下某个键时才会生效。 我使用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代码

1 个答案:

答案 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.)
}