test/testvidinfo.c
author Sam Lantinga <slouken@libsdl.org>
Fri, 18 Jan 2002 18:14:03 +0000
changeset 266 c6abdda2f666
parent 0 74212992fb08
child 479 c0a1744bc2cf
permissions -rw-r--r--
Added QNX cleanups by Mike Gorchak (thanks!)
     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%dx%d\n", modes[i]->w, modes[i]->h, info->vfmt->BitsPerPixel);
    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 }