Skip to content

Commit

Permalink
1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
repiazza committed Dec 26, 2023
1 parent c857bde commit 422ede0
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 25 deletions.
53 changes: 44 additions & 9 deletions GXRF/GXRF.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,13 @@

// globals
PSTRUCT_GXRF_RENDER_LIST gpstGXRF_RenderList;
PSTRUCT_GXRF_OBJFNC_ARG_LIST gpstGXRF_FncArgList;

//
// Finds some specific object
//
STRUCT_GXRF_RENDER *pstGXRF_FindRenderizable(void *vGXRF_Renderizable){
STRUCT_GXRF_RENDER *pstGXRF_WrkRender;
STRUCT_GXRF_RENDER *pstGXRF_WrkRender = NULL;
// Looking for the Object
// Running All of'em, until we get vGXRF_Renderizable
for (
Expand Down Expand Up @@ -108,7 +109,7 @@ int bGXRF_EnableRenderizable(void *vGXRF_Renderizable){
}

int iGXRF_AllocList(STRUCT_GXRF_RENDER_LIST **ppstGXRF_RenderizableList){
ppstGXRF_RenderizableList = (STRUCT_GXRF_RENDER_LIST **) malloc(sizeof(STRUCT_GXRF_RENDER_LIST));
ppstGXRF_RenderizableList = (STRUCT_GXRF_RENDER_LIST **) malloc(sizeof(STRUCT_GXRF_RENDER_LIST *) * sizeof(STRUCT_GXRF_RENDER_LIST));
if ( ppstGXRF_RenderizableList == NULL ) // gg
return -1;

Expand All @@ -122,14 +123,48 @@ int iGXRF_AllocList(STRUCT_GXRF_RENDER_LIST **ppstGXRF_RenderizableList){
// 0: OK
//-1: Out of memory :(
//
int iGXRF_AllocFncArgList(STRUCT_GXRF_OBJFNC_ARG **ppstGXRF_FncArgList){
*ppstGXRF_FncArgList = (STRUCT_GXRF_OBJFNC_ARG *) malloc(sizeof(STRUCT_GXRF_OBJFNC_ARG));
if ( *ppstGXRF_FncArgList == NULL ) // gg :(
int iGXRF_AllocFncArgList(STRUCT_GXRF_OBJFNC_ARG_LIST **ppstGXRF_FncArgList){

ppstGXRF_FncArgList = (STRUCT_GXRF_OBJFNC_ARG_LIST **) malloc(sizeof(STRUCT_GXRF_OBJFNC_ARG_LIST));
if ( ppstGXRF_FncArgList == NULL ) // gg
return -1;

(*ppstGXRF_FncArgList) = (STRUCT_GXRF_OBJFNC_ARG_LIST *) malloc(sizeof(STRUCT_GXRF_RENDER_LIST));
(*ppstGXRF_FncArgList)->pstGXRF_FirstObjFncArg = NULL;
(*ppstGXRF_FncArgList)->pstGXRF_LastObjFncArg = NULL;

return 0;
}

int iGXRF_ADD2ArgList(void *vGXRF_Renderizable, void *vArgType, void *vArg){
STRUCT_GXRF_OBJFNC_ARG *pstWrkObjArg;
STRUCT_GXRF_OBJFNC_ARG_LIST *pstWrkArgList;
STRUCT_GXRF_RENDER *pstGXRF_WrkRender;

if ( (pstGXRF_WrkRender = pstGXRF_FindRenderizable(vGXRF_Renderizable)) != NULL )
return RENDERIZABLE_EXISTS; // Already Exists

pstWrkArgList = pstGXRF_WrkRender->pstArgList;
if ( pstWrkArgList == NULL ) // gg
return -1;

if ( (pstWrkObjArg = pstWrkArgList->pstGXRF_FirstObjFncArg) != NULL ){
for ( ; pstWrkObjArg->pNextArg != NULL ; pstWrkObjArg = pstWrkObjArg->pNextArg );

pstWrkObjArg->pNextArg = (STRUCT_GXRF_OBJFNC_ARG *) malloc(sizeof(STRUCT_GXRF_OBJFNC_ARG));
pstWrkObjArg = pstWrkObjArg->pNextArg;
}
else {
(*pstWrkArgList).pstGXRF_FirstObjFncArg = (STRUCT_GXRF_OBJFNC_ARG *) malloc(sizeof(STRUCT_GXRF_OBJFNC_ARG));
pstWrkObjArg = (*pstWrkArgList).pstGXRF_FirstObjFncArg;
}
pstWrkObjArg->vArgType = vArgType;
pstWrkObjArg->vArg = vArg;
pstWrkObjArg->pNextArg = NULL;
pstWrkArgList->pstGXRF_LastObjFncArg = pstWrkObjArg;
return 0;
}

int iGXRF_Init(){
if ( DEBUG_MSGS ) vTraceMsg("iGXRF_Init --- Ok\n");

Expand All @@ -146,8 +181,7 @@ int iGXRF_Add2RenderList(
int bIs2Render,
eSDLT_Renderizable eSDLTy,
void *vRenderObject,
void *vpfnRenderFnc,
PSTRUCT_GXRF_OBJFNC_ARG_LIST pstGXRF_ObjArgList){
void *vpfnRenderFnc){
STRUCT_GXRF_RENDER *pstGXRF_WrkRender;

if ( (pstGXRF_WrkRender = pstGXRF_FindRenderizable(vRenderObject)) != NULL )
Expand All @@ -163,12 +197,13 @@ int iGXRF_Add2RenderList(
memset (pstGXRF_WrkRender, 0, sizeof(STRUCT_GXRF_RENDER));
}

iGXRF_AllocFncArgList(&pstGXRF_WrkRender->pstArgList);

pstGXRF_WrkRender->bEnabled2Render = bIs2Render;
pstGXRF_WrkRender->eSDLTy = eSDLTy;
pstGXRF_WrkRender->vSDL_ObjToRender = vRenderObject;
pstGXRF_WrkRender->vpfnRenderMethod = vpfnRenderFnc;
pstGXRF_WrkRender->pSDL_Renderer = renderer;
pstGXRF_WrkRender->pstArgList = pstGXRF_ObjArgList;
pstGXRF_WrkRender->pNextObj = NULL;

return 0;
Expand Down Expand Up @@ -216,7 +251,7 @@ void vGXRF_FreeRenderList(){
}

int iGXRF_End(){
//vGXRF_FreeRenderList();
vGXRF_FreeRenderList();
return 0;
}

Expand Down
6 changes: 3 additions & 3 deletions GXRF/GXRF.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
} eSDLT_Renderizable;

// Creates the generic render callback function
typedef void (*GXRFCALLBACK)(SDL_Renderer *renderer);
typedef void (*GXRFCALLBACK)(SDL_Renderer *renderer, ...);

// // Renderizable Object List
typedef struct STRUCT_GXRF_RENDER_LIST{
Expand Down Expand Up @@ -105,12 +105,12 @@
int bIs2Render,
eSDLT_Renderizable eSDLTy,
void *vRenderObject,
void *vpfnRenderFnc,
STRUCT_GXRF_OBJFNC_ARG_LIST *pstArgList
void *vpfnRenderFnc
);
STRUCT_GXRF_RENDER *pstGXRF_FindFirstRenderizableByType(eSDLT_Renderizable eSDLTy);
STRUCT_GXRF_RENDER *pstGXRF_FindNextRenderizableByType (STRUCT_GXRF_RENDER *pstGXRF_CurrRenderObj, eSDLT_Renderizable eSDLTy);

int iGXRF_ADD2ArgList(void *vGXRF_Renderizable, void *vArgType, void *vArg);
int bGXRF_EnableRenderizable(void *vGXRF_Renderizable);
void vGXRF_RenderObject(void *vGXRF_Renderizable);
void vGXRF_RenderAll();
Expand Down
3 changes: 0 additions & 3 deletions include/board.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,6 @@
int ii;
int jj;

// printf("ROW_RATIO: %d\n", ROW_RATIO);
// printf("COL_RATIO : %d\n", COL_RATIO);

for (ii = 0; ii < BOARD_ROWS; ii++) {
for (jj = 0; jj < BOARD_COLS; jj++) {
const int iSquare = giBOARD_Main[ii][jj];
Expand Down
21 changes: 11 additions & 10 deletions src/cattie.c
Original file line number Diff line number Diff line change
Expand Up @@ -534,6 +534,7 @@ int SDL_main(int argc, char *argv[]){
SDL_Rect SDL_RECT_ButtonUndoLast;
SDL_Rect SDL_RECT_ButtonConfirmAction;
SDL_Rect *pSDL_RECT_Menu = NULL;
eSDLT_Renderizable eSDLTypes;
SDL_Window* window;
SDL_Renderer* renderer;
// int iRsl = 0;
Expand Down Expand Up @@ -684,18 +685,18 @@ int SDL_main(int argc, char *argv[]){
// vDrawButton(renderer, &SDL_RECT_ButtonFireLaser, BUTTON_DIRECTION);
// vDrawButton(renderer, &SDL_RECT_ButtonUndoLast, BUTTON_ERASE);
// vDrawButton(renderer, &SDL_RECT_ButtonConfirmAction, BUTTON_CONFIRM);
//
/*iGXRF_Add2RenderList(

iGXRF_Add2RenderList(
renderer,
TRUE,
SDL_RECT,
&SDL_RECT_ButtonArrowRight,
//pszFmt,
vDrawButton,
2,
&SDL_RECT_ButtonArrowRight,
BUTTON_DIRECTION
);*/
vDrawButton
);

iGXRF_ADD2ArgList(&SDL_RECT_ButtonArrowRight, (void *)(eSDLTypes=SDL_RECT), &SDL_RECT_ButtonArrowRight);
iGXRF_ADD2ArgList(&SDL_RECT_ButtonArrowRight, (void *)"int", (void *)BUTTON_DIRECTION);

// Main loop
SDL_Event event;
while (gbRunning) {
Expand Down Expand Up @@ -782,8 +783,8 @@ int SDL_main(int argc, char *argv[]){
// vDrawButtons(renderer);

// vGXRF_RenderAll();
//vGXRF_RenderObject(&SDL_RECT_ButtonArrowRight);
// vDrawButton(renderer, &SDL_RECT_ButtonArrowRight, BUTTON_DIRECTION);
// vGXRF_RenderObject(&SDL_RECT_ButtonArrowRight);
// vDrawButton(renderer, &SDL_RECT_ButtonArrowRight, BUTTON_DIRECTION);
// vDrawButton(renderer, &SDL_RECT_ButtonTurnArrow, BUTTON_DIRECTION);
// vDrawButton(renderer, &SDL_RECT_ButtonFireLaser, BUTTON_DIRECTION);
// vDrawButton(renderer, &SDL_RECT_ButtonUndoLast, BUTTON_ERASE);
Expand Down

0 comments on commit 422ede0

Please sign in to comment.