test/testvidinfo.c
changeset 0 74212992fb08
child 266 c6abdda2f666
equal deleted inserted replaced
-1:000000000000 0:74212992fb08
       
     1 
       
     2 /* Simple program -- figure out what kind of video display we have */
       
     3 
       
     4 #include <stdio.h>
       
     5 #include <stdlib.h>
       
     6 
       
     7 #include "SDL.h"
       
     8 
       
     9 int main(int argc, char *argv[])
       
    10 {
       
    11 	const SDL_VideoInfo *info;
       
    12 	int i;
       
    13 	SDL_Rect **modes;
       
    14 
       
    15 	if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) {
       
    16 		fprintf(stderr,
       
    17 			"Couldn't initialize SDL: %s\n", SDL_GetError());
       
    18 		exit(1);
       
    19 	}
       
    20 	info = SDL_GetVideoInfo();
       
    21 	printf(
       
    22 "Current display: %d bits-per-pixel\n",info->vfmt->BitsPerPixel);
       
    23 	if ( info->vfmt->palette == NULL ) {
       
    24 		printf("	Red Mask = 0x%.8x\n", info->vfmt->Rmask);
       
    25 		printf("	Green Mask = 0x%.8x\n", info->vfmt->Gmask);
       
    26 		printf("	Blue Mask = 0x%.8x\n", info->vfmt->Bmask);
       
    27 	}
       
    28 	/* Print available fullscreen video modes */
       
    29 	modes = SDL_ListModes(NULL, SDL_FULLSCREEN);
       
    30 	if ( modes == (SDL_Rect **)0 ) {
       
    31 		printf("No available fullscreen video modes\n");
       
    32 	} else
       
    33 	if ( modes == (SDL_Rect **)-1 ) {
       
    34 		printf("No special fullscreen video modes\n");
       
    35 	} else {
       
    36 		printf("Fullscreen video modes:\n");
       
    37 		for ( i=0; modes[i]; ++i ) {
       
    38 			printf("\t%dx%d\n", modes[i]->w, modes[i]->h);
       
    39 		}
       
    40 	}
       
    41 	if ( info->wm_available ) {
       
    42 		printf("A window manager is available\n");
       
    43 	}
       
    44 	if ( info->hw_available ) {
       
    45 		printf("Hardware surfaces are available (%dK video memory)\n",
       
    46 			info->video_mem);
       
    47 	}
       
    48 	if ( info->blit_hw ) {
       
    49 		printf(
       
    50 "Copy blits between hardware surfaces are accelerated\n");
       
    51 	}
       
    52 	if ( info->blit_hw_CC ) {
       
    53 		printf(
       
    54 "Colorkey blits between hardware surfaces are accelerated\n");
       
    55 	}
       
    56 	if ( info->blit_hw_A ) {
       
    57 		printf(
       
    58 "Alpha blits between hardware surfaces are accelerated\n");
       
    59 	}
       
    60 	if ( info->blit_sw ) {
       
    61 		printf(
       
    62 "Copy blits from software surfaces to hardware surfaces are accelerated\n");
       
    63 	}
       
    64 	if ( info->blit_sw_CC ) {
       
    65 		printf(
       
    66 "Colorkey blits from software surfaces to hardware surfaces are accelerated\n");
       
    67 	}
       
    68 	if ( info->blit_sw_A ) {
       
    69 		printf(
       
    70 "Alpha blits from software surfaces to hardware surfaces are accelerated\n");
       
    71 	}
       
    72 	if ( info->blit_fill ) {
       
    73 		printf(
       
    74 "Color fills on hardware surfaces are accelerated\n");
       
    75 	}
       
    76 	SDL_Quit();
       
    77 	return(0);
       
    78 }