#ifdef ARC_SDL #include "arc/graphics/renderer.h" #include "arc/graphics/sdl/renderer.h" #include #include #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; } *renderer = (ARC_Renderer *)malloc(sizeof(ARC_Renderer)); (*renderer)->renderer = SDL_CreateRenderer((SDL_Window *)info->window, info->index, info->flags); if(!(*renderer)->renderer){ arc_errno = ARC_ERRNO_NULL; ARC_DEBUG_LOG(arc_errno, "SDL_CreateRenderer(%p, %d, %u);", info->window, info->index, info->flags); free(renderer); } } void ARC_Renderer_Destroy(ARC_Renderer *renderer){ SDL_DestroyRenderer((SDL_Renderer *) renderer->renderer); free(renderer); } void ARC_Renderer_Clear(ARC_Renderer *renderer){ SDL_SetRenderDrawColor((SDL_Renderer *)renderer->renderer, 0x1c, 0x2c, 0x3c, 0x00); SDL_RenderClear((SDL_Renderer *)renderer->renderer); } void ARC_Renderer_Render(ARC_Renderer *renderer){ SDL_RenderPresent((SDL_Renderer *)renderer->renderer); } #endif //ARC_SDL