From 051040af2d0829933f474e1accf8441b352bed13 Mon Sep 17 00:00:00 2001 From: Ahmad Fatoum Date: Fri, 16 Feb 2018 05:43:13 +0100 Subject: [PATCH 1/9] CMake: Remove _RAYLIB suffix from -D{SHARED,STATIC}_RAYLIB They were named so for compatibility with make, but make doesn't use the anymore. I always forget whether it's SHARED_RAYLIB or RAYLIB_SHARED... For now, RAYLIB_SHARED and STATIC_RAYLIB may still be used, but print a deprecation warning. --- .travis.yml | 2 +- appveyor.yml | 2 +- src/CMakeLists.txt | 27 ++++++++++++++++++--------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index e3a0e67da..192413469 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,7 +45,7 @@ before_install: script: - mkdir build - cd build - - cmake -DMACOS_FATLIB=ON -DSTATIC_RAYLIB=ON -DSHARED_RAYLIB=ON -DBUILD_EXAMPLES=ON -DBUILD_GAMES=ON -DUSE_EXTERNAL_GLFW=IF_POSSIBLE .. + - cmake -DMACOS_FATLIB=ON -DSTATIC=ON -DSHARED=ON -DBUILD_EXAMPLES=ON -DBUILD_GAMES=ON -DUSE_EXTERNAL_GLFW=IF_POSSIBLE .. - make VERBOSE=1 - make package diff --git a/appveyor.yml b/appveyor.yml index 4148e7446..bec37da8d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -39,7 +39,7 @@ before_build: - cd build build_script: - - cmake -G %GENERATOR% -DSTATIC_RAYLIB=ON -DSHARED_RAYLIB=ON -DBUILD_EXAMPLES=%examples% -DBUILD_GAMES=%examples% .. + - cmake -G %GENERATOR% -DSTATIC=ON -DSHARED=ON -DBUILD_EXAMPLES=%examples% -DBUILD_GAMES=%examples% .. - cmake --build . --target install after_build: diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 408714555..6f759324d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -10,12 +10,21 @@ set(RAYLIB raylib) # Name of the generated library # Shared library is always PIC. Static library should be PIC too if linked into a shared library set(WITH_PIC OFF CACHE BOOL "Compile static library as position-independent code" OFF) # Build a static and/or shared raylib? -set(SHARED_RAYLIB OFF CACHE BOOL "Build raylib as a dynamic library") -set(STATIC_RAYLIB ON CACHE BOOL "Build raylib as a static library") +set(SHARED OFF CACHE BOOL "Build raylib as a dynamic library") +set(STATIC ON CACHE BOOL "Build raylib as a static library") set(MACOS_FATLIB ON CACHE BOOL "Build fat library for both i386 and x86_64 on macOS") -if(NOT (STATIC_RAYLIB OR SHARED_RAYLIB)) - message(FATAL_ERROR "Nothing to do if both -DSHARED_RAYLIB=OFF and -DSTATIC_RAYLIB=OFF...") +if(NOT (STATIC OR SHARED)) + message(FATAL_ERROR "Nothing to do if both -DSHARED=OFF and -DSTATIC=OFF...") +endif() + +if(DEFINED SHARED_RAYLIB) + set(SHARED ${SHARED_RAYLIB}) + message(DEPRECATION "-DSHARED_RAYLIB is deprecated. Please use -DSHARED instead.") +endif() +if(DEFINED STATIC_RAYLIB) + set(STATIC ${STATIC_RAYLIB}) + message(DEPRECATION "-DSTATIC_RAYLIB is deprecated. Please use -DSTATIC instead.") endif() # Platform @@ -85,7 +94,7 @@ endif() if(MACOS_FATLIB) if (CMAKE_OSX_ARCHITECTURES) - message(FATAL_ERROR "User supplied -DCMAKE_OSX_ARCHITECTURES overrides BUILD_MACOS_FATLIB=ON") + message(FATAL_ERROR "User supplied -DCMAKE_OSX_ARCHITECTURES overrides -DMACOS_FATLIB=ON") else() SET(CMAKE_OSX_ARCHITECTURES "x86_64;i386") endif() @@ -94,7 +103,7 @@ endif() # Which platform? if(${PLATFORM} MATCHES "PLATFORM_DESKTOP") - if(${SHARED_RAYLIB}) + if(${SHARED}) add_library(${RAYLIB}_shared SHARED ${sources}) target_compile_definitions(${RAYLIB}_shared @@ -127,9 +136,9 @@ if(${PLATFORM} MATCHES "PLATFORM_DESKTOP") PUBLIC_HEADER DESTINATION include ) endif() - endif(${SHARED_RAYLIB}) + endif(${SHARED}) - if(${STATIC_RAYLIB}) + if(${STATIC}) add_library(${RAYLIB} STATIC ${sources}) target_compile_definitions(${RAYLIB} @@ -147,7 +156,7 @@ if(${PLATFORM} MATCHES "PLATFORM_DESKTOP") ARCHIVE DESTINATION lib PUBLIC_HEADER DESTINATION include ) - endif(${STATIC_RAYLIB}) + endif(${STATIC}) configure_file(../raylib.pc.in raylib.pc @ONLY) install(FILES ${CMAKE_BINARY_DIR}/release/raylib.pc DESTINATION lib/pkgconfig) From 988f5b78329f31c3107ec258e8ac3eb1358dee3b Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Fri, 16 Feb 2018 11:20:21 +0100 Subject: [PATCH 2/9] Add Builder project template --- project/Builder/README.md | 20 ++++++++++++++++++++ project/Builder/meson.build | 27 +++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 project/Builder/README.md create mode 100644 project/Builder/meson.build diff --git a/project/Builder/README.md b/project/Builder/README.md new file mode 100644 index 000000000..f816ebe5f --- /dev/null +++ b/project/Builder/README.md @@ -0,0 +1,20 @@ +# Builder project template + +This is a project template to be used with [GNOME Builder](https://raw.githubusercontent.com/jubalh/raymario/master/meson.build). +We use the [meson](https://raw.githubusercontent.com/jubalh/raymario/master/meson.build) build system here. + +We can compile our project via the command line: +``` +meson build +cd build +ninja +ninja install +``` + +Or can simply click on the `meson.build` file to open it with Builder. +Alternatively you can open Builder first and click on the `open` button and the left top. + +We added comments to the file to give you an idea which values you should edit. +For a full overview of options please check the [meson manual](http://mesonbuild.com/Manual.html). + +In the provided file we assume that the build file is located at the root folder of your project, and that all your sources are in a `src` subfolder. diff --git a/project/Builder/meson.build b/project/Builder/meson.build new file mode 100644 index 000000000..4908736cd --- /dev/null +++ b/project/Builder/meson.build @@ -0,0 +1,27 @@ +# This file should be in the main folder of your project + +# Replace 'projectname' with the name of your project +# Replace '1.0' with its version +project('projectname', 'c', version: '1.0', + meson_version: '>= 0.39.1') + +# We want a C Compiler to be present +cc = meson.get_compiler('c') + +# Find dependencies +glfw_dep = dependency('glfw3') +gl_dep = dependency('gl') +openal_dep = dependency('openal') +m_dep = cc.find_library('m', required : false) +raylib_dep = cc.find_library('raylib', required : false) + +# List your source files here +source_c = [ + 'src/main.c', +] + +# Build executable +projectname = executable('projectname', + source_c, + dependencies : [ raylib_dep, glfw_dep, gl_dep, openal_dep, m_dep ], + install : true) From 6ebc3fd29a6a05b2d56e893e753125a4c14cf184 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Fri, 16 Feb 2018 11:23:02 +0100 Subject: [PATCH 3/9] Add core_basic_window project example for Builder --- project/Builder/examples/README.md | 1 + project/Builder/examples/meson.build | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 project/Builder/examples/README.md create mode 100644 project/Builder/examples/meson.build diff --git a/project/Builder/examples/README.md b/project/Builder/examples/README.md new file mode 100644 index 000000000..cba3aef55 --- /dev/null +++ b/project/Builder/examples/README.md @@ -0,0 +1 @@ +Open `meson.build` with Builder or run `meson build; cd build; ninja; ./core_basic_window` on the commandline to launch the example. diff --git a/project/Builder/examples/meson.build b/project/Builder/examples/meson.build new file mode 100644 index 000000000..ab81ca6c3 --- /dev/null +++ b/project/Builder/examples/meson.build @@ -0,0 +1,27 @@ +# This file should be in the main folder of your project + +# Replace 'projectname' with the name of your project +# Replace '1.0' with its version +project('core_basic_window', 'c', version: '1.0', + meson_version: '>= 0.39.1') + +# We want a C Compiler to be present +cc = meson.get_compiler('c') + +# Find dependencies +glfw_dep = dependency('glfw3') +gl_dep = dependency('gl') +openal_dep = dependency('openal') +m_dep = cc.find_library('m', required : false) +raylib_dep = cc.find_library('raylib', required : false) + +# List your source files here +source_c = [ + '../../../examples/core/core_basic_window.c', +] + +# Build executable +core_basic_window = executable('core_basic_window', + source_c, + dependencies : [ raylib_dep, glfw_dep, gl_dep, openal_dep, m_dep ], + install : true) From e0a3a51b753ae20727bac9191da9b62f32c92d83 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Fri, 16 Feb 2018 11:25:12 +0100 Subject: [PATCH 4/9] Builder project: Add note about examples --- project/Builder/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/project/Builder/README.md b/project/Builder/README.md index f816ebe5f..1696e0d2b 100644 --- a/project/Builder/README.md +++ b/project/Builder/README.md @@ -18,3 +18,6 @@ We added comments to the file to give you an idea which values you should edit. For a full overview of options please check the [meson manual](http://mesonbuild.com/Manual.html). In the provided file we assume that the build file is located at the root folder of your project, and that all your sources are in a `src` subfolder. + +Check out the `examples` directory for a simple example on how to use this template. +You can also look at [raymario](https://github.com/jubalh/raymario) for a slightly more complex example which also installs resource files. From 883ed20e7c40009f116334fc2b7cf747942c68f2 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Fri, 16 Feb 2018 11:53:04 +0100 Subject: [PATCH 5/9] Add note about glfw3 and openAL --- project/Builder/README.md | 3 +++ project/Builder/meson.build | 1 + 2 files changed, 4 insertions(+) diff --git a/project/Builder/README.md b/project/Builder/README.md index 1696e0d2b..556806ab2 100644 --- a/project/Builder/README.md +++ b/project/Builder/README.md @@ -21,3 +21,6 @@ In the provided file we assume that the build file is located at the root folder Check out the `examples` directory for a simple example on how to use this template. You can also look at [raymario](https://github.com/jubalh/raymario) for a slightly more complex example which also installs resource files. + +# Notice +The files provided link against glfw3 and openAL because the latest stable version of raylib is version 1.8, which still needs this. For later versions these two dependencies are not necessary anymore. diff --git a/project/Builder/meson.build b/project/Builder/meson.build index 4908736cd..41b37fdc4 100644 --- a/project/Builder/meson.build +++ b/project/Builder/meson.build @@ -9,6 +9,7 @@ project('projectname', 'c', version: '1.0', cc = meson.get_compiler('c') # Find dependencies +# glfw3 and openal are not needed for raylib > 1.8.0 glfw_dep = dependency('glfw3') gl_dep = dependency('gl') openal_dep = dependency('openal') From 50fc4f7164fad37a7c4e542475ccb93d0f4b05ca Mon Sep 17 00:00:00 2001 From: raysan5 Date: Sat, 17 Feb 2018 21:23:45 +0100 Subject: [PATCH 6/9] Reviewed transmission mission game Support string replacing to generate newspaper headline ISSUE: UTF8 characters not supported when drawing to Image --- .../resources/fonts/Lora-BoldItalic.ttf | Bin 232472 -> 0 bytes .../{fontTitle.ttf => mom_typewritter.ttf} | Bin games/transmission/resources/missions.txt | 6 +- games/transmission/screens/screen_ending.c | 132 +++++++++++------- games/transmission/screens/screen_title.c | 2 +- 5 files changed, 88 insertions(+), 52 deletions(-) delete mode 100644 games/transmission/resources/fonts/Lora-BoldItalic.ttf rename games/transmission/resources/fonts/{fontTitle.ttf => mom_typewritter.ttf} (100%) diff --git a/games/transmission/resources/fonts/Lora-BoldItalic.ttf b/games/transmission/resources/fonts/Lora-BoldItalic.ttf deleted file mode 100644 index 19b0322632a78fcb5f1446497ccf8f457db2b948..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232472 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Ú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 #include -#define MAX_TITLE_CHAR 128 +#define MAX_TITLE_CHAR 256 #define MAX_SUBTITLE_CHAR 256 //---------------------------------------------------------------------------------- @@ -66,7 +66,12 @@ static int state = 0; static Mission *missions = NULL; -static bool showResults = false; +static char headline[MAX_TITLE_CHAR] = "\0"; + +SpriteFont fontNews; + +// String (const char *) replacement function +static char *StringReplace(char *orig, char *rep, char *with); //---------------------------------------------------------------------------------- // Ending Screen Functions Definition @@ -84,60 +89,43 @@ void InitEndingScreen(void) texBackground = LoadTexture("resources/textures/ending_background.png"); texVignette = LoadTexture("resources/textures/message_vignette.png"); - fxNews = LoadSound("resources/audio/fx_batman.ogg"); - // TODO: Check game results! missions = LoadMissions("resources/missions.txt"); int wordsCount = missions[currentMission].wordsCount; - TraceLog(LOG_WARNING, "Words count %i", wordsCount); - - char title[MAX_TITLE_CHAR] = "\0"; - //char subtitle[MAX_SUBTITLE_CHAR] = "\0"; - - char *ptrTitle = title; - int len = 0; + + strcpy(headline, missions[currentMission].msg); // Base headline + int len = strlen(headline); + // Remove @ from headline + // TODO: Also remove additional spaces + for (int i = 0; i < len; i++) + { + if (headline[i] == '@') headline[i] = ' '; + } + for (int i = 0; i < wordsCount; i++) { - if (messageWords[i].id == missions[currentMission].sols[i]) + if (messageWords[i].id != missions[currentMission].sols[i]) { - len = strlen(messageWords[i].text); - strncpy(ptrTitle, messageWords[i].text, len); - ptrTitle += len; + // WARNING: It fails if the last sentence word has a '.' after space + char *title = StringReplace(headline, messageWords[i].text, codingWords[messageWords[i].id]); - // title[len] = ' '; - // len++; - // ptrTitle++; - } - else - { - TraceLog(LOG_WARNING, "Coding word: %s", codingWords[messageWords[i].id]); - len = strlen(codingWords[messageWords[i].id]); - TraceLog(LOG_WARNING, "Lenght: %i", len); - strncpy(ptrTitle, codingWords[messageWords[i].id], len); - ptrTitle += len; + strcpy(headline, title); // Base headline updated - // title[len] = ' '; - // len++; - // ptrTitle++; + free(title); } } - ptrTitle = '\0'; - - //TraceLog(LOG_WARNING, "Titular: %s", title); + TraceLog(LOG_WARNING, "Titular: %s", headline); // Generate newspaper with title and subtitle Image imNewspaper = LoadImage("resources/textures/ending_newspaper.png"); - SpriteFont fontNews = LoadSpriteFontEx("resources/fonts/Lora-Bold.ttf", 82, 250, 0); - ImageDrawTextEx(&imNewspaper, (Vector2){ 50, 220 }, fontNews, "FRACASO EN LA GGJ18!", fontNews.baseSize, 0, DARKGRAY); + fontNews = LoadSpriteFontEx("resources/fonts/Lora-Bold.ttf", 32, 250, 0); + ImageDrawTextEx(&imNewspaper, (Vector2){ 50, 220 }, fontNews, headline, fontNews.baseSize, 0, DARKGRAY); - // TODO: Draw subtitle message - //ImageDrawTextEx(&imNewspaper, (Vector2){ 50, 210 }, fontNews, "SUBE LA ESCALERA!", fontNews.baseSize, 0, DARKGRAY); - texNewspaper = LoadTextureFromImage(imNewspaper); - UnloadSpriteFont(fontNews); + //UnloadSpriteFont(fontNews); UnloadImage(imNewspaper); } @@ -167,8 +155,6 @@ void UpdateEndingScreen(void) if (currentMission >= totalMissions) finishScreen = 2; else finishScreen = 1; } - - if (IsKeyPressed(KEY_SPACE)) showResults = !showResults; } // Ending Screen Draw logic @@ -181,16 +167,15 @@ void DrawEndingScreen(void) (Vector2){ (float)texNewspaper.width*scale/2, (float)texNewspaper.height*scale/2 }, rotation, WHITE); DrawTextureEx(texVignette, (Vector2){ 0, 0 }, 0.0f, 2.0f, WHITE); + + // Draw debug information + DrawTextEx(fontNews, headline, (Vector2){ 10, 10 }, fontNews.baseSize, 0, RAYWHITE); - if (showResults) + for (int i = 0; i < missions[currentMission].wordsCount; i++) { - for (int i = 0; i < missions[currentMission].wordsCount; i++) - { - if (messageWords[i].id == missions[currentMission].sols[i]) DrawText(messageWords[i].text, 10, 10 + 30*i, 20, GREEN); - else DrawText(codingWords[messageWords[i].id], 10, 10 + 30*i, 20, RED); - } + DrawText(codingWords[messageWords[i].id], 10, 60 + 30*i, 20, (messageWords[i].id == missions[currentMission].sols[i]) ? GREEN : RED); } - + if (state == 1) DrawButton("continuar"); } @@ -209,4 +194,55 @@ void UnloadEndingScreen(void) int FinishEndingScreen(void) { return finishScreen; -} \ No newline at end of file +} + +// String (const char *) replacement function +// NOTE: Internally allocated memory must be freed by the user (if return != NULL) +// https://stackoverflow.com/questions/779875/what-is-the-function-to-replace-string-in-c +static char *StringReplace(char *orig, char *rep, char *with) +{ + char *result; // the return string + char *ins; // the next insert point + char *tmp; // varies + int len_rep; // length of rep (the string to remove) + int len_with; // length of with (the string to replace rep with) + int len_front; // distance between rep and end of last rep + int count; // number of replacements + + // Sanity checks and initialization + if (!orig || !rep) return NULL; + + len_rep = strlen(rep); + if (len_rep == 0) return NULL; // Empty rep causes infinite loop during count + + if (!with) with = ""; // Replace with nothing if not provided + len_with = strlen(with); + + // Count the number of replacements needed + ins = orig; + for (count = 0; tmp = strstr(ins, rep); ++count) + { + ins = tmp + len_rep; + } + + tmp = result = malloc(strlen(orig) + (len_with - len_rep)*count + 1); + + if (!result) return NULL; // Memory could not be allocated + + // First time through the loop, all the variable are set correctly from here on, + // tmp points to the end of the result string + // ins points to the next occurrence of rep in orig + // orig points to the remainder of orig after "end of rep" + while (count--) + { + ins = strstr(orig, rep); + len_front = ins - orig; + tmp = strncpy(tmp, orig, len_front) + len_front; + tmp = strcpy(tmp, with) + len_with; + orig += len_front + len_rep; // move to next "end of rep" + } + + strcpy(tmp, orig); + + return result; +} diff --git a/games/transmission/screens/screen_title.c b/games/transmission/screens/screen_title.c index dc0620693..a5ad0a847 100644 --- a/games/transmission/screens/screen_title.c +++ b/games/transmission/screens/screen_title.c @@ -71,7 +71,7 @@ void InitTitleScreen(void) texBackground = LoadTexture("resources/textures/title_background.png"); fxTyping = LoadSound("resources/audio/fx_typing.ogg"); - fontTitle = LoadSpriteFontEx("resources/fonts/fontTitle.ttf", 96, 0, 0); + fontTitle = LoadSpriteFontEx("resources/fonts/mom_typewritter.ttf", 96, 0, 0); titleSize = 44; transmissionPosition = (Vector2){519, 221}; From 4492a70a4bfc32f699932eaaddc09d8225963f42 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Sun, 18 Feb 2018 18:07:57 +0100 Subject: [PATCH 7/9] Support UTF8 basic characters on ImageTextEx() Supported UTF8 range equivalent to [128..255] (80h..FFh) Exposed and renamed text function GetGlyphIndex() Renamed spriteFont parameter name to simply font Small security check on transmission mission ending screen --- games/transmission/screens/screen_ending.c | 2 +- src/raylib.h | 7 +- src/text.c | 95 +++++++++++----------- src/textures.c | 40 +++++++-- 4 files changed, 86 insertions(+), 58 deletions(-) diff --git a/games/transmission/screens/screen_ending.c b/games/transmission/screens/screen_ending.c index d9ed46962..e6ab3518c 100644 --- a/games/transmission/screens/screen_ending.c +++ b/games/transmission/screens/screen_ending.c @@ -113,7 +113,7 @@ void InitEndingScreen(void) strcpy(headline, title); // Base headline updated - free(title); + if (title != NULL) free(title); } } diff --git a/src/raylib.h b/src/raylib.h index fba973d0e..782dd4e5b 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -948,19 +948,20 @@ RLAPI void DrawTexturePro(Texture2D texture, Rectangle sourceRec, Rectangle dest RLAPI SpriteFont GetDefaultFont(void); // Get the default SpriteFont RLAPI SpriteFont LoadSpriteFont(const char *fileName); // Load SpriteFont from file into GPU memory (VRAM) RLAPI SpriteFont LoadSpriteFontEx(const char *fileName, int fontSize, int charsCount, int *fontChars); // Load SpriteFont from file with extended parameters -RLAPI void UnloadSpriteFont(SpriteFont spriteFont); // Unload SpriteFont from GPU memory (VRAM) +RLAPI void UnloadSpriteFont(SpriteFont font); // Unload SpriteFont from GPU memory (VRAM) // Text drawing functions RLAPI void DrawFPS(int posX, int posY); // Shows current FPS RLAPI void DrawText(const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) -RLAPI void DrawTextEx(SpriteFont spriteFont, const char* text, Vector2 position, // Draw text using SpriteFont and additional parameters +RLAPI void DrawTextEx(SpriteFont font, const char* text, Vector2 position, // Draw text using SpriteFont and additional parameters float fontSize, int spacing, Color tint); // Text misc. functions RLAPI int MeasureText(const char *text, int fontSize); // Measure string width for default font -RLAPI Vector2 MeasureTextEx(SpriteFont spriteFont, const char *text, float fontSize, int spacing); // Measure string size for SpriteFont +RLAPI Vector2 MeasureTextEx(SpriteFont font, const char *text, float fontSize, int spacing); // Measure string size for SpriteFont RLAPI const char *FormatText(const char *text, ...); // Formatting of text with variables to 'embed' RLAPI const char *SubText(const char *text, int position, int length); // Get a piece of a text string +RLAPI int GetGlyphIndex(SpriteFont font, int character); // Returns index position for a unicode character on sprite font //------------------------------------------------------------------------------------ // Basic 3d Shapes Drawing Functions (Module: models) diff --git a/src/text.c b/src/text.c index 227992e65..2a05773cb 100644 --- a/src/text.c +++ b/src/text.c @@ -90,11 +90,9 @@ static SpriteFont defaultFont; // Default font provided by raylib //---------------------------------------------------------------------------------- // Module specific Functions Declaration //---------------------------------------------------------------------------------- -static int GetCharIndex(SpriteFont font, int letter); - static SpriteFont LoadImageFont(Image image, Color key, int firstChar); // Load a Image font file (XNA style) #if defined(SUPPORT_FILEFORMAT_FNT) -static SpriteFont LoadBMFont(const char *fileName); // Load a BMFont file (AngelCode font file) +static SpriteFont LoadBMFont(const char *fileName); // Load a BMFont file (AngelCode font file) #endif #if defined(SUPPORT_FILEFORMAT_TTF) static SpriteFont LoadTTF(const char *fileName, int fontSize, int charsCount, int *fontChars); // Load spritefont from TTF data @@ -345,13 +343,13 @@ SpriteFont LoadSpriteFontEx(const char *fileName, int fontSize, int charsCount, } // Unload SpriteFont from GPU memory (VRAM) -void UnloadSpriteFont(SpriteFont spriteFont) +void UnloadSpriteFont(SpriteFont font) { // NOTE: Make sure spriteFont is not default font (fallback) - if (spriteFont.texture.id != GetDefaultFont().texture.id) + if (font.texture.id != GetDefaultFont().texture.id) { - UnloadTexture(spriteFont.texture); - free(spriteFont.chars); + UnloadTexture(font.texture); + free(font.chars); TraceLog(LOG_DEBUG, "Unloaded sprite font data"); } @@ -377,7 +375,7 @@ void DrawText(const char *text, int posX, int posY, int fontSize, Color color) // Draw text using SpriteFont // NOTE: chars spacing is NOT proportional to fontSize -void DrawTextEx(SpriteFont spriteFont, const char *text, Vector2 position, float fontSize, int spacing, Color tint) +void DrawTextEx(SpriteFont font, const char *text, Vector2 position, float fontSize, int spacing, Color tint) { int length = strlen(text); int textOffsetX = 0; // Offset between characters @@ -387,7 +385,7 @@ void DrawTextEx(SpriteFont spriteFont, const char *text, Vector2 position, float unsigned char letter; // Current character int index; // Index position in sprite font - scaleFactor = fontSize/spriteFont.baseSize; + scaleFactor = fontSize/font.baseSize; // NOTE: Some ugly hacks are made to support Latin-1 Extended characters directly // written in C code files (codified by default as UTF-8) @@ -397,7 +395,7 @@ void DrawTextEx(SpriteFont spriteFont, const char *text, Vector2 position, float if ((unsigned char)text[i] == '\n') { // NOTE: Fixed line spacing of 1.5 lines - textOffsetY += (int)((spriteFont.baseSize + spriteFont.baseSize/2)*scaleFactor); + textOffsetY += (int)((font.baseSize + font.baseSize/2)*scaleFactor); textOffsetX = 0; } else @@ -406,29 +404,29 @@ void DrawTextEx(SpriteFont spriteFont, const char *text, Vector2 position, float { // Support UTF-8 encoded values from [0xc2 0x80] -> [0xc2 0xbf](¿) letter = (unsigned char)text[i + 1]; - index = GetCharIndex(spriteFont, (int)letter); + index = GetGlyphIndex(font, (int)letter); i++; } else if ((unsigned char)text[i] == 0xc3) // UTF-8 encoding identification HACK! { // Support UTF-8 encoded values from [0xc3 0x80](À) -> [0xc3 0xbf](ÿ) letter = (unsigned char)text[i + 1]; - index = GetCharIndex(spriteFont, (int)letter + 64); + index = GetGlyphIndex(font, (int)letter + 64); i++; } - else index = GetCharIndex(spriteFont, (unsigned char)text[i]); + else index = GetGlyphIndex(font, (unsigned char)text[i]); if ((unsigned char)text[i] != ' ') { - DrawTexturePro(spriteFont.texture, spriteFont.chars[index].rec, - (Rectangle){ position.x + textOffsetX + spriteFont.chars[index].offsetX*scaleFactor, - position.y + textOffsetY + spriteFont.chars[index].offsetY*scaleFactor, - spriteFont.chars[index].rec.width*scaleFactor, - spriteFont.chars[index].rec.height*scaleFactor }, (Vector2){ 0, 0 }, 0.0f, tint); + DrawTexturePro(font.texture, font.chars[index].rec, + (Rectangle){ position.x + textOffsetX + font.chars[index].offsetX*scaleFactor, + position.y + textOffsetY + font.chars[index].offsetY*scaleFactor, + font.chars[index].rec.width*scaleFactor, + font.chars[index].rec.height*scaleFactor }, (Vector2){ 0, 0 }, 0.0f, tint); } - if (spriteFont.chars[index].advanceX == 0) textOffsetX += (int)(spriteFont.chars[index].rec.width*scaleFactor + spacing); - else textOffsetX += (int)(spriteFont.chars[index].advanceX*scaleFactor + spacing); + if (font.chars[index].advanceX == 0) textOffsetX += (int)(font.chars[index].rec.width*scaleFactor + spacing); + else textOffsetX += (int)(font.chars[index].advanceX*scaleFactor + spacing); } } } @@ -490,7 +488,7 @@ int MeasureText(const char *text, int fontSize) } // Measure string size for SpriteFont -Vector2 MeasureTextEx(SpriteFont spriteFont, const char *text, float fontSize, int spacing) +Vector2 MeasureTextEx(SpriteFont font, const char *text, float fontSize, int spacing) { int len = strlen(text); int tempLen = 0; // Used to count longer text line num chars @@ -499,8 +497,8 @@ Vector2 MeasureTextEx(SpriteFont spriteFont, const char *text, float fontSize, i float textWidth = 0; float tempTextWidth = 0; // Used to count longer text line width - float textHeight = (float)spriteFont.baseSize; - float scaleFactor = fontSize/(float)spriteFont.baseSize; + float textHeight = (float)font.baseSize; + float scaleFactor = fontSize/(float)font.baseSize; for (int i = 0; i < len; i++) { @@ -508,17 +506,17 @@ Vector2 MeasureTextEx(SpriteFont spriteFont, const char *text, float fontSize, i if (text[i] != '\n') { - int index = GetCharIndex(spriteFont, (int)text[i]); + int index = GetGlyphIndex(font, (int)text[i]); - if (spriteFont.chars[index].advanceX != 0) textWidth += spriteFont.chars[index].advanceX; - else textWidth += (spriteFont.chars[index].rec.width + spriteFont.chars[index].offsetX); + if (font.chars[index].advanceX != 0) textWidth += font.chars[index].advanceX; + else textWidth += (font.chars[index].rec.width + font.chars[index].offsetX); } else { if (tempTextWidth < textWidth) tempTextWidth = textWidth; lenCounter = 0; textWidth = 0; - textHeight += ((float)spriteFont.baseSize*1.5f); // NOTE: Fixed line spacing of 1.5 lines + textHeight += ((float)font.baseSize*1.5f); // NOTE: Fixed line spacing of 1.5 lines } if (tempLen < lenCounter) tempLen = lenCounter; @@ -533,6 +531,28 @@ Vector2 MeasureTextEx(SpriteFont spriteFont, const char *text, float fontSize, i return vec; } +// Returns index position for a unicode character on spritefont +int GetGlyphIndex(SpriteFont font, int character) +{ +#define UNORDERED_CHARSET +#if defined(UNORDERED_CHARSET) + int index = 0; + + for (int i = 0; i < font.charsCount; i++) + { + if (font.chars[i].value == character) + { + index = i; + break; + } + } + + return index; +#else + return (character - 32); +#endif +} + // Shows current FPS on top-left corner // NOTE: Uses default font void DrawFPS(int posX, int posY) @@ -559,27 +579,6 @@ void DrawFPS(int posX, int posY) // Module specific Functions Definition //---------------------------------------------------------------------------------- -static int GetCharIndex(SpriteFont font, int letter) -{ -#define UNORDERED_CHARSET -#if defined(UNORDERED_CHARSET) - int index = 0; - - for (int i = 0; i < font.charsCount; i++) - { - if (font.chars[i].value == letter) - { - index = i; - break; - } - } - - return index; -#else - return (letter - 32); -#endif -} - // Load an Image font file (XNA style) static SpriteFont LoadImageFont(Image image, Color key, int firstChar) { diff --git a/src/textures.c b/src/textures.c index 2772e2463..ba0bad543 100644 --- a/src/textures.c +++ b/src/textures.c @@ -1374,6 +1374,8 @@ Image ImageTextEx(SpriteFont font, const char *text, float fontSize, int spacing { int length = strlen(text); int posX = 0; + int index; // Index position in sprite font + unsigned char character; // Current character Vector2 imSize = MeasureTextEx(font, text, font.baseSize, spacing); @@ -1389,13 +1391,39 @@ Image ImageTextEx(SpriteFont font, const char *text, float fontSize, int spacing for (int i = 0; i < length; i++) { - CharInfo letter = font.chars[(int)text[i] - 32]; - - ImageDraw(&imText, imFont, letter.rec, (Rectangle){ posX + letter.offsetX, - letter.offsetY, letter.rec.width, letter.rec.height }); + if ((unsigned char)text[i] == '\n') + { + // TODO: Support line break + } + else + { + if ((unsigned char)text[i] == 0xc2) // UTF-8 encoding identification HACK! + { + // Support UTF-8 encoded values from [0xc2 0x80] -> [0xc2 0xbf](¿) + character = (unsigned char)text[i + 1]; + index = GetGlyphIndex(font, (int)character); + i++; + } + else if ((unsigned char)text[i] == 0xc3) // UTF-8 encoding identification HACK! + { + // Support UTF-8 encoded values from [0xc3 0x80](À) -> [0xc3 0xbf](ÿ) + character = (unsigned char)text[i + 1]; + index = GetGlyphIndex(font, (int)character + 64); + i++; + } + else index = GetGlyphIndex(font, (unsigned char)text[i]); - if (letter.advanceX == 0) posX += letter.rec.width + spacing; - else posX += letter.advanceX + spacing; + CharInfo letter = font.chars[index]; + + if ((unsigned char)text[i] != ' ') + { + ImageDraw(&imText, imFont, letter.rec, (Rectangle){ posX + letter.offsetX, + letter.offsetY, letter.rec.width, letter.rec.height }); + } + + if (letter.advanceX == 0) posX += letter.rec.width + spacing; + else posX += letter.advanceX + spacing; + } } UnloadImage(imFont); From 0958904eac63a82b427575439de1d96a62d4f5cf Mon Sep 17 00:00:00 2001 From: raysan5 Date: Sun, 18 Feb 2018 19:29:13 +0100 Subject: [PATCH 8/9] Added comments to review function ImageTextEx() --- src/textures.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/textures.c b/src/textures.c index ba0bad543..a571718ba 100644 --- a/src/textures.c +++ b/src/textures.c @@ -1375,13 +1375,16 @@ Image ImageTextEx(SpriteFont font, const char *text, float fontSize, int spacing int length = strlen(text); int posX = 0; int index; // Index position in sprite font - unsigned char character; // Current character + unsigned char character; // Current character + // TODO: ISSUE: Measured text size does not seem to be correct... issue on ImageDraw() Vector2 imSize = MeasureTextEx(font, text, font.baseSize, spacing); TraceLog(LOG_DEBUG, "Text Image size: %f, %f", imSize.x, imSize.y); // NOTE: glGetTexImage() not available in OpenGL ES + // TODO: This is horrible, retrieving font texture from GPU!!! + // Define ImageFont struct? or include Image spritefont in SpriteFont struct? Image imFont = GetTextureData(font.texture); ImageColorTint(&imFont, tint); // Apply color tint to font From 7e32a627e88035c21cd16daddca128a9b6024de9 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 19 Feb 2018 00:03:24 +0100 Subject: [PATCH 9/9] Corrected path backslash --- templates/advance_game/Makefile | 2 +- templates/simple_game/Makefile | 2 +- templates/standard_game/Makefile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/advance_game/Makefile b/templates/advance_game/Makefile index 0ebeb52e4..60739253b 100644 --- a/templates/advance_game/Makefile +++ b/templates/advance_game/Makefile @@ -26,7 +26,7 @@ # Define required raylib variables # WARNING: To compile to HTML5, code must be redesigned to use emscripten.h and emscripten_set_main_loop() PLATFORM ?= PLATFORM_DESKTOP -RAYLIB_PATH = ..\.. +RAYLIB_PATH = ../.. PROJECT_NAME ?= advance_game # Default path for raylib on Raspberry Pi, if installed in different path, update it! diff --git a/templates/simple_game/Makefile b/templates/simple_game/Makefile index 23cd0619a..2c9c35689 100644 --- a/templates/simple_game/Makefile +++ b/templates/simple_game/Makefile @@ -26,7 +26,7 @@ # Define required raylib variables # WARNING: To compile to HTML5, code must be redesigned to use emscripten.h and emscripten_set_main_loop() PLATFORM ?= PLATFORM_DESKTOP -RAYLIB_PATH ?= ..\.. +RAYLIB_PATH ?= ../.. PROJECT_NAME ?= simple_game # Default path for raylib on Raspberry Pi, if installed in different path, update it! diff --git a/templates/standard_game/Makefile b/templates/standard_game/Makefile index b3e9c82ae..d596a6dc6 100644 --- a/templates/standard_game/Makefile +++ b/templates/standard_game/Makefile @@ -26,7 +26,7 @@ # Define required raylib variables # WARNING: To compile to HTML5, code must be redesigned to use emscripten.h and emscripten_set_main_loop() PLATFORM ?= PLATFORM_DESKTOP -RAYLIB_PATH = ..\.. +RAYLIB_PATH = ../.. PROJECT_NAME ?= standard_game # Default path for raylib on Raspberry Pi, if installed in different path, update it!