2022-10-29 00:22:23 -06:00
|
|
|
#ifdef ARC_SDL
|
|
|
|
|
#include "arc/graphics/renderer.h"
|
2022-10-29 16:08:41 -06:00
|
|
|
#include "arc/graphics/sdl/renderer.h"
|
|
|
|
|
|
|
|
|
|
#include <SDL.h>
|
|
|
|
|
#include <stdlib.h>
|
2022-10-29 00:22:23 -06:00
|
|
|
#include "arc/graphics/window.h"
|
|
|
|
|
#include "arc/std/errno.h"
|
|
|
|
|
|
2022-10-29 16:08:41 -06:00
|
|
|
void ARC_Renderer_Create(ARC_Renderer **renderer, ARC_RenderInfo *info){
|
|
|
|
|
if(!info){
|
2022-10-29 00:22:23 -06:00
|
|
|
arc_errno = ARC_ERRNO_NULL;
|
2022-10-29 16:08:41 -06:00
|
|
|
ARC_DEBUG_ERR("ARC_Renderer_Create(**renderer, NULL)");
|
2022-10-29 00:22:23 -06:00
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-29 16:08:41 -06:00
|
|
|
*renderer = (ARC_Renderer *)malloc(sizeof(ARC_Renderer));
|
|
|
|
|
(*renderer)->renderer = SDL_CreateRenderer((SDL_Window *)info->window, info->index, info->flags);
|
2022-10-29 00:22:23 -06:00
|
|
|
|
2022-11-11 01:15:33 -07:00
|
|
|
if(!(*renderer)->renderer){
|
2022-10-29 00:22:23 -06:00
|
|
|
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);
|
2022-10-29 00:22:23 -06:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ARC_Renderer_Destroy(ARC_Renderer *renderer){
|
2022-10-29 16:08:41 -06:00
|
|
|
SDL_DestroyRenderer((SDL_Renderer *) renderer->renderer);
|
|
|
|
|
free(renderer);
|
2022-10-29 00:22:23 -06:00
|
|
|
}
|
|
|
|
|
|
2022-10-29 17:07:51 -06:00
|
|
|
void ARC_Renderer_Clear(ARC_Renderer *renderer){
|
2022-11-03 19:55:56 -06:00
|
|
|
SDL_SetRenderDrawColor((SDL_Renderer *)renderer->renderer, 0x1c, 0x2c, 0x3c, 0x00);
|
2022-10-29 17:07:51 -06:00
|
|
|
SDL_RenderClear((SDL_Renderer *)renderer->renderer);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ARC_Renderer_Render(ARC_Renderer *renderer){
|
|
|
|
|
SDL_RenderPresent((SDL_Renderer *)renderer->renderer);
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-29 00:22:23 -06:00
|
|
|
#endif //ARC_SDL
|