#ifndef ARC_GRAPHICS_RENDERER_H_ #define ARC_GRAPHICS_RENDERER_H_ #ifdef __cplusplus extern "C" { #endif /** * @brief predefien ARC_EngineData so as not to get circular reference */ typedef struct ARC_EngineData ARC_EngineData; /** * @note ARC_RendererType is determined by which window library you are using */ typedef struct ARC_RendererType ARC_Renderer; /** * @brief creates ARC_Renderer type with ARC_EngineData * * @note the parameter data is determined by which graphics library you are using * please refer to the graphics library section to see what needs to be passed * * @param renderer ARC_Renderer to initialize * @param data the engine data to create from */ void ARC_Renderer_CreateWithEngineData(ARC_Renderer **renderer, ARC_EngineData *data); /** * @brief destroys ARC_Renderer type * * @param renderer ARC_Renderer to destory */ void ARC_Renderer_Destroy(ARC_Renderer *renderer); /** * @breif clears the renderer * * @param renderer the renderer to clear */ void ARC_Renderer_Clear(ARC_Renderer *renderer); /** * @brief renders the renderer * * @note the renderer will most likely be drawn to from ARC_EngineData * * @param renderer the renderer to render */ void ARC_Renderer_Render(ARC_Renderer *renderer); #ifdef __cplusplus } #endif #endif // !ARC_GRAPHICS_RENDERER_H_