2.B] Explain the operations for displaying a picture using GLUT.
Answer:
Here’s a complete example in C++ that demonstrates how to display a square using GLUT:
#include <GL/glut.h>
// Function to display the square
void display() {
// Clear the screen
glClear(GL_COLOR_BUFFER_BIT);
// Set the color of the square (red)
glColor3f(1.0, 0.0, 0.0);
// Begin drawing a polygon (square)
glBegin(GL_POLYGON);
// Specify the vertices of the square
glVertex2f(-0.5f, -0.5f); // Bottom left
glVertex2f(0.5f, -0.5f); // Bottom right
glVertex2f(0.5f, 0.5f); // Top right
glVertex2f(-0.5f, 0.5f); // Top left
// End drawing
glEnd();
// Flush the graphics pipeline
glFlush();
}
// Main function
int main(int argc, char** argv) {
// Initialize GLUT
glutInit(&argc, argv);
// Set the display mode (single buffer and RGB color)
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
// Set the window size
glutInitWindowSize(500, 500);
// Set the window position
glutInitWindowPosition(100, 100);
// Create the window with a title
glutCreateWindow("Display a Square");
// Set the background color to white
glClearColor(1.0, 1.0, 1.0, 1.0);
// Set up the projection (orthographic 2D)
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1.0, 1.0, -1.0, 1.0);
// Register the display callback function
glutDisplayFunc(display);
// Enter the GLUT event-processing loop
glutMainLoop();
return 0;
}Explanation:
Include GLUT Header:
#include <GL/glut.h>: This includes the GLUT library needed to create windows, handle user input, and display graphics.
Display Function:
- The
display()function contains the code to render a square. glClear(GL_COLOR_BUFFER_BIT): Clears the screen before drawing.glColor3f(1.0, 0.0, 0.0): Sets the color of the square to red.glBegin(GL_POLYGON)andglEnd(): These functions define the vertices of the square.glFlush(): Ensures that all OpenGL commands are executed.
Main Function:
- Initialization:
glutInit(&argc, argv);initializes GLUT. - Display Mode:
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);sets the display mode to single buffering with RGB color. - Window Setup:
glutInitWindowSize()andglutInitWindowPosition()define the size and position of the window. - Create Window:
glutCreateWindow("Display a Square");creates a window with the specified title. - Background Color:
glClearColor(1.0, 1.0, 1.0, 1.0);sets the background color to white. - Projection:
glMatrixMode(GL_PROJECTION);,glLoadIdentity();, andgluOrtho2D()set up a simple orthographic projection that allows you to specify coordinates in 2D. - Display Callback:
glutDisplayFunc(display);registers thedisplay()function as the callback for rendering. - Main Loop:
glutMainLoop();starts the GLUT event loop, which waits for events like window resizing or redrawing and calls the appropriate callback functions.
