Merge branch 'herbglitch/debugging' into 'master'
Herbglitch/debugging See merge request Archeus_00/arc!1
This commit is contained in:
commit
d3dd85cd5e
6 changed files with 43 additions and 8 deletions
21
include/arc/engine/state.h
Normal file
21
include/arc/engine/state.h
Normal 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_
|
||||||
|
|
@ -30,8 +30,9 @@ typedef void (* ARC_Handler_CleanDataFn)(void *data);
|
||||||
* @brief creates ARC_Handler type
|
* @brief creates ARC_Handler type
|
||||||
*
|
*
|
||||||
* @param config ARC_Handler to initialize
|
* @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
|
* @brief destroyes ARC_Handler type
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#include "arc/engine/engine.h"
|
#include "arc/engine/engine.h"
|
||||||
#include <SDL_video.h>
|
#include <SDL_video.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include "arc/engine/state.h"
|
||||||
#include "arc/graphics/window.h"
|
#include "arc/graphics/window.h"
|
||||||
#include "arc/graphics/renderer.h"
|
#include "arc/graphics/renderer.h"
|
||||||
#include "arc/std/handler.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 = (ARC_EngineData *)malloc(sizeof(ARC_EngineData));
|
||||||
(*data)->window = NULL;
|
(*data)->window = NULL;
|
||||||
(*data)->renderer = NULL;
|
(*data)->renderer = NULL;
|
||||||
ARC_Handler_Create(&((*data)->state));
|
ARC_Handler_Create(&((*data)->state), sizeof(ARC_State));
|
||||||
|
|
||||||
ARC_WindowInfo windowInfo;
|
ARC_WindowInfo windowInfo;
|
||||||
ARC_RenderInfo renderInfo;
|
ARC_RenderInfo renderInfo;
|
||||||
|
|
@ -73,10 +74,11 @@ void ARC_Engine_Run(ARC_EngineData *data){
|
||||||
// data->keyboard.update(data->event);
|
// data->keyboard.update(data->event);
|
||||||
|
|
||||||
// data->state.update();
|
// data->state.update();
|
||||||
|
ARC_Handler_Iterate(data->state, ARC_State_Update);
|
||||||
|
|
||||||
ARC_Renderer_Clear(data->renderer);
|
ARC_Renderer_Clear(data->renderer);
|
||||||
|
|
||||||
// data->state.render();
|
ARC_Handler_Iterate(data->state, ARC_State_Render);
|
||||||
|
|
||||||
ARC_Renderer_Render(data->renderer);
|
ARC_Renderer_Render(data->renderer);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
11
src/engine/state.c
Normal file
11
src/engine/state.c
Normal 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();
|
||||||
|
}
|
||||||
|
|
@ -29,7 +29,7 @@ void ARC_Renderer_Destroy(ARC_Renderer *renderer){
|
||||||
}
|
}
|
||||||
|
|
||||||
void ARC_Renderer_Clear(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);
|
SDL_RenderClear((SDL_Renderer *)renderer->renderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,10 @@ struct ARC_Handler {
|
||||||
ARC_Vector *trash;
|
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));
|
*handler = (ARC_Handler *) malloc(sizeof(ARC_Handler));
|
||||||
ARC_Vector_Create(&((*handler)->data), sizeof(void *));
|
ARC_Vector_Create(&((*handler)->data), dataSize);
|
||||||
ARC_Vector_Create(&((*handler)->trash), sizeof(void *));
|
ARC_Vector_Create(&((*handler)->trash), dataSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ARC_Handler_Destroy(ARC_Handler *handler, ARC_Handler_CleanDataFn cleanfn){
|
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; }
|
int8_t ARC_Handler_RemoveCompareFn(void *a, void *b){ return a == b; }
|
||||||
|
|
||||||
void ARC_Handler_Remove(ARC_Handler *handler, void *data){
|
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_Add(handler->trash, data);
|
||||||
|
ARC_Vector_Remove(handler->data, data, ARC_Handler_RemoveCompareFn);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ARC_Handler_RemoveIndex(ARC_Handler *handler, uint32_t *index){
|
void ARC_Handler_RemoveIndex(ARC_Handler *handler, uint32_t *index){
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue