Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
423
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. // gcc -o test gltest.cpp -framework OpenGL -framework GLUT (MAC)
  2.  
  3. // gcc -0 test gltest.cpp -lGL -lGLU -lglut -lX11 (Linux)
  4.  
  5. // Need X server on windows.
  6. // on Linux use: ssh -X user@server.edu
  7. #ifdef __APPLE__
  8. #include <GLUT/glut.h>
  9. #include <OpenGL/gl.h>
  10. #include <OpenGL/glu.h>
  11. #else
  12. #include <GL/glut.h>
  13. #include <GL/gl.h>
  14. #endif
  15.  
  16. #define kWindowWidth 400
  17. #define kWindowHeight 300
  18.  
  19. GLvoid InitGL(void);
  20. GLvoid DrawGLScene(void);
  21. GLvoid ReSizeGLScene(int Width, int Height);
  22.  
  23. int main(int argc, char** argv)
  24. {
  25. glutInit(&argc, argv);
  26. glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
  27. glutInitWindowSize (kWindowWidth, kWindowHeight);
  28. glutInitWindowPosition (100, 100);
  29. glutCreateWindow (argv[0]);
  30.  
  31. InitGL();
  32.  
  33. glutDisplayFunc(DrawGLScene);
  34. glutReshapeFunc(ReSizeGLScene);
  35.  
  36. glutMainLoop();
  37.  
  38. return 0;
  39. }
  40.  
  41. GLvoid ReSizeGLScene(int width, int height)
  42. {
  43. if(height == 0)
  44. {
  45. height = 1;
  46. }
  47.  
  48. glViewport(0, 0, width, height);
  49.  
  50. glMatrixMode(GL_PROJECTION);
  51. glLoadIdentity();
  52. gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);
  53.  
  54. glMatrixMode(GL_MODELVIEW);
  55. glLoadIdentity();
  56. }
  57.  
  58. GLvoid InitGL(void)
  59. {
  60. glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
  61. glClearDepth(1.0f);
  62. glEnable(GL_DEPTH_TEST);
  63. }
  64.  
  65. GLvoid DrawGLScene(void)
  66. {
  67. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  68. glLoadIdentity();
  69.  
  70. glTranslatef(-1.5f, 0.0f, -6.0f);
  71. glColor3f(1.0, 0.0, 0.0);
  72.  
  73. glBegin(GL_TRIANGLES);
  74. glVertex3f( 0.0f, 1.0f, 0.0f);
  75. glVertex3f(-1.0f,-1.0f, 0.0f);
  76. glVertex3f( 1.0f,-1.0f, 0.0f);
  77. glEnd();
  78.  
  79. glTranslatef(1.0, 1.0, 1.0);
  80. glColor3f(0.0, 1.0, 0.0);
  81.  
  82. glBegin(GL_QUADS);
  83. glVertex3f(-1.0f, 1.0f, 0.0f);
  84. glVertex3f( 1.0f, 1.0f, 0.0f);
  85. glVertex3f( 1.0f,-1.0f, 0.0f);
  86. glVertex3f(-1.0f,-1.0f, 0.0f);
  87. glEnd();
  88.  
  89. glTranslatef(1.0, 1.0, 1.0);
  90. glColor3f(1.0, 1.0, 0.0);
  91.  
  92. glBegin(GL_POLYGON);
  93. glVertex3f( 0.0f, 0.0f, 0.0f);
  94. glVertex3f( 1.0f, 0.0f, 0.0f);
  95. glVertex3f( 2.0f,-1.0f, 0.0f);
  96. glVertex3f( 1.0f, 2.0f, 0.0f);
  97. glVertex3f( 0.0f, 2.0f, 0.0f);
  98. glVertex3f(-1.0f,-1.0f, 0.0f);
  99. glEnd();
  100.  
  101. glutSwapBuffers();
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement