diff options
author | Ludovic Pouzenc <lpouzenc@gmail.com> | 2013-07-18 00:00:17 +0200 |
---|---|---|
committer | Ludovic Pouzenc <lpouzenc@gmail.com> | 2013-07-18 00:00:17 +0200 |
commit | 7c8a73421a72f21669334a2ecae7f48c44350ac7 (patch) | |
tree | cd78593b462f679052a0cebc069dd9c858e9df28 /src/test | |
parent | 3f4026dd46e0eba4c6f60e78e58069c58cb1cb5c (diff) | |
download | mplemmings-7c8a73421a72f21669334a2ecae7f48c44350ac7.tar.gz mplemmings-7c8a73421a72f21669334a2ecae7f48c44350ac7.tar.bz2 mplemmings-7c8a73421a72f21669334a2ecae7f48c44350ac7.zip |
Chargement des ressources OK. testrender doit être amélioré.
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/testparseall.c | 4 | ||||
-rw-r--r-- | src/test/testrender.c | 66 |
2 files changed, 61 insertions, 9 deletions
diff --git a/src/test/testparseall.c b/src/test/testparseall.c index 0ea18a4..9528b4e 100644 --- a/src/test/testparseall.c +++ b/src/test/testparseall.c @@ -1,8 +1,8 @@ #include "parser.h" +#include "utils.h" + #include <stdio.h> // printf, perror -#include <unistd.h> // TODO : remove chdir() call -#define MAX_PATH_LEN 64 struct test_ini_file { enum ini_type type; diff --git a/src/test/testrender.c b/src/test/testrender.c index 98a940f..93fa217 100644 --- a/src/test/testrender.c +++ b/src/test/testrender.c @@ -1,8 +1,9 @@ +#include "graphic.h" #include "parser.h" #include "loader.h" +#include "utils.h" #define DATA_BASEPATH "./data" -#define MAX_PATH_LEN 255 int main(int argc, char **argv) { int res; @@ -29,10 +30,12 @@ int main(int argc, char **argv) { if (res!=0) exit(res); // Check if we found a "style =" line in level ini file - if (gIni.level.style==NULL) { - fprintf(stderr, "No valid style detected\n"); - exit(1); - } + MPL_CHECK( + gIni.level.style, + { exit(1); }, + SDL_LOG_PRIORITY_CRITICAL, + "No valid style detected in level ini file" + ); // Loading style ini file SDL_snprintf(filepath, MAX_PATH_LEN, "%s/style/%s/%s.ini", DATA_BASEPATH, gIni.level.style, gIni.level.style); @@ -45,7 +48,56 @@ int main(int argc, char **argv) { if (res!=0) exit(res); */ - res=loadRessources(&gIni, DATA_BASEPATH, &gRess); + SDL_Window *sdl_win; + SDL_Renderer *sdl_rend; + SDL_RendererInfo sdl_rend_info; + SDL_Rect sdl_viewport; + + SDL_Event sdl_ev; + int mainloop_end=0; + + SDL_Rect win_pos = { .x=SDL_WINDOWPOS_UNDEFINED, .y=SDL_WINDOWPOS_UNDEFINED, .w=640, .h=480 }; + Uint32 init_flags = SDL_INIT_TIMER|SDL_INIT_VIDEO;//|SDL_INIT_EVENTS; + Uint32 win_flags = SDL_WINDOW_SHOWN; + Uint32 rend_flags = SDL_RENDERER_ACCELERATED; + + my_SDL_init_or_die(__FILE__, win_pos, init_flags, win_flags, rend_flags, &sdl_win, &sdl_rend, &sdl_rend_info, &sdl_viewport); + + // Setting default values + SDL_memset(&gRess,0,sizeof(gameRess_t)); + + res=loadMiscRes(sdl_rend, DATA_BASEPATH, &gRess); + if (res!=0) exit(res); + res=loadStyleRes(sdl_rend, &gIni, DATA_BASEPATH, &gRess); + if (res!=0) exit(res); + + /* Main render loop */ + while (!mainloop_end) { + /* Check for events */ + while (SDL_PollEvent(&sdl_ev)) { + if (sdl_ev.type == SDL_QUIT || sdl_ev.type == SDL_KEYDOWN) { + mainloop_end = 1; + } + } + /* Draw a gray background */ + SDL_SetRenderDrawColor(sdl_rend, 0xA0, 0xA0, 0xA0, 0xFF); + SDL_RenderClear(sdl_rend); + + /* Blit the sprite onto the screen */ + SDL_RenderCopy(sdl_rend, gRess.objects[0].t, NULL, NULL); + //SDL_RenderCopy(sdl_rend, t1, &t1_src, &t1_dst); + + /* Update the screen */ + SDL_RenderPresent(sdl_rend); + + SDL_Delay(50); + } + unloadStyleRes(&gRess); + unloadMiscRes(&gRess); + + SDL_DestroyRenderer(sdl_rend); + SDL_DestroyWindow(sdl_win); + SDL_Quit(); - return res; + return 0; } |