瀏覽代碼

add menuentry

CHEN Yihui 5 年之前
父節點
當前提交
0ab7e29518
共有 1 個文件被更改,包括 23 次插入3 次删除
  1. 23 3
      main.cpp

+ 23 - 3
main.cpp

@@ -51,6 +51,11 @@ GLuint vColor;
 GLuint rquat_loc;
 GLuint move_loc;
 
+const std::string models_file[] = {
+  "bunny_color_HoleFill.obj",
+  "gargoyle_color.obj",
+  "v1_color.obj",
+};
 //----------------------------------------------------------------------------
 
 void load_model(const std::string &file_name) {
@@ -278,8 +283,6 @@ void stopMotion(int x, int y) {
 }
 
 void mouseButton(int button, int state, int x, int y) {
-  if (button == GLUT_RIGHT_BUTTON)
-    exit(0);
   if (button == GLUT_LEFT_BUTTON)
     switch (state) {
     case GLUT_DOWN:
@@ -303,6 +306,16 @@ void spinCube() {
     glutPostRedisplay();
 }
 
+void mymenu(int value) {
+  if (value == 3) {
+    exit(EXIT_SUCCESS);
+  }
+}
+
+void select(int value) {
+  init(models_file[value]);
+  glutPostRedisplay();
+}
 /*----------------------------------------------------------------------*/
 
 int main(int argc, char **argv) {
@@ -317,7 +330,14 @@ int main(int argc, char **argv) {
     std::cerr << "Failed to initialize GLEW ... exiting" << std::endl;
     exit(EXIT_FAILURE);
   }
-
+  int menu = glutCreateMenu(select);
+  glutAddMenuEntry("bunny_color_HoleFill.obj", 0);
+  glutAddMenuEntry("gargoyle_color.obj.obj", 1);
+  glutAddMenuEntry("v1_color.obj", 2);
+  glutCreateMenu(mymenu);
+  glutAddSubMenu("select model", menu);
+  glutAddMenuEntry("Exit", 3);
+  glutAttachMenu(GLUT_RIGHT_BUTTON);
   init("v1_color.obj");
   glutReshapeFunc(myReshape);
   glutIdleFunc(spinCube);