test/testgl.c
changeset 655 9c42ee1b7d77
parent 492 c59692dcdce0
child 656 864e2d2a9a55
equal deleted inserted replaced
654:e92bcf2573cb 655:9c42ee1b7d77
   391 	/* Show the image on the screen */
   391 	/* Show the image on the screen */
   392 	SDL_UpdateRects(screen, 1, &dst);
   392 	SDL_UpdateRects(screen, 1, &dst);
   393 }
   393 }
   394 
   394 
   395 int RunGLTest( int argc, char* argv[],
   395 int RunGLTest( int argc, char* argv[],
   396                int logo, int slowly, int bpp, float gamma, int noframe )
   396                int logo, int slowly, int bpp, float gamma, int noframe, int fsaa )
   397 {
   397 {
   398 	int i;
   398 	int i;
   399 	int rgb_size[3];
   399 	int rgb_size[3];
   400 	int w = 640;
   400 	int w = 640;
   401 	int h = 480;
   401 	int h = 480;
   473 	SDL_GL_SetAttribute( SDL_GL_RED_SIZE, rgb_size[0] );
   473 	SDL_GL_SetAttribute( SDL_GL_RED_SIZE, rgb_size[0] );
   474 	SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, rgb_size[1] );
   474 	SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, rgb_size[1] );
   475 	SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, rgb_size[2] );
   475 	SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, rgb_size[2] );
   476 	SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 16 );
   476 	SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 16 );
   477 	SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
   477 	SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
       
   478 	if ( fsaa ) {
       
   479 		SDL_GL_SetAttribute( SDL_GL_SAMPLE_BUFFERS, 1 );
       
   480 		SDL_GL_SetAttribute( SDL_GL_SAMPLES, fsaa );
       
   481 	}
   478 	if ( SDL_SetVideoMode( w, h, bpp, video_flags ) == NULL ) {
   482 	if ( SDL_SetVideoMode( w, h, bpp, video_flags ) == NULL ) {
   479 		fprintf(stderr, "Couldn't set GL mode: %s\n", SDL_GetError());
   483 		fprintf(stderr, "Couldn't set GL mode: %s\n", SDL_GetError());
   480 		SDL_Quit();
   484 		SDL_Quit();
   481 		exit(1);
   485 		exit(1);
   482 	}
   486 	}
   497 	printf( "SDL_GL_BLUE_SIZE: requested %d, got %d\n", rgb_size[2],value);
   501 	printf( "SDL_GL_BLUE_SIZE: requested %d, got %d\n", rgb_size[2],value);
   498 	SDL_GL_GetAttribute( SDL_GL_DEPTH_SIZE, &value );
   502 	SDL_GL_GetAttribute( SDL_GL_DEPTH_SIZE, &value );
   499 	printf( "SDL_GL_DEPTH_SIZE: requested %d, got %d\n", bpp, value );
   503 	printf( "SDL_GL_DEPTH_SIZE: requested %d, got %d\n", bpp, value );
   500 	SDL_GL_GetAttribute( SDL_GL_DOUBLEBUFFER, &value );
   504 	SDL_GL_GetAttribute( SDL_GL_DOUBLEBUFFER, &value );
   501 	printf( "SDL_GL_DOUBLEBUFFER: requested 1, got %d\n", value );
   505 	printf( "SDL_GL_DOUBLEBUFFER: requested 1, got %d\n", value );
       
   506 	if ( fsaa ) {
       
   507 		SDL_GL_GetAttribute( SDL_GL_SAMPLE_BUFFERS, &value );
       
   508 		printf( "SDL_GL_SAMPLE_BUFFERS: requested 1, got %d\n", value );
       
   509 		SDL_GL_GetAttribute( SDL_GL_SAMPLES, &value );
       
   510 		printf( "SDL_GL_SAMPLES: requested %d, got %d\n", fsaa, value );
       
   511 	}
   502 
   512 
   503 	/* Set the window manager title bar */
   513 	/* Set the window manager title bar */
   504 	SDL_WM_SetCaption( "SDL GL test", "testgl" );
   514 	SDL_WM_SetCaption( "SDL GL test", "testgl" );
   505 
   515 
   506 	/* Set the gamma for the window */
   516 	/* Set the gamma for the window */
   698 	int numtests;
   708 	int numtests;
   699 	int bpp = 0;
   709 	int bpp = 0;
   700 	int slowly;
   710 	int slowly;
   701 	float gamma = 0.0;
   711 	float gamma = 0.0;
   702 	int noframe = 0;
   712 	int noframe = 0;
       
   713 	int fsaa = 0;
   703 
   714 
   704 	logo = 0;
   715 	logo = 0;
   705 	slowly = 0;
   716 	slowly = 0;
   706 	numtests = 1;
   717 	numtests = 1;
   707 	for ( i=1; argv[i]; ++i ) {
   718 	for ( i=1; argv[i]; ++i ) {
   726  		       gamma = (float)atof(argv[++i]);
   737  		       gamma = (float)atof(argv[++i]);
   727 		}
   738 		}
   728 		if ( strcmp(argv[i], "-noframe") == 0 ) {
   739 		if ( strcmp(argv[i], "-noframe") == 0 ) {
   729  		       noframe = 1;
   740  		       noframe = 1;
   730 		}
   741 		}
       
   742 		if ( strcmp(argv[i], "-fsaa") == 0 ) {
       
   743  		       ++fsaa;
       
   744 		}
   731 		if ( strncmp(argv[i], "-h", 2) == 0 ) {
   745 		if ( strncmp(argv[i], "-h", 2) == 0 ) {
   732  		       printf(
   746  		       printf(
   733 "Usage: %s [-twice] [-logo] [-slow] [-bpp n] [-gamma n] [-noframe]\n",
   747 "Usage: %s [-twice] [-logo] [-slow] [-bpp n] [-gamma n] [-noframe] [-fsaa]\n",
   734  			      argv[0]);
   748  			      argv[0]);
   735 			exit(0);
   749 			exit(0);
   736 		}
   750 		}
   737 	}
   751 	}
   738 	for ( i=0; i<numtests; ++i ) {
   752 	for ( i=0; i<numtests; ++i ) {
   739  		RunGLTest(argc, argv, logo, slowly, bpp, gamma, noframe);
   753  		RunGLTest(argc, argv, logo, slowly, bpp, gamma, noframe, fsaa);
   740 	}
   754 	}
   741 	return 0;
   755 	return 0;
   742 }
   756 }
   743 
   757 
   744 #else /* HAVE_OPENGL */
   758 #else /* HAVE_OPENGL */