test/testdrawchessboard.c
author Edward Rudd <urkle@outoforder.cc>
Wed, 03 Dec 2014 12:47:39 -0500
changeset 9262 b3df9db209b0
parent 9105 da2bbecb7ad0
child 9278 8900afb78a19
permissions -rw-r--r--
ugh.. stray character
     1 /*
     2    Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>
     3 
     4    This software is provided 'as-is', without any express or implied
     5    warranty.  In no event will the authors be held liable for any damages
     6    arising from the use of this software.
     7 
     8    Permission is granted to anyone to use this software for any purpose,
     9    including commercial applications, and to alter it and redistribute it
    10    freely.
    11 
    12    This file is created by : Nitin Jain (nitin.j4@samsung.com)
    13 */
    14 
    15 /* Sample program:  Draw a Chess Board  by using SDL_CreateSoftwareRenderer API */
    16 
    17 #include "SDL.h"
    18 
    19 void
    20 DrawChessBoard(SDL_Renderer * renderer)
    21 {
    22 	int row = 0,column = 0,x = 0;
    23 	SDL_Rect rect, darea;
    24 
    25 	/* Get the Size of drawing surface */
    26 	SDL_RenderGetViewport(renderer, &darea);
    27 
    28 	for( ; row < 8; row++)
    29 	{
    30 		column = row%2;
    31 		x = x + column;
    32 		for( ; column < 4+(row%2); column++)
    33 		{
    34 			SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0xFF);
    35 
    36 			rect.w = darea.w/8;
    37 			rect.h = darea.h/8;
    38 			rect.x = x * rect.w;
    39 			rect.y = row * rect.h;
    40 			x = x + 2;
    41 			SDL_RenderFillRect(renderer, &rect);
    42 		}
    43 		x=0;
    44 	}
    45 }
    46 
    47 int
    48 main(int argc, char *argv[])
    49 {
    50 	SDL_Window *window;
    51 	SDL_Surface *surface;
    52 	SDL_Renderer *renderer;
    53 
    54     /* Enable standard application logging */
    55     SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);
    56 
    57 	/* Initialize SDL */
    58 	if(SDL_Init(SDL_INIT_VIDEO) != 0)
    59 	{
    60 		SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_Init fail : %s\n", SDL_GetError());
    61 		return 1;
    62 	}
    63 
    64 
    65 	/* Create window and renderer for given surface */
    66 	window = SDL_CreateWindow("Chess Board", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN);
    67 	if(!window)
    68 	{
    69 		SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Window creation fail : %s\n",SDL_GetError());
    70 		return 1;
    71 	}	
    72 	surface = SDL_GetWindowSurface(window);
    73 	renderer = SDL_CreateSoftwareRenderer(surface);
    74 	if(!renderer)
    75 	{
    76 		SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Render creation for surface fail : %s\n",SDL_GetError());
    77 		return 1;
    78 	}
    79 
    80 	/* Clear the rendering surface with the specified color */
    81 	SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF);
    82 	SDL_RenderClear(renderer);
    83 
    84 
    85 	/* Draw the Image on rendering surface */
    86 	while(1)
    87 	{
    88 		SDL_Event e;
    89 		if (SDL_PollEvent(&e)) {
    90 			if (e.type == SDL_QUIT) 
    91 				break;
    92 
    93 			if(e.key.keysym.sym == SDLK_ESCAPE)
    94 				break;
    95 		}
    96 		
    97 		DrawChessBoard(renderer);
    98 		
    99 		/* Got everything on rendering surface,
   100  		   now Update the drawing image on window screen */
   101 		SDL_UpdateWindowSurface(window);
   102 
   103 	}
   104 
   105 	return 0;
   106 }
   107