progs/glsl: improve the mouse drag/rotate code a little

This commit is contained in:
Brian Paul 2010-03-29 11:44:39 -06:00
parent 8ca937fc3b
commit 909f0b356e
2 changed files with 7 additions and 11 deletions

View File

@ -333,6 +333,7 @@ drag(int x, int y)
yRot = (float)(y - WinHeight/2) / scale;
identity(rot);
rotate_xy(rot, yRot, xRot);
glutPostRedisplay();
}
}
@ -341,10 +342,7 @@ static
void
mouse(int button, int state, int x, int y)
{
if(state == GLUT_DOWN)
{
mouseGrabbed = !mouseGrabbed;
}
mouseGrabbed = (state == GLUT_DOWN);
}
@ -398,7 +396,7 @@ main(int argc, char *argv[])
glutKeyboardFunc(Key);
glutDisplayFunc(Draw);
glutMouseFunc(mouse);
glutPassiveMotionFunc(drag);
glutMotionFunc(drag);
glutIdleFunc(Draw);
Init();
glutMainLoop();

View File

@ -31,7 +31,7 @@
static int Win;
static int WinWidth = 256, WinHeight = 256;
static int mouseGrabbed = 0;
static GLboolean mouseGrabbed = GL_FALSE;
static GLuint vertShader;
static GLuint program;
float rot[9] = {1,0,0, 0,1,0, 0,0,1};
@ -323,6 +323,7 @@ drag(int x, int y)
yRot = (float)(y - WinHeight/2) / scale;
identity(rot);
rotate_xy(rot, yRot, xRot);
glutPostRedisplay();
}
}
@ -331,10 +332,7 @@ static
void
mouse(int button, int state, int x, int y)
{
if(state == GLUT_DOWN)
{
mouseGrabbed = !mouseGrabbed;
}
mouseGrabbed = (state == GLUT_DOWN);
}
@ -388,7 +386,7 @@ main(int argc, char *argv[])
glutDisplayFunc(Draw);
glutIdleFunc(Draw);
glutMouseFunc(mouse);
glutPassiveMotionFunc(drag);
glutMotionFunc(drag);
Init();
glutMainLoop();
return 0;