added buffer system and fixed rendering functions

This commit is contained in:
herbglitch 2025-04-04 03:45:53 -06:00
parent 5a9d7ca07d
commit 017629872f
9 changed files with 170 additions and 44 deletions

View file

@ -5,22 +5,21 @@
extern "C" {
#endif
#include <stdint.h>
/**
* @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
* @note ARC_RendererType is determined by which window backend 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
*/
@ -43,12 +42,48 @@ 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
* @param renderer renders all buffers and current renderer to window
*/
void ARC_Renderer_Render(ARC_Renderer *renderer);
/**
* @brief
*
* @param renderer
* @param zIndex
*/
void ARC_Renderer_InitBuffer(ARC_Renderer *renderer, uint32_t zIndex);
/**
* @brief
*
* @param renderer
* @param zIndex
*/
void ARC_Renderer_RemoveBuffer(ARC_Renderer *renderer, uint32_t zIndex);
/**
* @brief
*
* @param renderer
*/
void ARC_Renderer_ClearBuffers(ARC_Renderer *renderer);
/**
* @brief
*
* @param renderer
* @param zIndex
*/
void ARC_Renderer_SetCurrentBuffer(ARC_Renderer *renderer, uint32_t zIndex);
/**
* @brief
*
* @param renderer
*/
void ARC_Renderer_UnsetBuffer(ARC_Renderer *renderer);
#ifdef __cplusplus
}
#endif