lexsdl 0.3.0

A wrapper for SDL2 to abstract away annoying parts
#include"LEXSDL.h"
#include"LEXSDL_internal.h"

/* Creation */

SDL_Renderer* LEXSDL_CreateRenderer(uint32_t flags){
	if(flags != 0)
		LEXSDLDATA.renderer = SDL_CreateRenderer(LEXSDLDATA.window, -1, flags);
	else
		LEXSDLDATA.renderer = SDL_CreateRenderer(LEXSDLDATA.window, -1, LEXSDL_RENDERERINITFLAGS);
	
	return LEXSDLDATA.renderer;
}



/* Getters and Setters */

void LEXSDL_GetBackgroundColor(uint8_t *r, uint8_t *g, uint8_t *b, uint8_t *a){
	*r = LEXSDLDATA.bgColor[0];
	*g = LEXSDLDATA.bgColor[1];
	*b = LEXSDLDATA.bgColor[2];
	*a = LEXSDLDATA.bgColor[3];
}

void LEXSDL_GetDrawColor(uint8_t *r, uint8_t *g, uint8_t *b, uint8_t *a){
	*r = LEXSDLDATA.drColor[0];
	*g = LEXSDLDATA.drColor[1];
	*b = LEXSDLDATA.drColor[2];
	*a = LEXSDLDATA.drColor[3];
}

SDL_Renderer* LEXSDL_GetRenderer(void){
	return LEXSDLDATA.renderer;
}

void LEXSDL_SetRenderer(SDL_Renderer *renderer){
	LEXSDLDATA.renderer = renderer;
}



/* Manipulation */

void LEXSDL_SetBackgroundColor(uint8_t r, uint8_t g, uint8_t b, uint8_t a){
	LEXSDLDATA.bgColor[0] = r;
	LEXSDLDATA.bgColor[1] = g;
	LEXSDLDATA.bgColor[2] = b;
	LEXSDLDATA.bgColor[3] = a;
}

void LEXSDL_SetDrawColor(uint8_t r, uint8_t g, uint8_t b, uint8_t a){
	LEXSDLDATA.drColor[0] = r;
	LEXSDLDATA.drColor[1] = g;
	LEXSDLDATA.drColor[2] = b;
	LEXSDLDATA.drColor[3] = a;
	SDL_SetRenderDrawColor(LEXSDLDATA.renderer, r,g,b,a);
}



/* Renderer Functions */

int LEXSDL_NewFrame(void){
	SDL_SetRenderDrawColor(LEXSDLDATA.renderer, LEXSDLDATA.bgColor[0],LEXSDLDATA.bgColor[1],LEXSDLDATA.bgColor[2],LEXSDLDATA.bgColor[3]);
	int err = SDL_RenderClear(LEXSDLDATA.renderer);
	SDL_SetRenderDrawColor(LEXSDLDATA.renderer, LEXSDLDATA.drColor[0],LEXSDLDATA.drColor[1],LEXSDLDATA.drColor[2],LEXSDLDATA.drColor[3]);
	return err;
}

void LEXSDL_ShowFrame(void){
	SDL_RenderPresent(LEXSDLDATA.renderer);
}