lexsdl 0.3.0

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

/* Getter */
const LEXSDL_Mouse* LEXSDL_GetMouse(void){
	return &LEXSDLDATA.mouseState;
}



/* Manipulation */
void LEXSDL_MouseUpdate(void){
	uint32_t buttons = SDL_GetMouseState(&LEXSDLDATA.mouseState.x, &LEXSDLDATA.mouseState.y);
	LEXSDLDATA.mouseState.left = (buttons & SDL_BUTTON_LMASK);
	LEXSDLDATA.mouseState.right = (buttons & SDL_BUTTON_RMASK);
	LEXSDLDATA.mouseState.middle = (buttons & SDL_BUTTON_MMASK);
	LEXSDLDATA.mouseState.x1 = (buttons & SDL_BUTTON_X1MASK);
	LEXSDLDATA.mouseState.x2 = (buttons & SDL_BUTTON_X2MASK);
}



/* Position */

void LEXSDL_MousePos(int *x, int *y){
	*x = LEXSDLDATA.mouseState.x;
	*y = LEXSDLDATA.mouseState.y;
}

int LEXSDL_MousePosX(void){ return LEXSDLDATA.mouseState.x; }
int LEXSDL_MousePosY(void){ return LEXSDLDATA.mouseState.y; }



/* Clicks */
uint8_t LEXSDL_MouseLeft(void){ return LEXSDLDATA.mouseState.left; }
uint8_t LEXSDL_MouseRight(void){ return LEXSDLDATA.mouseState.right; }
uint8_t LEXSDL_MouseMiddle(void){ return LEXSDLDATA.mouseState.middle; }
uint8_t LEXSDL_MouseX1(void){ return LEXSDLDATA.mouseState.x1; }
uint8_t LEXSDL_MouseX2(void){ return LEXSDLDATA.mouseState.x2; }