#ifndef RSE_GRAPHICS_H
#define RSE_GRAPHICS_H

#include "utilities/commons.h"

struct rse_graphics_context_t;

/**
 * @brief Initializes graphics backend. This has to be called before any new mesh, texture or any other object is
 * added
 *
 * @param context Graphics context handle. Must be NULL!
 * @return rse_err_t RSE_ERROR_NO_ERROR on success
 */
rse_err_t rse_graphics_init(struct rse_graphics_context_t** context);

/**
 * @brief Runs graphics engine. This has to be called after all objects are added to the scene
 *
 * @return rse_err_t RSE_ERROR_NO_ERROR on success
 */
int rse_graphics_run(void* arg);


/**
 * @brief Custom function for testing engine. TODO: Remove it whe releasing
 *
 */
rse_err_t rse_graphics_test_function(struct rse_graphics_context_t* context);

#endif /* RSE_GRAPHICS_H */
