Я программирую код, который когда пользователь нажимает на экран. Он отмечает точку и когда он продолжает нажимать на другие точки на экране. Это будет связывать точки с линиями.Мышь, меняющая экранную грань в OpenGL
Я не знаю, почему, но я работаю с двумя разными экранами. Когда я нажимаю мышью, он отмечает точку на экране, которую я вижу только тогда, когда я нажимаю левую кнопку мыши, и когда кнопка не нажата, я вижу чистый экран.
Мой код, который отмечает точки и соединить их с линиями:
void exerciseThree(int x, int y){
write("Exercise Three", -5, 18);
float cx = 0, cy = 0;
if(x != 0 && y != 0 && isFinished == false){
glPushMatrix();
glPointSize(6.0f);
//Draw the points
glBegin(GL_POINTS);
cx = ((x * (maxx - minx))/width) + minx;
cy = (((height - y) * (maxy - miny))/height) + miny;
glVertex2f(cx , cy);
glEnd();
if(lastCx != 0 && lastCy != 0){
glBegin(GL_LINE_STRIP);
glVertex2f(lastCx , lastCy);
glVertex2f(cx , cy);
glEnd();
}
lastCx = cx;
lastCy = cy;
glPopMatrix();
}
write("Press 0 (zero) to come back.", -10, -18);
}
Функция мыши:
void mouse(int button, int state, int x, int y){
switch(button){
case GLUT_LEFT_BUTTON:
if(option == 3){
exerciseThree(x, y);
projecao();
glutSwapBuffers();
}
break;
}
}
Я знаю, что я должен обращаться с GLUT_DOWN и GLUT_UP мыши, но делает существует способ работы только с одним экраном?
Я заметил, что экран, который появляется, когда левая кнопка нажата последний экран, я был –