archeus/src/graphics/sdl/renderer.c

42 lines
1.2 KiB
C
Raw Normal View History

#ifdef ARC_SDL
#include "arc/graphics/renderer.h"
#include "arc/graphics/sdl/renderer.h"
#include <SDL.h>
#include <stdlib.h>
#include "arc/graphics/window.h"
#include "arc/std/errno.h"
void ARC_Renderer_Create(ARC_Renderer **renderer, ARC_RenderInfo *info){
if(!info){
arc_errno = ARC_ERRNO_NULL;
ARC_DEBUG_ERR("ARC_Renderer_Create(**renderer, NULL)");
return;
}
2023-03-10 17:34:22 -07:00
*renderer = (ARC_Renderer *)SDL_CreateRenderer((SDL_Window *)info->window, info->index, info->flags);
2023-03-10 17:34:22 -07:00
if(!*renderer){
arc_errno = ARC_ERRNO_NULL;
ARC_DEBUG_LOG(arc_errno, "SDL_CreateRenderer(%p, %d, %u);", info->window, info->index, info->flags);
2022-11-11 01:15:33 -07:00
free(renderer);
}
2023-09-20 02:24:15 -06:00
SDL_SetRenderDrawBlendMode((SDL_Renderer *)*renderer, SDL_BLENDMODE_BLEND);
}
void ARC_Renderer_Destroy(ARC_Renderer *renderer){
2023-03-10 17:34:22 -07:00
SDL_DestroyRenderer((SDL_Renderer *) renderer);
}
void ARC_Renderer_Clear(ARC_Renderer *renderer){
2023-03-10 17:34:22 -07:00
SDL_SetRenderDrawColor((SDL_Renderer *)renderer, 0x1c, 0x2c, 0x3c, 0x00);
SDL_RenderClear((SDL_Renderer *)renderer);
}
void ARC_Renderer_Render(ARC_Renderer *renderer){
2023-03-10 17:34:22 -07:00
SDL_RenderPresent((SDL_Renderer *)renderer);
}
#endif //ARC_SDL