Пример #1
0
static void
CleanUp(void)
{
   glDeleteFramebuffersEXT(1, &MyFB);
   glDeleteRenderbuffersEXT(1, &MyRB);
   assert(!glIsFramebufferEXT(MyFB));
   assert(!glIsRenderbufferEXT(MyRB));
   glutDestroyWindow(Win);
   exit(0);
}
Пример #2
0
int GlutApp::keyPressed(unsigned char key)
{
	// for escape key ...
	if (key == 27) {
		die = 1;
		glutDestroyWindow(window);
	}else{
		std::cout << "key pressed: " << key << std::endl;
	}
}
Пример #3
0
int main(int argc, char** argv) 
{
    int ret = 1;
    int effect;
    GLenum res;
    int window;
    
    if (argc != 3) {
        printf("Usage: %s <effect file> <program name>\n", argv[0]);
        goto error_exit;
    }
    
    glutInit(&argc, argv);

    window = glutCreateWindow("foo");
     
    res = glewInit();
    
    if (res != GLEW_OK) {
        printf("Error initializing glew: %s\n", glewGetErrorString(res));
        goto glew_error;
    }
    
    effect = glfxGenEffect();
    
    char log[10000];
    
    if (!glfxParseEffectFromFile(effect, argv[1])) {
        printf("Error creating effect:\n");
        glfxGetEffectLog(effect, log, sizeof(log));
        printf("%s\n", log);
        goto parse_error;
    }
    
    if (glfxCompileProgram(effect, argv[2]) < 0) {
        printf("Error compiling program '%s':\n", argv[2]);
        glfxGetEffectLog(effect, log, sizeof(log));
        printf("%s\n", log);
        goto compile_error;
    }
    
    printf("Compiled successfully\n");
             
    ret = 0;
    
compile_error:    
parse_error:
    glfxDeleteEffect(effect);

glew_error:    
    glutDestroyWindow(window);

error_exit:    
    return ret;
}
// Keyboard callback function for OpenGL (GLUT)
void keyboard(unsigned char key, int /*x*/, int /*y*/)
{
    switch (key)
    {
        case 27:
            #if defined (__APPLE__) || defined(MACOSX)
                exit(EXIT_SUCCESS);
            #else
                glutDestroyWindow(glutGetWindow());
                return;
            #endif
            break;

        case 'a':
        case 'A':
            g_bInteractive = !g_bInteractive;
            printf("> Animation is %s\n", !g_bInteractive ? "ON" : "OFF");
            break;

        case '=':
        case '+':
            if (filter_radius < (int)width-1 &&
                filter_radius < (int)height-1)
            {
                filter_radius++;
            }

            break;

        case '-':
            if (filter_radius > 1)
            {
                filter_radius--;
            }

            break;

        case ']':
            iterations++;
            break;

        case '[':
            if (iterations>1)
            {
                iterations--;
            }

            break;

        default:
            break;
    }

    printf("radius = %d, iterations = %d\n", filter_radius, iterations);
}
Пример #5
0
 void figure_t_t::keyboard(unsigned char key, int x, int y) {
     switch(key) {
         case 'q':
             glutDestroyWindow(window_number);
             break;
         case 'p':
             print();
             break;
     }
     if(keyboard_callback) keyboard_callback(key, x, y);
 }
Пример #6
0
void Cleanup( int errorCode, bool bExit )
{
	if (g_iGLUTWindowHandle != 0)
	{
		glutDestroyWindow(g_iGLUTWindowHandle);
		g_iGLUTWindowHandle = 0;
	}

	if (bExit)
		std::exit(errorCode);
}
Пример #7
0
void GLUTStop(void)
{
  // Destroy window 
  glutDestroyWindow(GLUTwindow);

  // Delete scene
  delete scene;

  // Exit
  exit(0);
}
Пример #8
0
static void
CleanUp(void)
{
   glDeleteShader(FragShader);
   glDeleteShader(VertShader);
   glDeleteShader(GeomShader);
   glDeleteProgram(Program);
   glDeleteVertexArrays(1, &vao);
   glDeleteBuffers(1, &vbo);
   glutDestroyWindow(Win);
}
Пример #9
0
static void keyPressed(unsigned char key, int x, int y) 
{	
	if(key==ESCAPE) 
	{ 			
		on_exit_program();
		
		glutDestroyWindow(window); 			
		
		exit(0);                   
	}
}
Пример #10
0
void kbd(unsigned char key, int x, int y)
{
    switch((char)key) {
    case 'q':
    case 27:
        glutDestroyWindow(wd);
        exit(0);
    default:
        break;
    }
}
Пример #11
0
void exitScene()
{
    std::cout << "Exiting scene..." << std::endl;

    // Close window
    glutDestroyWindow(windowId);

    // Free any allocated memory
    // Exit program
    exit(0);
}
Пример #12
0
static void Key(unsigned char key, int x, int y)
{
   switch (key) {
      case 27:
         glutDestroyWindow(win);
         exit(0);
      default:
         glutPostRedisplay();
         return;
   }
}
Пример #13
0
/************************************************************
This section handles the menu selection
**************************************************************/
void menu(int value)
{
  if(value == 0)
  {
    glutDestroyWindow(win);
    exit(0);
  }else{
    primitive=value;
  }   
  glutPostRedisplay();													// you would want to redraw now
}
Пример #14
0
void ScreenSaver::exitter() {
	for(int i = 0; i<NUM_BALLS; i++) {
		pthread_mutex_lock(&vecMutexThreadTerminate[i]);
			threadTerminate[i] = true;
		pthread_mutex_unlock(&vecMutexThreadTerminate[i]);
	}
	
	glUserInterface->close();
	glutDestroyWindow(windowID);
	killSkybox();
}
Пример #15
0
static void
CleanUp(void)
{
   glDeleteFramebuffersEXT(1, &MyFB);

   glDeleteTextures(1, &TexObj);

   glutDestroyWindow(Win);

   exit(0);
}
Пример #16
0
void
menu2(int value)
{
  printf("menu item selected: %d\n", value);
  if (value != 46) {
    printf("FAIL: time6 expected 45\n");
    exit(1);
  }
  glutDestroyMenu(glutGetMenu());
  glutDestroyWindow(glutGetWindow());
  glutTimerFunc(1000, time7, 7);
}
Пример #17
0
int main(int argc, char** argv)
{
	glutInit(&argc, argv);

	int width = 500;
	int height = 500;
	unsigned int displayMode = GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH | GLUT_STENCIL;
	displayMode = defaults(displayMode, width, height);

	glutInitDisplayMode (displayMode);
	glutInitContextVersion (3, 3);
	glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
	glutInitContextProfile(GLUT_CORE_PROFILE);
#ifdef DEBUG
	glutInitContextFlags(GLUT_DEBUG);
#endif
	glutInitWindowSize (width, height); 
	glutInitWindowPosition (300, 200);
	int window = glutCreateWindow (argv[0]);

	glload::LoadFunctions();

	glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_CONTINUE_EXECUTION);

	if(!glload::IsVersionGEQ(3, 3))
	{
		printf("Your OpenGL version is %i, %i. You must have at least OpenGL 3.3 to run this tutorial.\n",
			glload::GetMajorVersion(), glload::GetMinorVersion());
		glutDestroyWindow(window);
		return 0;
	}

	if(glext_ARB_debug_output)
	{
		glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB);
		glDebugMessageCallbackARB(DebugFunc, (void*)15);
	}

	init();

	UserListener listener;
	Leap::Controller controller;
	controller.addListener(listener);

	glutDisplayFunc(display); 
	glutReshapeFunc(reshape);
	glutKeyboardFunc(keyboard);
	glutMainLoop();

	controller.removeListener(listener);

	return 0;
}
void keyboard(unsigned char key, int /*x*/, int /*y*/)
{
    char temp[256];

    switch (key)
    {
        case 27:
        case 'q':
        case 'Q':
            printf("Shutting down...\n");
            #if defined (__APPLE__) || defined(MACOSX)
                exit(EXIT_SUCCESS);
            #else
                glutDestroyWindow(glutGetWindow());
                return;
            #endif
            break;

        case '-':
            imageScale -= 0.1f;
            printf("brightness = %4.2f\n", imageScale);
            break;

        case '=':
            imageScale += 0.1f;
            printf("brightness = %4.2f\n", imageScale);
            break;

        case 'i':
        case 'I':
            g_SobelDisplayMode = SOBELDISPLAY_IMAGE;
            sprintf(temp, "CUDA Edge Detection (%s)", filterMode[g_SobelDisplayMode]);
            glutSetWindowTitle(temp);
            break;

        case 's':
        case 'S':
            g_SobelDisplayMode = SOBELDISPLAY_SOBELSHARED;
            sprintf(temp, "CUDA Edge Detection (%s)", filterMode[g_SobelDisplayMode]);
            glutSetWindowTitle(temp);
            break;

        case 't':
        case 'T':
            g_SobelDisplayMode = SOBELDISPLAY_SOBELTEX;
            sprintf(temp, "CUDA Edge Detection (%s)", filterMode[g_SobelDisplayMode]);
            glutSetWindowTitle(temp);
            break;

        default:
            break;
    }
}
Пример #19
0
void keyboard(unsigned char key, int x, int y)
{
	switch (key)
	{
		case VK_ESCAPE:
			glutDestroyWindow(winID);
			exit(0);
			break;
        default:
            current_assignment.handleInput(key);
	}
}
Пример #20
0
/* Fonction de gestion du clavier */
void keyPressed(unsigned char key, int x, int y) 
{

    if (key == ESCAPE) 
    {
	/* Eteindre la fenêtre */
	glutDestroyWindow(window); 

	/* Sortire du programme */
	exit(0);                   
    }
}
Пример #21
0
/* The function called whenever a normal key is pressed. */
void keyPressed(unsigned char key, int x, int y)
{

	switch (key) {
	case 27: // kill everything.
		/* shut down our window */
		glutDestroyWindow(window);
		/* exit the program...normal termination. */
		exit(1);
		break; // redundant.

	case 'a':
		drawAxis = !drawAxis;
		break;
	case 's':
		drawSine = !drawSine;
		break;
	case 'h':
	case 'H':
		drawHead = !drawHead;
		break;

	case 'd':
	case 'D':
		drawBackground = !drawBackground;
		break;
	case 'b':
	case 'B':
		blending = !blending;
		break;
	case 'n':
	case 'N':
		drawNormals = !drawNormals;
		break;
	case 'i':
	case 'I':
		initialGuess = !initialGuess;
		break;
	case 76:
	case 108: // switch the lighting
		drawLight = !drawLight;
		if (!drawLight) {
			glDisable(GL_LIGHTING);
		} else {
			glEnable(GL_LIGHTING);
		}
		break;


	default:
		break;
	}
}
CUTBoolean initGL(int argc, char **argv)
{
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
  glutInitWindowSize(10, 10);
  int bla = glutCreateWindow("Cuda GL Interop (VBO)");
  glutDisplayFunc(dumm_display);

  // initialize necessary OpenGL extensions
  glewInit();
  if (! glewIsSupported("GL_VERSION_2_0 ")) {
    fprintf(stderr, "ERROR: Support for necessary OpenGL extensions missing.");
    fflush(stderr);
    return CUTFalse;
  }

  // default initialization
  glClearColor(0.0, 0.0, 0.0, 1.0);
  glDisable(GL_DEPTH_TEST);

  // viewport
  glViewport(0, 0, 10, 10);

  // projection
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  gluPerspective(60.0, (GLfloat)10 / (GLfloat) 10, 0.1, 10.0);

  CUT_CHECK_ERROR_GL();

  // start gui for the main application
  //cudaError_t error = cudaGLSetGLDevice(0);
  //cutilGLDeviceInit(argc, argv);
  int deviceCount;
  cutilSafeCallNoSync(cudaGetDeviceCount(&deviceCount));
  if (deviceCount == 0) {
    fprintf(stderr, "CUTIL CUDA error: no devices supporting CUDA.\n");
    exit(-1);
  }
  int dev = 0;
  cudaDeviceProp deviceProp;
  cutilSafeCallNoSync(cudaGetDeviceProperties(&deviceProp, dev));
  if (deviceProp.major < 1) {
    fprintf(stderr, "cutil error: device does not support CUDA.\n");
    exit(-1);
  }
  printf("gpu=%s\n", deviceProp.name);
  cutilSafeCall(cudaGLSetGLDevice(dev));

  glutDestroyWindow(bla);

  return CUTTrue;
}
Пример #23
0
static void
key(unsigned char key, int x, int y)
{
   switch (key) {
   case 27:
      glutDestroyWindow(win);
      exit(0);
      break;

   case 'a':
      v += 0.0005;
      break;
   case 'z':
      v -= 0.0005;
      break;

   case 'j':
      joyactive = (!joyactive);
      break;
   case 'h':
      help = (!help);
      break;
   case 'f':
      fog = (!fog);
      break;
   case 's':
      shadows = !shadows;
      break;
   case 'R':
      eject_r -= 0.03;
      break;
   case 'r':
      eject_r += 0.03;
      break;
   case 't':
      ridtri += 0.005;
      break;
   case 'T':
      ridtri -= 0.005;
      break;
#ifdef XMESA
   case ' ':
      XMesaSetFXmode(fullscreen ? XMESA_FX_FULLSCREEN : XMESA_FX_WINDOW);
      fullscreen = (!fullscreen);
      break;
#endif
   case 'n':
      NiceFog = !NiceFog;
      printf("NiceFog %d\n", NiceFog);
      break;
   }
   glutPostRedisplay();
}
Пример #24
0
void idle()
{
	scale *= 0.75;

	if (scale < 1e-14) {
		glFinish();
		glutDestroyWindow(gwin);
		return;
	}

	set_texture();
}
Пример #25
0
void kbd(unsigned char key, int x, int y)
{
    // escape
    if (key == 27) {
        glutDestroyWindow(wd);
        exit(0);
    }
    
    glutPostRedisplay();

    return;
}
Пример #26
0
static void
Key(unsigned char key, int x, int y)
{
   const GLfloat step = 3.0;
   (void) x;
   (void) y;
   switch (key) {
   case 'a':
   case ' ':
      Anim = !Anim;
      if (Anim)
         glutIdleFunc(Idle);
      else
         glutIdleFunc(NULL);
      break;
   case 'b':
      Blend = !Blend;
      break;
   case 's':
      Scale /= 1.1;
      break;
   case 'S':
      Scale *= 1.1;
      break;
   case 'f':
      Filter = (Filter + 1) % NUM_FILTERS;
      SetTexParams();
      break;      
   case 'r':
      Randomize();
      break;
#if TEST_CLAMP
   case 'c':
      Clamp = !Clamp;
      SetTexParams();
      break;
#endif
   case 'z':
      Zrot -= step;
      break;
   case 'Z':
      Zrot += step;
      break;
   case 27:
      glutDestroyWindow(Win);
      exit(0);
      break;
   }

   PrintState();

   glutPostRedisplay();
}
Пример #27
0
static void Key( unsigned char key, int x, int y )
{
   (void) x;
   (void) y;
   switch (key) {
      case 27:
         glutDestroyWindow(Window);
         exit(0);
         break;
   }
   glutPostRedisplay();
}
/*-----------------------------------------------------------------------------------------------
Description:
    Program start and end.
Parameters:
    argc    The number of strings in argv.
    argv    A pointer to an array of null-terminated, C-style strings.
Returns:
    0 if program ended well, which it always does or it crashes outright, so returning 0 is fine
Exception:  Safe
Creator:    John Cox (2-13-2016)
-----------------------------------------------------------------------------------------------*/
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);

    int width = 500;
    int height = 500;
    unsigned int displayMode = GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH | GLUT_STENCIL;
    displayMode = Defaults(displayMode, width, height);

    glutInitDisplayMode(displayMode);
    glutInitContextVersion(4, 4);
    glutInitContextProfile(GLUT_CORE_PROFILE);

    // enable this for automatic message reporting (see OpenGlErrorHandling.cpp)
#define DEBUG
#ifdef DEBUG
    glutInitContextFlags(GLUT_DEBUG);
#endif

    glutInitWindowSize(width, height);
    glutInitWindowPosition(300, 200);
    int window = glutCreateWindow(argv[0]);

    glload::LoadTest glLoadGood = glload::LoadFunctions();
    // ??check return value??

    glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_CONTINUE_EXECUTION);

    if (!glload::IsVersionGEQ(3, 3))
    {
        printf("Your OpenGL version is %i, %i. You must have at least OpenGL 3.3 to run this tutorial.\n",
            glload::GetMajorVersion(), glload::GetMinorVersion());
        glutDestroyWindow(window);
        return 0;
    }

    if (glext_ARB_debug_output)
    {
        glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB);
        glDebugMessageCallbackARB(DebugFunc, (void*)15);
    }

    Init();

    glutDisplayFunc(Display);
    glutReshapeFunc(Reshape);
    glutKeyboardFunc(Keyboard);
    glutMainLoop();

    CleanupAll();

    return 0;
}
Пример #29
0
GLvoid GLKeyDown(unsigned char key, int x, int y){
	if(key==' ')
	{
		if(test_hits())
		{
			glutPostRedisplay();
		}
	}
	if(key=='w')
	{
		vec4 pos = characters[TARGET_ID]->transform*vec4(0,0,0);
		double dist = pos.length();
		if(dist<MAX_TURRET_TRANSLATE)
		{
			vec4 mv_dir = (pos)*TURRET_SPEED;
			characters[TARGET_ID]->transform.translate(mv_dir.x, 0, mv_dir.z);
			characters[BARREL_ID]->transform.rotateX(2.0);
			glutPostRedisplay();
		}
	}
	if(key=='s')
	{
		vec4 pos = characters[TARGET_ID]->transform*vec4(0,0,0);
		double dist = pos.length();
		if(dist>MIN_TURRET_TRANSLATE)
		{
			vec4 mv_dir = (pos)*TURRET_SPEED;
			characters[TARGET_ID]->transform.translate(-mv_dir.x, 0, -mv_dir.z);
			characters[BARREL_ID]->transform.rotateX(-2.0);
			glutPostRedisplay();
		}
	}
	if(key=='a'&&turret_rotate<MAX_TURRET_ROTATE)
	{
		turret_rotate++;
		characters[TARGET_ID]->transform.rotateY(TURRET_TURN);
		characters[SWIVEL_ID]->transform.rotateY(TURRET_TURN);
		glutPostRedisplay();
	}
	if(key=='d'&&turret_rotate>MIN_TURRET_ROTATE)
	{
		turret_rotate--;
		characters[TARGET_ID]->transform.rotateY(-TURRET_TURN);
		characters[SWIVEL_ID]->transform.rotateY(-TURRET_TURN);
		glutPostRedisplay();
	}
	if(key==KEYBOARD_ESC)
	{
		glutDestroyWindow(glutGetWindow());
		exit(0);
	}
}
Пример #30
0
void System::Keyboard(unsigned char key, int x, int y)
{
   switch(key)
   {
   case 27:
   case 'q':
       glutDestroyWindow(1);
       break;
   case 'w':
       Drawer::MoveCamera(0.0, 0.1, 0.0);
       break;
   case 's':
       Drawer::MoveCamera(0.0,-0.1, 0.0);
       break;
   case 'a':
       Drawer::MoveCamera(-0.1, 0.0, 0.0);
       break;
   case 'd':
       Drawer::MoveCamera( 0.1, 0.0, 0.0);
       break;
   case 'z':
       Drawer::MoveCamera(0.0, 0.0, 0.1);
       break;
   case 'x':
       Drawer::MoveCamera(0.0, 0.0,-0.1);
       break;
   case 'i':
       Drawer::GetDrawable(1)->Translate(0.0, 200, 0.0);
       break;
   case 'k':
       Drawer::GetDrawable(1)->Translate(0.0,-200, 0.0);
       break;
   case 'j':
       Drawer::GetDrawable(1)->Translate(-200, 0.0, 0.0);
       break;
   case 'l':
       Drawer::GetDrawable(1)->Translate( 200, 0.0, 0.0);
       break;
   case 'f':
       Drawer::MoveLight(-200, 0, 0);
       break;
   case 'h':
       Drawer::MoveLight(200, 0 , 0);
       break;
   case 't':
       Drawer::MoveLight(0, 2000, 0);
       break;
   case 'g':
       Drawer::MoveLight(0,-2000, 0);
       break;
   }
}