diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0c476ffa2..4e922ddc0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -333,7 +333,7 @@ jobs: run: | sudo add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu `lsb_release -sc` main universe restricted multiverse" sudo apt-get update -y -qq - sudo apt-get install libsdl2-dev libgl1-mesa-dev libglu1-mesa-dev + sudo apt-get install libsdl2-dev libgl1-mesa-dev libglu1-mesa-dev libsdl2-ttf-dev libfontconfig1-dev - name: Install macOS dependencies if: runner.os == 'macOS' diff --git a/CMakeLists.txt b/CMakeLists.txt index d143ca837..8b455b21b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -261,6 +261,14 @@ if(NOT LIBRETRO AND NOT IOS AND NOT MACOSX) find_package(SDL2) find_package(SDL2_ttf) find_package(Fontconfig) + + # TODO: this can be removed once CI supports newer SDL2_ttf + if (NOT SDL2_ttf_FOUND) + find_package(PkgConfig) + if(PkgConfig_FOUND) + pkg_check_modules(SDL2_ttf_PKGCONFIG IMPORTED_TARGET SDL2_ttf) + endif() + endif() endif() if(MACOSX AND NOT IOS) @@ -1335,15 +1343,19 @@ else() SDL/SDLVulkanGraphicsContext.cpp ) endif() - if(SDL2_ttf_FOUND) + if(SDL2_ttf_FOUND OR SDL2_ttf_PKGCONFIG_FOUND) add_definitions(-DUSE_SDL2_TTF) - set(nativeExtraLibs ${nativeExtraLibs} SDL2_ttf::SDL2_ttf) - if(FONTCONFIG_FOUND) add_definitions(-DUSE_SDL2_TTF_FONTCONFIG) set(nativeExtraLibs ${nativeExtraLibs} Fontconfig::Fontconfig) endif() endif() + if(SDL2_ttf_FOUND) + set(nativeExtraLibs ${nativeExtraLibs} SDL2_ttf::SDL2_ttf) + elseif(SDL2_ttf_PKGCONFIG_FOUND) + add_definitions(-DUSE_SDL2_TTF_PKGCONFIG) + set(nativeExtraLibs ${nativeExtraLibs} PkgConfig::SDL2_ttf_PKGCONFIG) + endif() if(APPLE) set(nativeExtra ${nativeExtra} SDL/SDLMain.h diff --git a/Common/Render/Text/draw_text_sdl.cpp b/Common/Render/Text/draw_text_sdl.cpp index 14ea7dbb1..8a4178d71 100644 --- a/Common/Render/Text/draw_text_sdl.cpp +++ b/Common/Render/Text/draw_text_sdl.cpp @@ -378,12 +378,14 @@ void TextDrawerSDL::DrawStringBitmap(std::vector &bitmapData, TextStrin font = fallbackFonts_[0]; } +#ifndef USE_SDL2_TTF_PKGCONFIG if (align & ALIGN_HCENTER) TTF_SetFontWrappedAlign(font, TTF_WRAPPED_ALIGN_CENTER); else if (align & ALIGN_RIGHT) TTF_SetFontWrappedAlign(font, TTF_WRAPPED_ALIGN_RIGHT); else TTF_SetFontWrappedAlign(font, TTF_WRAPPED_ALIGN_LEFT); +#endif SDL_Color fgColor = { 0xFF, 0xFF, 0xFF, 0xFF }; SDL_Surface *text = TTF_RenderUTF8_Blended_Wrapped(font, processedStr.c_str(), fgColor, 0);