summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2022-01-08 14:53:25 +0100
committerGitHub <noreply@github.com>2022-01-08 14:53:25 +0100
commit76dbd0d2d04712dcad4f7c6afecb97fa8d662d6d (patch)
tree248b907d2abeda0166d992bfb7b74b61cfe96d8a
parentbf22569019749e421e8ffe0a73cff988a9a9c846 (diff)
downloadminetest-76dbd0d2d04712dcad4f7c6afecb97fa8d662d6d.tar.gz
minetest-76dbd0d2d04712dcad4f7c6afecb97fa8d662d6d.tar.bz2
minetest-76dbd0d2d04712dcad4f7c6afecb97fa8d662d6d.zip
Fully remove bitmap font support (#11863)
Freetype is now a build requirement.
-rw-r--r--.github/workflows/build.yml23
-rw-r--r--README.md18
-rw-r--r--android/native/jni/Android.mk1
-rw-r--r--builtin/settingtypes.txt16
-rw-r--r--doc/Doxyfile.in1
-rw-r--r--fonts/mono_dejavu_sans_10.xmlbin257014 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_100.pngbin56121 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_11.xmlbin263644 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_110.pngbin67613 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_12.xmlbin268932 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_120.pngbin73938 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_14.xmlbin269188 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_140.pngbin89073 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_16.xmlbin275642 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_160.pngbin101939 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_18.xmlbin279962 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_180.pngbin122274 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_20.xmlbin282588 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_200.pngbin138662 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_22.xmlbin283950 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_220.pngbin152844 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_24.xmlbin286626 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_240.pngbin170247 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_26.xmlbin289710 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_260.pngbin190156 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_28.xmlbin292596 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_280.pngbin200848 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_4.xmlbin237740 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_40.pngbin15668 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_6.xmlbin245472 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_60.pngbin29291 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_8.xmlbin251876 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_80.pngbin45552 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_9.xmlbin254016 -> 0 bytes
-rw-r--r--fonts/mono_dejavu_sans_90.pngbin50995 -> 0 bytes
-rw-r--r--src/CMakeLists.txt49
-rw-r--r--src/client/fontengine.cpp153
-rw-r--r--src/client/fontengine.h9
-rw-r--r--src/cmake_config.h.in1
-rw-r--r--src/constants.h1
-rw-r--r--src/defaultsettings.cpp11
-rw-r--r--src/gui/guiChatConsole.cpp14
-rw-r--r--src/gui/guiHyperText.cpp23
-rw-r--r--src/gui/guiHyperText.h11
-rw-r--r--src/irrlicht_changes/CMakeLists.txt7
-rw-r--r--src/irrlicht_changes/static_text.cpp13
-rw-r--r--src/irrlicht_changes/static_text.h36
-rw-r--r--src/version.cpp1
-rwxr-xr-xutil/buildbot/buildwin32.sh1
-rwxr-xr-xutil/buildbot/buildwin64.sh1
50 files changed, 71 insertions, 319 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index af1de15ec..b1ba78ed0 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -150,29 +150,6 @@ jobs:
run: |
./bin/minetestserver --run-unittests
- # Build without freetype (client-only)
- clang_9_no_freetype:
- name: "clang_9 (FREETYPE=0)"
- runs-on: ubuntu-18.04
- steps:
- - uses: actions/checkout@v2
- - name: Install deps
- run: |
- source ./util/ci/common.sh
- install_linux_deps clang-9
-
- - name: Build
- run: |
- ./util/ci/build.sh
- env:
- CC: clang-9
- CXX: clang++-9
- CMAKE_FLAGS: "-DENABLE_FREETYPE=0 -DBUILD_SERVER=0"
-
- - name: Test
- run: |
- ./bin/minetest --run-unittests
-
docker:
name: "Docker image"
runs-on: ubuntu-18.04
diff --git a/README.md b/README.md
index 009ae8d38..03a161c9a 100644
--- a/README.md
+++ b/README.md
@@ -135,7 +135,8 @@ Compiling
| GCC | 4.9+ | Can be replaced with Clang 3.4+ |
| CMake | 3.5+ | |
| IrrlichtMt | - | Custom version of Irrlicht, see https://github.com/minetest/irrlicht |
-| SQLite3 | 3.0+ | |
+| Freetype | 2.0+ | |
+| SQLite3 | 3+ | |
| Zstd | 1.0+ | |
| LuaJIT | 2.0+ | Bundled Lua 5.1 is used if not present |
| GMP | 5.0.0+ | Bundled mini-GMP is used if not present |
@@ -143,7 +144,7 @@ Compiling
For Debian/Ubuntu users:
- sudo apt install g++ make libc6-dev cmake libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev libzstd-dev
+ sudo apt install g++ make libc6-dev cmake libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev libzstd-dev libluajit-5.1-dev
For Fedora users:
@@ -247,7 +248,6 @@ General options and their default values:
MinSizeRel - Release build with -Os passed to compiler to make executable as small as possible
ENABLE_CURL=ON - Build with cURL; Enables use of online mod repo, public serverlist and remote media fetching via http
ENABLE_CURSES=ON - Build with (n)curses; Enables a server side terminal (command line option: --terminal)
- ENABLE_FREETYPE=ON - Build with FreeType2; Allows using TTF fonts
ENABLE_GETTEXT=ON - Build with Gettext; Allows using translations
ENABLE_GLES=OFF - Build for OpenGL ES instead of OpenGL (requires support by IrrlichtMt)
ENABLE_LEVELDB=ON - Build with LevelDB; Enables use of LevelDB map backend
@@ -273,10 +273,10 @@ Library specific options:
EGL_INCLUDE_DIR - Only if building with GLES; directory that contains egl.h
EGL_LIBRARY - Only if building with GLES; path to libEGL.a/libEGL.so
EXTRA_DLL - Only on Windows; optional paths to additional DLLs that should be packaged
- FREETYPE_INCLUDE_DIR_freetype2 - Only if building with FreeType 2; directory that contains an freetype directory with files such as ftimage.h in it
- FREETYPE_INCLUDE_DIR_ft2build - Only if building with FreeType 2; directory that contains ft2build.h
- FREETYPE_LIBRARY - Only if building with FreeType 2; path to libfreetype.a/libfreetype.so/freetype.lib
- FREETYPE_DLL - Only if building with FreeType 2 on Windows; path to libfreetype.dll
+ FREETYPE_INCLUDE_DIR_freetype2 - Directory that contains files such as ftimage.h
+ FREETYPE_INCLUDE_DIR_ft2build - Directory that contains ft2build.h
+ FREETYPE_LIBRARY - Path to libfreetype.a/libfreetype.so/freetype.lib
+ FREETYPE_DLL - Only on Windows; path to libfreetype-6.dll
GETTEXT_DLL - Only when building with gettext on Windows; paths to libintl + libiconv DLLs
GETTEXT_INCLUDE_DIR - Only when building with gettext; directory that contains iconv.h
GETTEXT_LIBRARY - Only when building with gettext on Windows; path to libintl.dll.a
@@ -337,7 +337,6 @@ vcpkg install zlib zstd curl[winssl] openal-soft libvorbis libogg libjpeg-turbo
- **Don't forget about IrrlichtMt.** The easiest way is to clone it to `lib/irrlichtmt` as described in the Linux section.
- `curl` is optional, but required to read the serverlist, `curl[winssl]` is required to use the content store.
- `openal-soft`, `libvorbis` and `libogg` are optional, but required to use sound.
-- `freetype` is optional, it allows true-type font rendering.
- `luajit` is optional, it replaces the integrated Lua interpreter with a faster just-in-time interpreter.
- `gmp` and `jsoncpp` are optional, otherwise the bundled versions will be compiled
@@ -429,8 +428,7 @@ cmake .. \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 \
-DCMAKE_FIND_FRAMEWORK=LAST \
-DCMAKE_INSTALL_PREFIX=../build/macos/ \
- -DRUN_IN_PLACE=FALSE \
- -DENABLE_FREETYPE=TRUE -DENABLE_GETTEXT=TRUE
+ -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE
make -j$(nproc)
make install
diff --git a/android/native/jni/Android.mk b/android/native/jni/Android.mk
index 85c13bfb3..f8ca74d3c 100644
--- a/android/native/jni/Android.mk
+++ b/android/native/jni/Android.mk
@@ -91,7 +91,6 @@ LOCAL_CFLAGS += \
-DENABLE_GLES=1 \
-DUSE_CURL=1 \
-DUSE_SOUND=1 \
- -DUSE_FREETYPE=1 \
-DUSE_LEVELDB=0 \
-DUSE_LUAJIT=1 \
-DUSE_GETTEXT=1 \
diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt
index 22e69e30a..c25a941de 100644
--- a/builtin/settingtypes.txt
+++ b/builtin/settingtypes.txt
@@ -886,10 +886,6 @@ tooltip_show_delay (Tooltip delay) int 400
# Append item name to tooltip.
tooltip_append_itemname (Append item name) bool false
-# Whether FreeType fonts are used, requires FreeType support to be compiled in.
-# If disabled, bitmap and XML vectors fonts are used instead.
-freetype (FreeType fonts) bool true
-
font_bold (Font bold by default) bool false
font_italic (Font italic by default) bool false
@@ -909,9 +905,7 @@ font_size (Font size) int 16 1
# sized 16, 32, 48, etc., so a mod requesting a size of 25 will get 32.
font_size_divisible_by (Font size divisible by) int 1 1
-# Path to the default font.
-# If “freetype” setting is enabled: Must be a TrueType font.
-# If “freetype” setting is disabled: Must be a bitmap or XML vectors font.
+# Path to the default font. Must be a TrueType font.
# The fallback font will be used if the font cannot be loaded.
font_path (Regular font path) filepath fonts/Arimo-Regular.ttf
@@ -928,9 +922,7 @@ mono_font_size (Monospace font size) int 16 1
# sized 16, 32, 48, etc., so a mod requesting a size of 25 will get 32.
mono_font_size_divisible_by (Monospace font size divisible by) int 1 1
-# Path to the monospace font.
-# If “freetype” setting is enabled: Must be a TrueType font.
-# If “freetype” setting is disabled: Must be a bitmap or XML vectors font.
+# Path to the monospace font. Must be a TrueType font.
# This font is used for e.g. the console and profiler screen.
mono_font_path (Monospace font path) filepath fonts/Cousine-Regular.ttf
@@ -938,9 +930,7 @@ mono_font_path_bold (Bold monospace font path) filepath fonts/Cousine-Bold.ttf
mono_font_path_italic (Italic monospace font path) filepath fonts/Cousine-Italic.ttf
mono_font_path_bold_italic (Bold and italic monospace font path) filepath fonts/Cousine-BoldItalic.ttf
-# Path of the fallback font.
-# If “freetype” setting is enabled: Must be a TrueType font.
-# If “freetype” setting is disabled: Must be a bitmap or XML vectors font.
+# Path of the fallback font. Must be a TrueType font.
# This font will be used for certain languages or if the default font is unavailable.
fallback_font_path (Fallback font path) filepath fonts/DroidSansFallbackFull.ttf
diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in
index d7816f0e4..ae36fd6bf 100644
--- a/doc/Doxyfile.in
+++ b/doc/Doxyfile.in
@@ -16,7 +16,6 @@ PREDEFINED = "USE_SPATIAL=1" \
"USE_REDIS=1" \
"USE_SOUND=1" \
"USE_CURL=1" \
- "USE_FREETYPE=1" \
"USE_GETTEXT=1"
# Input
diff --git a/fonts/mono_dejavu_sans_10.xml b/fonts/mono_dejavu_sans_10.xml
deleted file mode 100644
index 0276cedb6..000000000
--- a/fonts/mono_dejavu_sans_10.xml
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_100.png b/fonts/mono_dejavu_sans_100.png
deleted file mode 100644
index 45a312542..000000000
--- a/fonts/mono_dejavu_sans_100.png
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_11.xml b/fonts/mono_dejavu_sans_11.xml
deleted file mode 100644
index f727ed2bb..000000000
--- a/fonts/mono_dejavu_sans_11.xml
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_110.png b/fonts/mono_dejavu_sans_110.png
deleted file mode 100644
index c90c0e242..000000000
--- a/fonts/mono_dejavu_sans_110.png
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_12.xml b/fonts/mono_dejavu_sans_12.xml
deleted file mode 100644
index 38f6427be..000000000
--- a/fonts/mono_dejavu_sans_12.xml
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_120.png b/fonts/mono_dejavu_sans_120.png
deleted file mode 100644
index 0cebd70e8..000000000
--- a/fonts/mono_dejavu_sans_120.png
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_14.xml b/fonts/mono_dejavu_sans_14.xml
deleted file mode 100644
index b90a34960..000000000
--- a/fonts/mono_dejavu_sans_14.xml
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_140.png b/fonts/mono_dejavu_sans_140.png
deleted file mode 100644
index a413759ea..000000000
--- a/fonts/mono_dejavu_sans_140.png
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_16.xml b/fonts/mono_dejavu_sans_16.xml
deleted file mode 100644
index 3f7d2c2a2..000000000
--- a/fonts/mono_dejavu_sans_16.xml
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_160.png b/fonts/mono_dejavu_sans_160.png
deleted file mode 100644
index bd8a2f40a..000000000
--- a/fonts/mono_dejavu_sans_160.png
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_18.xml b/fonts/mono_dejavu_sans_18.xml
deleted file mode 100644
index 92865cbfc..000000000
--- a/fonts/mono_dejavu_sans_18.xml
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_180.png b/fonts/mono_dejavu_sans_180.png
deleted file mode 100644
index a299afcbe..000000000
--- a/fonts/mono_dejavu_sans_180.png
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_20.xml b/fonts/mono_dejavu_sans_20.xml
deleted file mode 100644
index acd8c77d0..000000000
--- a/fonts/mono_dejavu_sans_20.xml
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_200.png b/fonts/mono_dejavu_sans_200.png
deleted file mode 100644
index 68ee62681..000000000
--- a/fonts/mono_dejavu_sans_200.png
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_22.xml b/fonts/mono_dejavu_sans_22.xml
deleted file mode 100644
index eafb4def6..000000000
--- a/fonts/mono_dejavu_sans_22.xml
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_220.png b/fonts/mono_dejavu_sans_220.png
deleted file mode 100644
index 042d7e094..000000000
--- a/fonts/mono_dejavu_sans_220.png
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_24.xml b/fonts/mono_dejavu_sans_24.xml
deleted file mode 100644
index fc8b6232e..000000000
--- a/fonts/mono_dejavu_sans_24.xml
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_240.png b/fonts/mono_dejavu_sans_240.png
deleted file mode 100644
index d2d68c5bb..000000000
--- a/fonts/mono_dejavu_sans_240.png
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_26.xml b/fonts/mono_dejavu_sans_26.xml
deleted file mode 100644
index 829f09948..000000000
--- a/fonts/mono_dejavu_sans_26.xml
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_260.png b/fonts/mono_dejavu_sans_260.png
deleted file mode 100644
index 3a8cb6c57..000000000
--- a/fonts/mono_dejavu_sans_260.png
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_28.xml b/fonts/mono_dejavu_sans_28.xml
deleted file mode 100644
index b5b25bd07..000000000
--- a/fonts/mono_dejavu_sans_28.xml
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_280.png b/fonts/mono_dejavu_sans_280.png
deleted file mode 100644
index ccf62ba48..000000000
--- a/fonts/mono_dejavu_sans_280.png
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_4.xml b/fonts/mono_dejavu_sans_4.xml
deleted file mode 100644
index cfebb39b3..000000000
--- a/fonts/mono_dejavu_sans_4.xml
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_40.png b/fonts/mono_dejavu_sans_40.png
deleted file mode 100644
index 24ed693f7..000000000
--- a/fonts/mono_dejavu_sans_40.png
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_6.xml b/fonts/mono_dejavu_sans_6.xml
deleted file mode 100644
index d0e1de21d..000000000
--- a/fonts/mono_dejavu_sans_6.xml
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_60.png b/fonts/mono_dejavu_sans_60.png
deleted file mode 100644
index 326af996f..000000000
--- a/fonts/mono_dejavu_sans_60.png
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_8.xml b/fonts/mono_dejavu_sans_8.xml
deleted file mode 100644
index c48bf7ccc..000000000
--- a/fonts/mono_dejavu_sans_8.xml
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_80.png b/fonts/mono_dejavu_sans_80.png
deleted file mode 100644
index 04326dbb2..000000000
--- a/fonts/mono_dejavu_sans_80.png
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_9.xml b/fonts/mono_dejavu_sans_9.xml
deleted file mode 100644
index 74e841034..000000000
--- a/fonts/mono_dejavu_sans_9.xml
+++ /dev/null
Binary files differ
diff --git a/fonts/mono_dejavu_sans_90.png b/fonts/mono_dejavu_sans_90.png
deleted file mode 100644
index 65ac51858..000000000
--- a/fonts/mono_dejavu_sans_90.png
+++ /dev/null
Binary files differ
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e3389cea9..ed0929564 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -122,16 +122,8 @@ if(BUILD_CLIENT)
endif()
endif()
-
-option(ENABLE_FREETYPE "Enable FreeType2 (TrueType fonts and basic unicode support)" TRUE)
-set(USE_FREETYPE FALSE)
-
-if(BUILD_CLIENT AND ENABLE_FREETYPE)
- find_package(Freetype)
- if(FREETYPE_FOUND)
- message(STATUS "Freetype enabled.")
- set(USE_FREETYPE TRUE)
- endif()
+if(BUILD_CLIENT)
+ find_package(Freetype REQUIRED)
endif()
option(ENABLE_CURSES "Enable ncurses console" TRUE)
@@ -495,13 +487,11 @@ include_directories(
${PROJECT_SOURCE_DIR}
${ZLIB_INCLUDE_DIR}
${ZSTD_INCLUDE_DIR}
- ${SOUND_INCLUDE_DIRS}
${SQLITE3_INCLUDE_DIR}
${LUA_INCLUDE_DIR}
${GMP_INCLUDE_DIR}
${JSON_INCLUDE_DIR}
${LUA_BIT_INCLUDE_DIR}
- ${X11_INCLUDE_DIR}
${PROJECT_SOURCE_DIR}/script
)
@@ -509,8 +499,12 @@ if(USE_GETTEXT)
include_directories(${GETTEXT_INCLUDE_DIR})
endif()
-if(USE_FREETYPE)
- include_directories(${FREETYPE_INCLUDE_DIRS})
+if(BUILD_CLIENT)
+ include_directories(
+ ${FREETYPE_INCLUDE_DIRS}
+ ${SOUND_INCLUDE_DIRS}
+ ${X11_INCLUDE_DIR}
+ )
endif()
if(USE_CURL)
@@ -539,6 +533,7 @@ if(BUILD_CLIENT)
${GMP_LIBRARY}
${JSON_LIBRARY}
${LUA_BIT_LIBRARY}
+ ${FREETYPE_LIBRARY}
${PLATFORM_LIBS}
)
if(NOT USE_LUAJIT)
@@ -573,17 +568,11 @@ if(BUILD_CLIENT)
${CURL_LIBRARY}
)
endif()
- if(USE_FREETYPE)
- if(FREETYPE_PKGCONFIG_FOUND)
- set_target_properties(${PROJECT_NAME}
- PROPERTIES
- COMPILE_FLAGS "${FREETYPE_CFLAGS_STR}"
- )
- endif()
- target_link_libraries(
- ${PROJECT_NAME}
- ${FREETYPE_LIBRARY}
- )
+ if(FREETYPE_PKGCONFIG_FOUND)
+ set_target_properties(${PROJECT_NAME}
+ PROPERTIES
+ COMPILE_FLAGS "${FREETYPE_CFLAGS_STR}"
+ )
endif()
if (USE_CURSES)
target_link_libraries(${PROJECT_NAME} ${CURSES_LIBRARIES})
@@ -896,14 +885,8 @@ if(BUILD_CLIENT)
endforeach()
endif()
- # Install necessary fonts depending on configuration
- if(USE_FREETYPE)
- install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../fonts" DESTINATION "${SHAREDIR}"
- FILES_MATCHING PATTERN "*.ttf" PATTERN "*.txt")
- else()
- install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../fonts" DESTINATION "${SHAREDIR}"
- FILES_MATCHING PATTERN "*.png" PATTERN "*.xml")
- endif()
+ install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../fonts" DESTINATION "${SHAREDIR}"
+ FILES_MATCHING PATTERN "*.ttf" PATTERN "*.txt")
endif(BUILD_CLIENT)
if(BUILD_SERVER)
diff --git a/src/client/fontengine.cpp b/src/client/fontengine.cpp
index e537b756c..ad8305b45 100644
--- a/src/client/fontengine.cpp
+++ b/src/client/fontengine.cpp
@@ -24,10 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "porting.h"
#include "filesys.h"
#include "gettext.h"
-
-#if USE_FREETYPE
#include "irrlicht_changes/CGUITTFont.h"
-#endif
/** maximum size distance for getting a "similar" font size */
#define MAX_FONT_SIZE_OFFSET 10
@@ -45,9 +42,8 @@ static void font_setting_changed(const std::string &name, void *userdata)
FontEngine::FontEngine(gui::IGUIEnvironment* env) :
m_env(env)
{
-
for (u32 &i : m_default_size) {
- i = (FontMode) FONT_SIZE_UNSPECIFIED;
+ i = FONT_SIZE_UNSPECIFIED;
}
assert(g_settings != NULL); // pre-condition
@@ -56,25 +52,19 @@ FontEngine::FontEngine(gui::IGUIEnvironment* env) :
readSettings();
- if (m_currentMode != FM_Simple) {
- g_settings->registerChangedCallback("font_size", font_setting_changed, NULL);
- g_settings->registerChangedCallback("font_bold", font_setting_changed, NULL);
- g_settings->registerChangedCallback("font_italic", font_setting_changed, NULL);
- g_settings->registerChangedCallback("font_path", font_setting_changed, NULL);
- g_settings->registerChangedCallback("font_path_bold", font_setting_changed, NULL);
- g_settings->registerChangedCallback("font_path_italic", font_setting_changed, NULL);
- g_settings->registerChangedCallback("font_path_bolditalic", font_setting_changed, NULL);
- g_settings->registerChangedCallback("font_shadow", font_setting_changed, NULL);
- g_settings->registerChangedCallback("font_shadow_alpha", font_setting_changed, NULL);
- g_settings->registerChangedCallback("font_size_divisible_by", font_setting_changed, NULL);
- g_settings->registerChangedCallback("fallback_font_path", font_setting_changed, NULL);
- }
+ const char *settings[] = {
+ "font_size", "font_bold", "font_italic", "font_size_divisible_by",
+ "mono_font_size", "mono_font_size_divisible_by",
+ "font_shadow", "font_shadow_alpha",
+ "font_path", "font_path_bold", "font_path_italic", "font_path_bold_italic",
+ "mono_font_path", "mono_font_path_bold", "mono_font_path_italic",
+ "mono_font_path_bold_italic",
+ "fallback_font_path",
+ "screen_dpi", "gui_scaling",
+ };
- g_settings->registerChangedCallback("mono_font_path", font_setting_changed, NULL);
- g_settings->registerChangedCallback("mono_font_size", font_setting_changed, NULL);
- g_settings->registerChangedCallback("mono_font_size_divisible_by", font_setting_changed, NULL);
- g_settings->registerChangedCallback("screen_dpi", font_setting_changed, NULL);
- g_settings->registerChangedCallback("gui_scaling", font_setting_changed, NULL);
+ for (auto name : settings)
+ g_settings->registerChangedCallback(name, font_setting_changed, NULL);
}
/******************************************************************************/
@@ -108,16 +98,8 @@ irr::gui::IGUIFont *FontEngine::getFont(FontSpec spec, bool may_fail)
{
if (spec.mode == FM_Unspecified) {
spec.mode = m_currentMode;
- } else if (m_currentMode == FM_Simple) {
- // Freetype disabled -> Force simple mode
- spec.mode = (spec.mode == FM_Mono ||
- spec.mode == FM_SimpleMono) ?
- FM_SimpleMono : FM_Simple;
- // Support for those could be added, but who cares?
- spec.bold = false;
- spec.italic = false;
} else if (spec.mode == _FM_Fallback) {
- // Fallback font doesn't support these either
+ // Fallback font doesn't support these
spec.bold = false;
spec.italic = false;
}
@@ -134,11 +116,7 @@ irr::gui::IGUIFont *FontEngine::getFont(FontSpec spec, bool may_fail)
return it->second;
// Font does not yet exist
- gui::IGUIFont *font = nullptr;
- if (spec.mode == FM_Simple || spec.mode == FM_SimpleMono)
- font = initSimpleFont(spec);
- else
- font = initFont(spec);
+ gui::IGUIFont *font = initFont(spec);
if (!font && !may_fail) {
errorstream << "Minetest cannot continue without a valid font. "
@@ -185,13 +163,6 @@ unsigned int FontEngine::getDefaultFontSize()
unsigned int FontEngine::getFontSize(FontMode mode)
{
- if (m_currentMode == FM_Simple) {
- if (mode == FM_Mono || mode == FM_SimpleMono)
- return m_default_size[FM_SimpleMono];
- else
- return m_default_size[FM_Simple];
- }
-
if (mode == FM_Unspecified)
return m_default_size[FM_Standard];
@@ -201,20 +172,12 @@ unsigned int FontEngine::getFontSize(FontMode mode)
/******************************************************************************/
void FontEngine::readSettings()
{
- if (USE_FREETYPE && g_settings->getBool("freetype")) {
- m_default_size[FM_Standard] = g_settings->getU16("font_size");
- m_default_size[_FM_Fallback] = g_settings->getU16("font_size");
- m_default_size[FM_Mono] = g_settings->getU16("mono_font_size");
+ m_default_size[FM_Standard] = g_settings->getU16("font_size");
+ m_default_size[_FM_Fallback] = g_settings->getU16("font_size");
+ m_default_size[FM_Mono] = g_settings->getU16("mono_font_size");
- m_default_bold = g_settings->getBool("font_bold");
- m_default_italic = g_settings->getBool("font_italic");
-
- } else {
- m_currentMode = FM_Simple;
- }
-
- m_default_size[FM_Simple] = g_settings->getU16("font_size");
- m_default_size[FM_SimpleMono] = g_settings->getU16("mono_font_size");
+ m_default_bold = g_settings->getBool("font_bold");
+ m_default_italic = g_settings->getBool("font_italic");
cleanCache();
updateFontCache();
@@ -283,7 +246,6 @@ gui::IGUIFont *FontEngine::initFont(const FontSpec &spec)
Settings::getLayer(SL_DEFAULTS)->get(path_setting)
};
-#if USE_FREETYPE
for (const std::string &font_path : fallback_settings) {
gui::CGUITTFont *font = gui::CGUITTFont::createTTFont(m_env,
font_path.c_str(), size, true, true, font_shadow,
@@ -302,80 +264,5 @@ gui::IGUIFont *FontEngine::initFont(const FontSpec &spec)
}
return font;
}
-#else
- errorstream << "FontEngine: Tried to load TTF font but Minetest was"
- " compiled without Freetype." << std::endl;
-#endif
return nullptr;
}
-
-/** initialize a font without freetype */
-gui::IGUIFont *FontEngine::initSimpleFont(const FontSpec &spec)
-{
- assert(spec.mode == FM_Simple || spec.mode == FM_SimpleMono);
- assert(spec.size != FONT_SIZE_UNSPECIFIED);
-
- const std::string &font_path = g_settings->get(
- (spec.mode == FM_SimpleMono) ? "mono_font_path" : "font_path");
-
- size_t pos_dot = font_path.find_last_of('.');
- std::string basename = font_path, ending;
- if (pos_dot != std::string::npos)
- ending = lowercase(font_path.substr(pos_dot));
-
- if (ending == ".ttf") {
- errorstream << "FontEngine: Found font \"" << font_path
- << "\" but freetype is not available." << std::endl;
- return nullptr;
- }
-
- if (ending == ".xml" || ending == ".png")
- basename = font_path.substr(0, pos_dot);
-
- u32 size = std::floor(
- RenderingEngine::getDisplayDensity() *
- g_settings->getFloat("gui_scaling") *
- spec.size);
-
- irr::gui::IGUIFont *font = nullptr;
- std::string font_extensions[] = { ".png", ".xml" };
-
- // Find nearest matching font scale
- // Does a "zig-zag motion" (positibe/negative), from 0 to MAX_FONT_SIZE_OFFSET
- for (s32 zoffset = 0; zoffset < MAX_FONT_SIZE_OFFSET * 2; zoffset++) {
- std::stringstream path;
-
- // LSB to sign
- s32 sign = (zoffset & 1) ? -1 : 1;
- s32 offset = zoffset >> 1;
-
- for (const std::string &ext : font_extensions) {
- path.str(""); // Clear
- path << basename << "_" << (size + offset * sign) << ext;
-
- if (!fs::PathExists(path.str()))
- continue;
-
- font = m_env->getFont(path.str().c_str());
-
- if (font) {
- verbosestream << "FontEngine: found font: " << path.str() << std::endl;
- break;
- }
- }
-
- if (font)
- break;
- }
-
- // try name direct
- if (font == NULL) {
- if (fs::PathExists(font_path)) {
- font = m_env->getFont(font_path.c_str());
- if (font)
- verbosestream << "FontEngine: found font: " << font_path << std::endl;
- }
- }
-
- return font;
-}
diff --git a/src/client/fontengine.h b/src/client/fontengine.h
index 403ac2e48..78608e517 100644
--- a/src/client/fontengine.h
+++ b/src/client/fontengine.h
@@ -34,8 +34,6 @@ enum FontMode : u8 {
FM_Standard = 0,
FM_Mono,
_FM_Fallback, // do not use directly
- FM_Simple,
- FM_SimpleMono,
FM_MaxMode,
FM_Unspecified
};
@@ -140,9 +138,6 @@ private:
/** initialize a new TTF font */
gui::IGUIFont *initFont(const FontSpec &spec);
- /** initialize a font without freetype */
- gui::IGUIFont *initSimpleFont(const FontSpec &spec);
-
/** update current minetest skin with font changes */
void updateSkin();
@@ -165,8 +160,8 @@ private:
bool m_default_bold = false;
bool m_default_italic = false;
- /** current font engine mode */
- FontMode m_currentMode = FM_Standard;
+ /** default font engine mode (fixed) */
+ static const FontMode m_currentMode = FM_Standard;
DISABLE_CLASS_COPY(FontEngine);
};
diff --git a/src/cmake_config.h.in b/src/cmake_config.h.in
index cfcee4b58..cf436d6dc 100644
--- a/src/cmake_config.h.in
+++ b/src/cmake_config.h.in
@@ -18,7 +18,6 @@
#cmakedefine01 USE_GETTEXT
#cmakedefine01 USE_CURL
#cmakedefine01 USE_SOUND
-#cmakedefine01 USE_FREETYPE
#cmakedefine01 USE_CURSES
#cmakedefine01 USE_LEVELDB
#cmakedefine01 USE_LUAJIT
diff --git a/src/constants.h b/src/constants.h
index 3cc3af094..ed858912d 100644
--- a/src/constants.h
+++ b/src/constants.h
@@ -111,4 +111,3 @@ with this program; if not, write to the Free Software Foundation, Inc.,
*/
#define TTF_DEFAULT_FONT_SIZE (16)
-#define DEFAULT_FONT_SIZE (10)
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp
index 47790a552..9e4bb14b5 100644
--- a/src/defaultsettings.cpp
+++ b/src/defaultsettings.cpp
@@ -303,8 +303,7 @@ void set_default_settings()
settings->setDefault("main_menu_path", "");
settings->setDefault("serverlist_file", "favoriteservers.json");
-#if USE_FREETYPE
- settings->setDefault("freetype", "true");
+ // General font settings
settings->setDefault("font_path", porting::getDataPath("fonts" DIR_DELIM "Arimo-Regular.ttf"));
settings->setDefault("font_path_italic", porting::getDataPath("fonts" DIR_DELIM "Arimo-Italic.ttf"));
settings->setDefault("font_path_bold", porting::getDataPath("fonts" DIR_DELIM "Arimo-Bold.ttf"));
@@ -322,14 +321,6 @@ void set_default_settings()
settings->setDefault("fallback_font_path", porting::getDataPath("fonts" DIR_DELIM "DroidSansFallbackFull.ttf"));
std::string font_size_str = std::to_string(TTF_DEFAULT_FONT_SIZE);
-#else
- settings->setDefault("freetype", "false");
- settings->setDefault("font_path", porting::getDataPath("fonts" DIR_DELIM "mono_dejavu_sans"));
- settings->setDefault("mono_font_path", porting::getDataPath("fonts" DIR_DELIM "mono_dejavu_sans"));
-
- std::string font_size_str = std::to_string(DEFAULT_FONT_SIZE);
-#endif
- // General font settings
settings->setDefault("font_size", font_size_str);
settings->setDefault("mono_font_size", font_size_str);
settings->setDefault("chat_font_size", "0"); // Default "font_size"
diff --git a/src/gui/guiChatConsole.cpp b/src/gui/guiChatConsole.cpp
index 0610c85cc..01e10ea2e 100644
--- a/src/gui/guiChatConsole.cpp
+++ b/src/gui/guiChatConsole.cpp
@@ -30,12 +30,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "client/fontengine.h"
#include "log.h"
#include "gettext.h"
+#include "irrlicht_changes/CGUITTFont.h"
#include <string>
-#if USE_FREETYPE
- #include "irrlicht_changes/CGUITTFont.h"
-#endif
-
inline u32 clamp_u8(s32 value)
{
return (u32) MYMIN(MYMAX(value, 0), 255);
@@ -328,19 +325,16 @@ void GUIChatConsole::drawText()
core::rect<s32> destrect(
x, y, x + m_fontsize.X * fragment.text.size(), y + m_fontsize.Y);
-#if USE_FREETYPE
if (m_font->getType() == irr::gui::EGFT_CUSTOM) {
- // Draw colored text if FreeType is enabled
- irr::gui::CGUITTFont *tmp = dynamic_cast<irr::gui::CGUITTFont *>(m_font);
+ // Draw colored text if possible
+ gui::CGUITTFont *tmp = static_cast<gui::CGUITTFont*>(m_font);
tmp->draw(
fragment.text,
destrect,
false,
false,
&AbsoluteClippingRect);
- } else
-#endif
- {
+ } else {
// Otherwise use standard text
m_font->draw(
fragment.text.c_str(),
diff --git a/src/gui/guiHyperText.cpp b/src/gui/guiHyperText.cpp
index ccfdcb81d..40450ce5f 100644
--- a/src/gui/guiHyperText.cpp
+++ b/src/gui/guiHyperText.cpp
@@ -17,31 +17,26 @@ with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#include "IGUIEnvironment.h"
-#include "IGUIElement.h"
+#include "guiHyperText.h"
#include "guiScrollBar.h"
-#include "IGUIFont.h"
-#include <vector>
-#include <list>
-#include <unordered_map>
-using namespace irr::gui;
#include "client/fontengine.h"
-#include <SColor.h>
#include "client/tile.h"
#include "IVideoDriver.h"
#include "client/client.h"
#include "client/renderingengine.h"
#include "hud.h"
-#include "guiHyperText.h"
#include "util/string.h"
+#include "irrlicht_changes/CGUITTFont.h"
-bool check_color(const std::string &str)
+using namespace irr::gui;
+
+static bool check_color(const std::string &str)
{
irr::video::SColor color;
return parseColorString(str, color, false);
}
-bool check_integer(const std::string &str)
+static bool check_integer(const std::string &str)
{
if (str.empty())
return false;
@@ -616,12 +611,10 @@ TextDrawer::TextDrawer(const wchar_t *text, Client *client,
if (e.font) {
e.dim.Width = e.font->getDimension(e.text.c_str()).Width;
e.dim.Height = e.font->getDimension(L"Yy").Height;
-#if USE_FREETYPE
if (e.font->getType() == irr::gui::EGFT_CUSTOM) {
- e.baseline = e.dim.Height - 1 -
- ((irr::gui::CGUITTFont *)e.font)->getAscender() / 64;
+ CGUITTFont *tmp = static_cast<CGUITTFont*>(e.font);
+ e.baseline = e.dim.Height - 1 - tmp->getAscender() / 64;
}
-#endif
} else {
e.dim = {0, 0};
}
diff --git a/src/gui/guiHyperText.h b/src/gui/guiHyperText.h
index 5b936262e..04c664df5 100644
--- a/src/gui/guiHyperText.h
+++ b/src/gui/guiHyperText.h
@@ -19,16 +19,17 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#pragma once
-#include "config.h" // for USE_FREETYPE
+#include <vector>
+#include <list>
+#include <unordered_map>
+#include <string>
+#include "irrlichttypes_extrabloated.h"
using namespace irr;
class ISimpleTextureSource;
class Client;
-
-#if USE_FREETYPE
-#include "irrlicht_changes/CGUITTFont.h"
-#endif
+class GUIScrollBar;
class ParsedText
{
diff --git a/src/irrlicht_changes/CMakeLists.txt b/src/irrlicht_changes/CMakeLists.txt
index 87c88f7e8..19f431af3 100644
--- a/src/irrlicht_changes/CMakeLists.txt
+++ b/src/irrlicht_changes/CMakeLists.txt
@@ -1,14 +1,9 @@
if (BUILD_CLIENT)
set(client_irrlicht_changes_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/static_text.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/CGUITTFont.cpp
)
- if (USE_FREETYPE)
- set(client_irrlicht_changes_SRCS ${client_irrlicht_changes_SRCS}
- ${CMAKE_CURRENT_SOURCE_DIR}/CGUITTFont.cpp
- )
- endif()
-
# CMake require us to set a local scope and then parent scope
# Else the last set win in parent scope
set(client_irrlicht_changes_SRCS ${client_irrlicht_changes_SRCS} PARENT_SCOPE)
diff --git a/src/irrlicht_changes/static_text.cpp b/src/irrlicht_changes/static_text.cpp
index f548c3f71..baf0ea626 100644
--- a/src/irrlicht_changes/static_text.cpp
+++ b/src/irrlicht_changes/static_text.cpp
@@ -12,17 +12,12 @@
#include <rect.h>
#include <SColor.h>
-#if USE_FREETYPE
- #include "CGUITTFont.h"
-#endif
-
+#include "CGUITTFont.h"
#include "util/string.h"
namespace irr
{
-#if USE_FREETYPE
-
namespace gui
{
//! constructor
@@ -108,14 +103,12 @@ void StaticText::draw()
font->getDimension(str.c_str()).Width;
}
-#if USE_FREETYPE
if (font->getType() == irr::gui::EGFT_CUSTOM) {
- irr::gui::CGUITTFont *tmp = static_cast<irr::gui::CGUITTFont*>(font);
+ CGUITTFont *tmp = static_cast<CGUITTFont*>(font);
tmp->draw(str,
r, HAlign == EGUIA_CENTER, VAlign == EGUIA_CENTER,
(RestrainTextInside ? &AbsoluteClippingRect : NULL));
} else
-#endif
{
// Draw non-colored text
font->draw(str.c_str(),
@@ -590,8 +583,6 @@ s32 StaticText::getTextWidth() const
} // end namespace gui
-#endif // USE_FREETYPE
-
} // end namespace irr
diff --git a/src/irrlicht_changes/static_text.h b/src/irrlicht_changes/static_text.h
index 17a3bf753..74ef62008 100644
--- a/src/irrlicht_changes/static_text.h
+++ b/src/irrlicht_changes/static_text.h
@@ -20,7 +20,6 @@
#include "config.h"
#include <IGUIEnvironment.h>
-#if USE_FREETYPE
namespace irr
{
@@ -230,41 +229,6 @@ inline void setStaticText(irr::gui::IGUIStaticText *static_text, const EnrichedS
}
}
-#else // USE_FREETYPE
-
-namespace irr
-{
-namespace gui
-{
-
-class StaticText
-{
-public:
- static irr::gui::IGUIStaticText *add(
- irr::gui::IGUIEnvironment *guienv,
- const EnrichedString &text,
- const core::rect< s32 > &rectangle,
- bool border = false,
- bool wordWrap = true,
- irr::gui::IGUIElement *parent = NULL,
- s32 id = -1,
- bool fillBackground = false)
- {
- return guienv->addStaticText(text.c_str(), rectangle, border, wordWrap, parent, id, fillBackground);
- }
-};
-
-} // end namespace gui
-
-} // end namespace irr
-
-inline void setStaticText(irr::gui::IGUIStaticText *static_text, const EnrichedString &text)
-{
- static_text->setText(text.c_str());
-}
-
-#endif
-
inline void setStaticText(irr::gui::IGUIStaticText *static_text, const wchar_t *text)
{
setStaticText(static_text, EnrichedString(text, static_text->getOverrideColor()));
diff --git a/src/version.cpp b/src/version.cpp
index c555f30af..f2aac37df 100644
--- a/src/version.cpp
+++ b/src/version.cpp
@@ -37,7 +37,6 @@ const char *g_build_info =
#ifndef SERVER
"USE_GETTEXT=" STR(USE_GETTEXT) "\n"
"USE_SOUND=" STR(USE_SOUND) "\n"
- "USE_FREETYPE=" STR(USE_FREETYPE) "\n"
#endif
"STATIC_SHAREDIR=" STR(STATIC_SHAREDIR)
#if USE_GETTEXT && defined(STATIC_LOCALEDIR)
diff --git a/util/buildbot/buildwin32.sh b/util/buildbot/buildwin32.sh
index 696297aed..2eb9dab11 100755
--- a/util/buildbot/buildwin32.sh
+++ b/util/buildbot/buildwin32.sh
@@ -129,7 +129,6 @@ cmake -S $sourcedir -B . \
-DENABLE_SOUND=1 \
-DENABLE_CURL=1 \
-DENABLE_GETTEXT=1 \
- -DENABLE_FREETYPE=1 \
-DENABLE_LEVELDB=1 \
\
-DCMAKE_PREFIX_PATH=$libdir/irrlicht \
diff --git a/util/buildbot/buildwin64.sh b/util/buildbot/buildwin64.sh
index 20d0b3a6a..3dd4db687 100755
--- a/util/buildbot/buildwin64.sh
+++ b/util/buildbot/buildwin64.sh
@@ -129,7 +129,6 @@ cmake -S $sourcedir -B . \
-DENABLE_SOUND=1 \
-DENABLE_CURL=1 \
-DENABLE_GETTEXT=1 \
- -DENABLE_FREETYPE=1 \
-DENABLE_LEVELDB=1 \
\
-DCMAKE_PREFIX_PATH=$libdir/irrlicht \