zoukankan      html  css  js  c++  java
  • OpenGL中使用glutDisplayFunc(myDisplay),myDisplay里面的代码不显示

    使用了OpenGL自带的glut库来做窗口,使用了

    glutMouseFunc(myMouse);
    glutDisplayFunc(myDisplay);
    glutReshapeFunc(myReshape);

    myMouse函数

    myMouse
     1 void myMouse(int button,int state,int x,int y)
     2 {
     3     if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
     4     {
     5         if(count<3)
     6         {
     7             drawDot(x,screenHeight-y);
     8             pt[count].x = x;
     9             pt[count].y = screenHeight - y;
    10             count++;
    11             glFlush();
    12         }
    13         else
    14         {
    15             count = 0;
    16             drawDot(x,screenHeight-y);
    17             pt[count].x = x;
    18             pt[count].y = screenHeight - y;
    19             count++;
    20             glFlush();
    21         }
    22     }
    23     else if (button ==GLUT_LEFT_BUTTON && state == GLUT_UP)
    24     {
    25         if (count==3)
    26         {
    27             
    28             glFlush();
    29         }
    30 
    31     }
    32 }

    其中的drawdot是画点函数。此时glut窗口上会绘制出点,但如果把这里的drawdot去掉,加在myDisplay函数中,却不绘制点,奇怪!必须刷新下,才绘制点。

    pt[3], count都是全局静态变量。

    myDisplay函数

    myDisplay
     1 void myDisplay(void)
     2 {
     3     glClear(GL_COLOR_BUFFER_BIT);
     4 
     5     if (count!=0)
     6     {
     7         for (int i=0;i<count;i++)
     8         {
     9             drawDot(pt[i].x,pt[i].y);
    10         }
    11     }
    12 
    13     glFlush();
    14 }
  • 相关阅读:
    FreeMarker缓存处理
    freemarker入门实例与源码研究准备工作
    Freemarker常用技巧(二)
    Freemarker常用技巧(一)
    Hessian与Spring整合
    Hessian学习
    数组常见的面试题
    关于排序的实现
    Redis与Memcache的区别
    JDBC编程步骤
  • 原文地址:https://www.cnblogs.com/infiniti/p/2825208.html
Copyright © 2011-2022 走看看