если glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0)
, значит мой код работает.Но если я перехожу на glOrtho(0.0, 800.0, 0.0, 600.0, -1.0, 1.0)
, тогда мой код не работает.Возможно, обратный вызов мыши не работает.Изменение glOrtho
является попыткой обратного вызова мыши?Я не знаю, в чем проблема.
Вот мой код:
GLfloat myVertices[10][2];
GLfloat Width = 800.0;
GLfloat Height = 600.0;
GLint count = 0;
void Mouse(int button, int state, GLint x, GLint y)
{
if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
{
myVertices[count][0] = x / Width;
myVertices[count][1] = (Height - y) / Height;
count++;
drawScene();
}
}
GLvoid drawScene()
{
GLint index;
glClearColor(1.0, 1.0, 1.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1, 0, 0);
glPointSize(3.0f);
glEnableClientState(GL_VERTEX_ARRAY);
if (count > 0)
{
for (index = 0; index < count; index++)
{
glRectf(myVertices[index][0], myVertices[index][1], myVertices[index][0] + 0.01, myVertices[index][1] + 0.05);
//glRectf(myVertices[index][0], myVertices[index][1], myVertices[index][0]+50, myVertices[index][1]+50);
}
}
glFlush();
}