Nếu bạn đang sử dụng OSX, tôi khuyên bạn nên sử dụng XCode và sử dụng NSOpenGLView. This sách có rất nhiều tài liệu liên quan đến một số API bạn có thể sử dụng. GLUT chắc chắn là cách nhanh nhất để nắm bắt và thiết lập.
Nếu bạn muốn sử dụng dư thừa và biên dịch tại nhà ga bạn có thể thử này:
#include <GLUT/glut.h>
void display(void) {
//clear white, draw with black
glClearColor(255, 255, 255, 0);
glColor3d(0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//this draws a square using vertices
glBegin(GL_QUADS);
glVertex2i(0, 0);
glVertex2i(0, 128);
glVertex2i(128, 128);
glVertex2i(128, 0);
glEnd();
//a more useful helper
glRecti(200, 200, 250, 250);
glutSwapBuffers();
}
void reshape(int width, int height) {
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//set the coordinate system, with the origin in the top left
gluOrtho2D(0, width, height, 0);
glMatrixMode(GL_MODELVIEW);
}
void idle(void) {
glutPostRedisplay();
}
int main(int argc, char *argv) {
//a basic set up...
glutInit(&argc, &argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(640, 480);
//create the window, the argument is the title
glutCreateWindow("GLUT program");
//pass the callbacks
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutIdleFunc(idle);
glutMainLoop();
//we never get here because glutMainLoop() is an infinite loop
return 0;
}
và sau đó biên dịch với:
gcc /System/Library/Frameworks/GLUT.framework/GLUT /System/Library/Frameworks/OpenGL.framework/OpenGL main.c -o myGlutApp
Điều đó sẽ làm các trick. Tôi sẽ nói mặc dù không cố gắng và chống lại XCode làm việc với nó, nó sẽ giúp bạn tiết kiệm thời gian và thất vọng.
Tôi đã thử phương pháp của bạn trong thiết bị đầu cuối nhưng nhận: hello.c: 47: 21: lỗi: GL/glut.h: Không có tệp hoặc thư mục nào như vậy – clwen
hmmm, tôi đang chạy 10.6 (báo tuyết) và hoạt động. bạn có thể xác minh rằng bạn có GLUT trên hệ thống của mình không? bạn đã cài đặt các công cụ phát triển của XCode và Apple chưa? – whg
Nó hoạt động sau khi tôi thay đổi đường dẫn bao gồm từ "GL/glut.h" thành "GLUT/glut.h". Cảm ơn rất nhiều! – clwen