Merge branch 'herbglitch/debugging' into 'master'

Herbglitch/debugging

See merge request Archeus_00/arc!1
This commit is contained in:
herbglitch 2022-11-04 01:56:45 +00:00
commit d3dd85cd5e
6 changed files with 43 additions and 8 deletions

View file

@ -0,0 +1,21 @@
#ifndef ARC_ENGINE_STATE_H_
#define ARC_ENGINE_STATE_H_
#ifdef __cplusplus
extern "C" {
#endif
typedef struct ARC_State {
void (* updateFn)();
void (* renderFn)();
} ARC_State;
void ARC_State_Update(void *data);
void ARC_State_Render(void *data);
#ifdef __cplusplus
}
#endif
#endif // ARC_ENGINE_STATE_H_

View file

@ -30,8 +30,9 @@ typedef void (* ARC_Handler_CleanDataFn)(void *data);
* @brief creates ARC_Handler type
*
* @param config ARC_Handler to initialize
* @param dataSize size of type the handler will use
*/
void ARC_Handler_Create(ARC_Handler **handler);
void ARC_Handler_Create(ARC_Handler **handler, uint32_t dataSize);
/**
* @brief destroyes ARC_Handler type

View file

@ -1,6 +1,7 @@
#include "arc/engine/engine.h"
#include <SDL_video.h>
#include <stdlib.h>
#include "arc/engine/state.h"
#include "arc/graphics/window.h"
#include "arc/graphics/renderer.h"
#include "arc/std/handler.h"
@ -16,7 +17,7 @@ void ARC_EngineData_Create(ARC_EngineData **data){
*data = (ARC_EngineData *)malloc(sizeof(ARC_EngineData));
(*data)->window = NULL;
(*data)->renderer = NULL;
ARC_Handler_Create(&((*data)->state));
ARC_Handler_Create(&((*data)->state), sizeof(ARC_State));
ARC_WindowInfo windowInfo;
ARC_RenderInfo renderInfo;
@ -73,10 +74,11 @@ void ARC_Engine_Run(ARC_EngineData *data){
// data->keyboard.update(data->event);
// data->state.update();
ARC_Handler_Iterate(data->state, ARC_State_Update);
ARC_Renderer_Clear(data->renderer);
// data->state.render();
ARC_Handler_Iterate(data->state, ARC_State_Render);
ARC_Renderer_Render(data->renderer);
}

11
src/engine/state.c Normal file
View file

@ -0,0 +1,11 @@
#include "arc/engine/state.h"
void ARC_State_Update(void *data){
ARC_State *temp = (ARC_State *) data;
((ARC_State *)data)->updateFn();
}
void ARC_State_Render(void *data){
ARC_State *temp = (ARC_State *) data;
((ARC_State *)data)->renderFn();
}

View file

@ -29,7 +29,7 @@ void ARC_Renderer_Destroy(ARC_Renderer *renderer){
}
void ARC_Renderer_Clear(ARC_Renderer *renderer){
SDL_SetRenderDrawColor((SDL_Renderer *)renderer->renderer, 0, 255, 255, 255);
SDL_SetRenderDrawColor((SDL_Renderer *)renderer->renderer, 0x1c, 0x2c, 0x3c, 0x00);
SDL_RenderClear((SDL_Renderer *)renderer->renderer);
}

View file

@ -9,10 +9,10 @@ struct ARC_Handler {
ARC_Vector *trash;
};
void ARC_Handler_Create(ARC_Handler **handler){
void ARC_Handler_Create(ARC_Handler **handler, uint32_t dataSize){
*handler = (ARC_Handler *) malloc(sizeof(ARC_Handler));
ARC_Vector_Create(&((*handler)->data), sizeof(void *));
ARC_Vector_Create(&((*handler)->trash), sizeof(void *));
ARC_Vector_Create(&((*handler)->data), dataSize);
ARC_Vector_Create(&((*handler)->trash), dataSize);
}
void ARC_Handler_Destroy(ARC_Handler *handler, ARC_Handler_CleanDataFn cleanfn){
@ -32,8 +32,8 @@ void ARC_Handler_Add(ARC_Handler *handler, void *data){
int8_t ARC_Handler_RemoveCompareFn(void *a, void *b){ return a == b; }
void ARC_Handler_Remove(ARC_Handler *handler, void *data){
ARC_Vector_Remove(handler->data, data, ARC_Handler_RemoveCompareFn);
ARC_Vector_Add(handler->trash, data);
ARC_Vector_Remove(handler->data, data, ARC_Handler_RemoveCompareFn);
}
void ARC_Handler_RemoveIndex(ARC_Handler *handler, uint32_t *index){