私は OpenGL の世界に足を踏み入れていますが、Vertexの宣言に問題があります。つまり、ウィンドウに対する相対的なサイズを座標として使用して頂点を正常に定義しただけです (0.25 は 500*0.25=125 を意味します)。これは直感的ではないようです。
相対値のない頂点をどのように定義しますか?
#include <GLUT/glut.h>
#include <stdlib.h>
void displayInit(void) {
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
}
void display(void) {
glClear(GL_COLOR_BUFFER_BIT);
// Select a drawing color
glColor3f(1.0, 0.0, 0.0);
// Draw a square
glBegin(GL_POLYGON);
glVertex2f(-0.25, -0.25); // start from -1/4 window w, -1/4 window h
glVertex2f(-0.25, 0.25); // add point 1/4 window h up from center
glVertex2f(0.25, 0.25);
glVertex2f(0.25, -0.25);
glEnd();
// Display the whole drawing on screen
glFlush();
}
int main(int argc, char **argv) {
// Initialize with a window
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(100, 100);
glutCreateWindow(argv[0]);
// Display first screen
displayInit();
// Enter the display loop
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
グラフィックはこんな感じ