summaryrefslogtreecommitdiffstats
path: root/progs
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2010-03-29 11:44:39 -0600
committerBrian Paul <[email protected]>2010-03-29 11:47:38 -0600
commit909f0b356eab04f03389ea36ebf0a83dbb930f5d (patch)
tree3035fdb7a13072d3a71a6fe85a42ad5774b142db /progs
parent8ca937fc3b1bf15c820a1c7d3bf0283a91bec72c (diff)
progs/glsl: improve the mouse drag/rotate code a little
Diffstat (limited to 'progs')
-rw-r--r--progs/glsl/fsraytrace.c8
-rw-r--r--progs/glsl/vsraytrace.c10
2 files changed, 7 insertions, 11 deletions
diff --git a/progs/glsl/fsraytrace.c b/progs/glsl/fsraytrace.c
index 357da67b9c6..392f01b200d 100644
--- a/progs/glsl/fsraytrace.c
+++ b/progs/glsl/fsraytrace.c
@@ -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();
diff --git a/progs/glsl/vsraytrace.c b/progs/glsl/vsraytrace.c
index 327d48b897e..ee4fe477619 100644
--- a/progs/glsl/vsraytrace.c
+++ b/progs/glsl/vsraytrace.c
@@ -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;