I'm new to OpenGL/GLUT using c. I want to implement a button that has a callback when a user clicks it. To understand that better, I have a simple program that draws a dot where the mouse is clicked. Here's the code
#include <freeglut.h>
GLint mousePressed = 0;
GLfloat mouseX, mouseY;
GLint windowHieght = 400;
GLint windowWidth = 500;
void myDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
if (mousePressed)
{
// draw the dot
glBegin(GL_POINTS);
// draw the vertex at that point
glVertex2f(mouseX, mouseY);
glEnd();
}
glFlush();
}
void myMouseButton(int button, int state, int x, int y)
{
if (button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN)
exit(0);
if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
{
mousePressed = 1;
mouseX = (GLfloat)x / (GLfloat)windowWidth;
mouseY = (GLfloat)windowHieght - (GLfloat)y;
mouseY = mouseY / (GLfloat)windowHieght;
glutPostRedisplay();
}
void main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB);
glutInitWindowSize(windowWidth, windowHieght);
glutInitWindowPosition(100, 150);
glutCreateWindow("dots");
gluOrtho2D(0.0, 1.0, 0.0, 1.0);
glutDisplayFunc(myDisplay);
glutMouseFunc(myMouseButton);
initializeGL();
glutMainLoop();
}
Everything works as expected, but when I change the ortho to (-1.0,1.0,-1.0,1.0), I don't get the same result. How can I get the same behavior?