From f45b7def6dcb1d74ab93ecffbe32bfdd4dad920e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathis=20Rib=C3=A9mont?= Date: Mon, 3 Jan 2022 11:55:07 +0100 Subject: [PATCH] =?UTF-8?q?test=20g=C3=A9n=C3=A9ration=20texture?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pontu/CMakeLists.txt | 4 +- Pontu/entryPoints/test.c | 7 +- Pontu/include/engine/TextureLoader.h | 3 + Pontu/rsrc/font/retro/about.gif | Bin 0 -> 2790 bytes Pontu/rsrc/font/retro/retro.TTF | Bin 0 -> 30728 bytes Pontu/src/engine/TextureLoader.c | 30 ++++++++ Pontu/test/testButton.c | 1 - Pontu/test/testGenerateurTexture.c | 111 +++++++++++++++++++++++++++ Pontu/test/testTextureLoader.c | 8 +- 9 files changed, 158 insertions(+), 6 deletions(-) create mode 100644 Pontu/rsrc/font/retro/about.gif create mode 100644 Pontu/rsrc/font/retro/retro.TTF create mode 100644 Pontu/test/testGenerateurTexture.c diff --git a/Pontu/CMakeLists.txt b/Pontu/CMakeLists.txt index c2dafbb..70ee688 100644 --- a/Pontu/CMakeLists.txt +++ b/Pontu/CMakeLists.txt @@ -13,7 +13,7 @@ add_executable(Test ${MY_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/entryPoints/test.c list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) find_package(SDL2 REQUIRED) -#find_package(SDL2_ttf REQUIRED) +find_package(SDL2_ttf REQUIRED) #find_package(SDL2_net REQUIRED) find_package(SDL2_image REQUIRED) find_package(SDL2_mixer REQUIRED) @@ -40,3 +40,5 @@ target_link_libraries(${PROJECT_NAME} SDL2::Image) target_link_libraries(Test SDL2::Image) target_link_libraries(${PROJECT_NAME} SDL2::Mixer) target_link_libraries(Test SDL2::Mixer) +target_link_libraries(${PROJECT_NAME} SDL2::TTF) +target_link_libraries(Test SDL2::TTF) diff --git a/Pontu/entryPoints/test.c b/Pontu/entryPoints/test.c index 54da9a5..1428c0c 100644 --- a/Pontu/entryPoints/test.c +++ b/Pontu/entryPoints/test.c @@ -1,14 +1,15 @@ //#include "../test/testTextureLoader.c" #include "../test/testAudio.c" +#include "../test/testGenerateurTexture.c" /* This file is meant to be modified (used only to called other tests functions) */ -int main(int argc, char *argv[]) { +int main(/*int argc, char *argv[]*/) { //testTextureLoader(); - testAudio(); + //testAudio(); + testGenerateurTexture(); return 0; } - diff --git a/Pontu/include/engine/TextureLoader.h b/Pontu/include/engine/TextureLoader.h index 9ad7b20..8a06dbb 100644 --- a/Pontu/include/engine/TextureLoader.h +++ b/Pontu/include/engine/TextureLoader.h @@ -1,5 +1,6 @@ #include #include +#include /* * \brief Create a texture with an image @@ -8,3 +9,5 @@ * \return Return texture created on success. Else return NULL and print the error on STDERR. */ SDL_Texture* createTextureFromPath(SDL_Renderer* renderer, char* path); + +SDL_Texture* createGenericButtonTexture(char* text, TTF_Font* font, int* sizex, int* sizey, SDL_bool forHover); diff --git a/Pontu/rsrc/font/retro/about.gif b/Pontu/rsrc/font/retro/about.gif new file mode 100644 index 0000000000000000000000000000000000000000..26f443e74f74db566bb50019a413a63a1e6bc798 GIT binary patch literal 2790 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 literal 0 HcmV?d00001 diff --git a/Pontu/src/engine/TextureLoader.c b/Pontu/src/engine/TextureLoader.c index 4fea826..dc1a27e 100644 --- a/Pontu/src/engine/TextureLoader.c +++ b/Pontu/src/engine/TextureLoader.c @@ -1,5 +1,8 @@ #include "engine/TextureLoader.h" #include +#include +#include + SDL_Texture* createTextureFromPath(SDL_Renderer* renderer, char* path) { SDL_Texture* texture = NULL; @@ -19,3 +22,30 @@ SDL_Texture* createTextureFromPath(SDL_Renderer* renderer, char* path) } return texture; } + +SDL_Texture* createGenericButtonTexture(char* text, TTF_Font* font, int* sizex, int* sizey, SDL_bool forHover) +{ + // https://www.libsdl.org/projects/SDL_ttf/docs/SDL_ttf.html#SEC38 + + SDL_Color background = { 85, 39, 163, 255}; + SDL_Color outline = { 134, 64, 255, 255}; + int thickness = 1; //thickness of the outline; + + SDL_Window *window = NULL; + SDL_Renderer *renderer = NULL; + int statut = EXIT_FAILURE; + + //rendu + renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); + if(renderer == NULL) + { + fprintf(stderr, "Erreur SDL_CreateRenderer: %s\n", SDL_GetError()); + exit(1); + } + + if(0 != SDL_SetRenderDrawColor(renderer, 0,0,0,0)) //choisi la couleur avec laquelle travailler + { + fprintf(stderr, "Erreur SDL_SetRenderDrawColor: %s\n", SDL_GetError()); + exit(1); + } +} diff --git a/Pontu/test/testButton.c b/Pontu/test/testButton.c index 3feb247..a45e17e 100644 --- a/Pontu/test/testButton.c +++ b/Pontu/test/testButton.c @@ -81,7 +81,6 @@ int main(int argc, char const *argv[]) { SDL_SetRenderTarget(renderer, NULL); arg.texture = violetTexture; - button.hoverTexture = blueTexture; while(!quit) { while(SDL_PollEvent(&event)) diff --git a/Pontu/test/testGenerateurTexture.c b/Pontu/test/testGenerateurTexture.c new file mode 100644 index 0000000..7abff02 --- /dev/null +++ b/Pontu/test/testGenerateurTexture.c @@ -0,0 +1,111 @@ +#include "engine/TextureLoader.h" + +int testGenerateurTexture(){ + SDL_Window *window = NULL; + SDL_Renderer *renderer = NULL; + int statut = EXIT_FAILURE; + + if(0 != SDL_Init(SDL_INIT_VIDEO)) + { + fprintf(stderr, "Erreur SDL_INIT: %s\n", SDL_GetError()); + goto Quit; + } + + //fenetre + window = SDL_CreateWindow("FenĂȘtre", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640,480, SDL_WINDOW_SHOWN); + if(window == NULL) + { + fprintf(stderr, "Erreur SDL_CreateWindow: %s\n", SDL_GetError()); + goto Quit; + } + + //rendu + renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); + if(renderer == NULL) + { + fprintf(stderr, "Erreur SDL_CreateRenderer: %s\n", SDL_GetError()); + goto Quit; + } + + if(0 != SDL_SetRenderDrawColor(renderer, 0,0,0,0)) //choisi la couleur avec laquelle travailler + { + fprintf(stderr, "Erreur SDL_SetRenderDrawColor: %s\n", SDL_GetError()); + goto Quit; + } + + if(0 != SDL_RenderClear(renderer)) //efface le rendu en le repeignant avec la couleur choisi + { + fprintf(stderr, "Erreur SDL_SetRenderDrawColor: %s\n", SDL_GetError()); + goto Quit; + } + + if(0 != SDL_SetRenderDrawColor(renderer, 255,255,255,255)) //choisi la couleur avec laquelle travailler + { + fprintf(stderr, "Erreur SDL_SetRenderDrawColor: %s\n", SDL_GetError()); + goto Quit; + } + SDL_RenderPresent(renderer); + + + + if(TTF_Init()==-1) { + printf("TTF_Init: %s\n", TTF_GetError()); + exit(2); + } + + // load font.ttf at size 16 into font + TTF_Font *retroFont; + retroFont=TTF_OpenFont("rsrc/font/retro/retro.TTF", 72); + if(!retroFont) { + printf("TTF_OpenFont: %s\n", TTF_GetError()); + // handle error + } + SDL_Color White = {255, 255, 255}; + SDL_Surface* surfaceMessage = TTF_RenderText_Solid(retroFont, "put your text here", White); + + // now you can convert it into a texture + SDL_Texture* Message = SDL_CreateTextureFromSurface(renderer, surfaceMessage); + + SDL_Rect Message_rect; //create a rect + Message_rect.x = 0; //controls the rect's x coordinate + Message_rect.y = 0; // controls the rect's y coordinte + Message_rect.w = 500; // controls the width of the rect + Message_rect.h = 100; // controls the height of the rect + SDL_RenderCopy(renderer, Message, NULL, &Message_rect); + + SDL_RenderPresent(renderer); + + int minx,maxx,maxy,advance; + if(TTF_GlyphMetrics(retroFont,'put your text here',&minx,&maxx,NULL,NULL,&advance)==-1) + printf("%s\n",TTF_GetError()); + else { + printf("minx : %d\n",minx); + printf("maxx : %d\n",maxx); + printf("advance : %d\n",advance); + printf("Largeur : %d\n",maxx-minx); + } + + SDL_bool quit = SDL_FALSE; + SDL_Event event; + while(!quit) + { + while(SDL_PollEvent(&event)) + { + switch(event.type) + { + case SDL_QUIT: + quit = SDL_TRUE; + break; + } + } + } + +Quit: + if(renderer != NULL) + SDL_DestroyRenderer(renderer); + if(window != NULL) + SDL_DestroyWindow(window); + SDL_Quit(); + TTF_Quit(); + return statut; +} diff --git a/Pontu/test/testTextureLoader.c b/Pontu/test/testTextureLoader.c index 06596a3..f222f6b 100644 --- a/Pontu/test/testTextureLoader.c +++ b/Pontu/test/testTextureLoader.c @@ -17,6 +17,11 @@ int testTextureLoader(void) { goto Quit; } + if(TTF_Init()==-1) { + printf("TTF_Init: %s\n", TTF_GetError()); + exit(2); + } + //fenetre window = SDL_CreateWindow("FenĂȘtre", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640,480, SDL_WINDOW_SHOWN); if(window == NULL) @@ -55,7 +60,7 @@ int testTextureLoader(void) { SDL_bool quit = SDL_FALSE; SDL_Event event; - + picture = createTextureFromPath(renderer, path); while(!quit) { @@ -82,5 +87,6 @@ Quit: if(window != NULL) SDL_DestroyWindow(window); SDL_Quit(); + TTF_Quit(); return statut; }