![](/file/12653/www.nextcube.org.tar/www.nextcube.org/images/knowhow2.gif) ![](/file/12653/www.nextcube.org.tar/www.nextcube.org/images/pbank_logo.gif)
òµ·ºƒÃ: Pegasus | [òÈÚò©Õ] 2006-09-25 22:27:16 |
òÕȺÄÕóÕÚòÂòÜÔ, ò†ÚòµÌ òµ‚òÁ‹ºÓÞºƒ‹Œ†©òʦºËȺË⁄. òµ·Œ‡‡òÙÐ º§Îòµ Œ‡©òÈÚºËÚºÓ⁄òµ· Œ‡ÃòÄÔòÃÞ
ºÏÃòÝ òµÃ º®ÝòµÃòÈÚ ò×ȺË⁄Œ‡© òµŒ®ÀºÐÚòÖ· ò§Èº‹‚òµÃ ºÓÞº©⁄º·ÄºËȺË⁄. òÕú‹·ò“…º¡µ òÕÃòËÞºÊÔ º¶ÃŒ»ÚòÃÞ
ºË¦óÕ·ò£…òËÞº’· Œ®ÐòÁ‹óÕÚŒ†©òʦºËȺË⁄.
OSºÊÔ 10.4 Tiger, XcodeºÊÔ º†Ãò©…òµ· 2.1 ò×ĺËȺË⁄.
XcodeòÙÐòÃÞ GLUTŒ‡… OpenGL óÔú©Èò×ÃòÝͺÏà º“¤ºÑÐ óÏ‹óÕ¤òËÞò…ÞŒ¦‹òÜÔ.
Œ®ÃºË¤óÕÞ òÚÈò©Þ óÕÚºÁÚº¥… º§ÌºÓ⁄òÖ·òÃÞ ò»·óÌÌòµ…òµÃ óÕÚº’· º„̺ÓÞºÏà ò×ÚºÐÚŒ‡© òË⁄óÖÉóÛÔòµ…ºÏà º§ÌºÓ⁄òÖ·ò§ ºÊԺͮ,
òË⁄óÖÉóÛÔòµ…òµÃ òË⁄óÖÉóÕÚº©⁄Œ‡© óÕÚº’· òË⁄óÖÉòµ· ºÐÚò§ º¥… òÕÊòʦºËȺË⁄.
Œ•‚º×ÚòÃÞ, ºË⁄º¥‚ º®’º†Õ(òÈÚºÏÛòÞ…º¡Þ)òÞ…º¡Þ óîºfl‚ºÃÐòÙÐòÃÞ òÚ¦òÄÚòµÃ ò£…Œ‡© ò»·óÌÌòµ…óÕÚº’· òÙ›òËÞ
ò»·óÌÌòµ…ºÏà ò×ÚºÐÚŒ‡© òË⁄óÖÉóÛÔòµ…ºÏà ò×Ú º§ÌºÓ⁄òÖ·ò§ ºÊԺͮ òÙ›òËÞ òÕú×ÚòÛ Œ®Ûòµ òÙк÷‹Œ® ºÁ’ºËȺË⁄.
ò©ÞŒ® òÞȺÏÃòÜ®XP òÙÐòÃÞºÊÔ ò×Ú òÖŒ‡¦òµÃ òËÞò…®ºÊԺͮ, MacOSXòÙÐòÃÞº§Ì Œ‡©ò©ÃóÕÚºÃ⁄òÜÔ.
òÛ‚º¶ òÙÐòÃÞ òÁ‹òÜ’óÕ©ºÕÌ Œ® ò§ Œ‡© ºË⁄ºËȺÊÔ ºÄ‚óÊ‚º¶Àòµ òÚ⁄ò§À óÌÌòÝ̺¶Àòµ‚ºÍ® òÛÞ òÕȺÐÚºÊÔò§ ... òÕÃòËÞºÊÔ Œ‡©òÈÚº¶ÃºÓ⁄òµ·
òÃ⁄º“ÄóÕ·ò£…òËÞº’· Œ®ÐòÁ‹óÕÚŒ†©òʦºËȺË⁄.
$ cc -o exam01 exam01.c -framework GLUT -framework AGL -framework OpenGL
-framework Carbon -framework ApplicationServices
$./exam01
2006-09-25 21:38:47.547 exam01[1592] GLUT Fatal Error: internal error:
NSInternalInconsistencyException, reason: Error (1002) creating CGSWindow
ò®‚Œ‡©º¡Þ òÚÈò©ÞºÊÔ
#include <GLUT/glut.h>
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
void MyDisplay() {
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POLYGON);
glVertex3f(-0.5, -0.5, 0.0);
glVertex3f(0.5, -0.5, 0.0);
glVertex3f(0.5, 0.5, 0.0);
glVertex3f(-0.5, 0.5, 0.0);
glEnd();
glFlush();
}
int main() {
glutCreateWindow("OpenGL Drawing Example");
glutDisplayFunc(MyDisplay);
glutMainLoop();
return 0;
}
òÕÙ!!! includeòÙÐòÃÞ GLUT/glut.h, OpenGL/gl.h, OpenGL/glu.h ºÓ–òµ· òÕȺÁÚòÚ⁄ºÃ⁄òÜÔ. ò©Þ
óÌÌòÝ̺¶ÀòÙÐòÃÞ òÚ‹º©⁄òÃÞ Œ•‚º÷®Œ® ...^^;
|
glut óÕ¤òÈÚº¥… ò·ÈŒ‚®óÛÔóÕÚò§ òÕÊòÕÚŒ‚® ºÕ̺‹‚òÙÐ òÙк÷‹Œ® º®ÞòµóÕÚºÊÔ Œ†ÂòÞ…º¡Þ º‡·ò×ĺËȺË⁄. main óÕ¤òÈÚº¥… ºË⁄òµÌŒ‡… Œ®Ûòµ· òÈÚò©ÕóÕ· º‡·òÂòÜÔ...
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutCreateWindow("OpenGL Drawing Example");
glutDisplayFunc(MyDisplay);
glutMainLoop();
return 0;
}
PS. includeŒ® ò©ÞºÌ º¡Þ óÑÞòËÞºÐÚºÏú¡µ òÈÚò©ÕóÕÚòÚ òʦºËȺË⁄. òÖÑóÕ· º®Ôº×ͺËȺË⁄.
|
òÁ‹Œ®ÀóÚÕòµ·ºÃ⁄òÜÔ.
òÈÚò©ÕóÕÚòÂòÜÔ òÜÔº¡Þò… ^^;;
int main(int argc, char *argv[]) {
glutInit(&argc, argv);
glutInitWindowSize(256, 256);
glutInitWindowPosition(0, 0);
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
glutCreateWindow(argv[0]);
glutDisplayFunc(MyDisplay);
glutMainLoop();
return 0;
} |
º®ÕŒ‚®òÛúËÚòµÚ òÅÌòÊ⁄º¥… òÁ‹òÜ’óÕÚòËÞº’· òÁ‹Œ®ÀóÚÕòµÚ "óÀ‹Œ‚®òÛ òÞÃò„Ú"º¥… ºfl‚ºƒ‹ ò§ ò©ÕóÕ© òÈÚ ò×ȺÊÔ ò×¥ò©Ðòµ· ò×ÈòʦºËȺË⁄. Œ•‚º÷‹ºÁÚ ºÌ òË©òÙÐ preferences òÃ⁄ò©ÕŒ®Òòµ óÕ›òÂÀ º‹·òËÞºÐÚºËÈ ò£…òµÚóÕÚòËÞŒ‚® º®Ôº×ͺËȺË⁄. ò©ÞŒ® ò©ÞòÕÈóÕÞ òÅÌòÊ⁄òÙÐòÃÞòÛ Œ®Ûòµ· "óÀ‹Œ‚®òÛ òÞÃò„Ú" Œ®ÒòµÃ ò§ ò©ÕóÕÚò§ òÕÊòÞ…º’· ºÔÔóÏ·óÊ‚Œ®Òòµ òÕú×ÚòÛ Œ®Ûòµ· ºÐÚº’®, preference òÃ⁄ò©ÕŒ®Òòµ· ò×ȺÊÔ Œ†‰òÜ®òÙкÊÔ Œ•‚ òÂóÌÄŒ®Òòµ· ºÔÔóÏ·ºÓÞŒ®ÒòµÃ òÜ®òéóÕ’ºËȺË⁄...
glutInitWindowSize(300, 300);
glutInitWindowPosition(-1, -1);
|
º§Îòµ Œ· òË‹Œ‡… ºË¦º‡ Œ®ÐòÁ‹óÕ’ºËȺË⁄.^^
òÕ×òÞ…º¡ÞºÏà òµ·Œ‡‡òÙÐòÃÞ MacOSXòÙÐ Œ· óÕÞ ò©Õº‡·º¥… º§Îòµ· º‡·òÕÚòÞ…º’· ò¢ËŒ†©òʦºËȺË⁄. |
|