This library is a wrapper around the excellent FreeType 2.0 library, available at: http://www.freetype.org/ This library allows you to use TrueType fonts to render text in SDL applications. To make the library, first install the FreeType library, then type './configure' then 'make' to build the SDL truetype library and the showfont and glfont example applications. Be careful when including fonts with your application, as many of them are copyrighted. The Microsoft fonts, for example, are not freely redistributable and even the free "web" fonts they provide are only redistributable in their special executable installer form (May 1998). There are plenty of freeware and shareware fonts available on the Internet though, and may suit your purposes. This library is under the zlib license, see the file "COPYING.txt" for details. Portions of this software are copyright © 2013 The FreeType Project (www.freetype.org). All rights reserved. Enjoy! -Sam Lantinga(6/20/2001)
Support for TrueType (.ttf) font files with Simple Directmedia Layer.
Overview
Comments
-
Segfault on Windows 2.0.18 release for certain fonts/sizes
Over at pygame we got an issue report after updating to SDL_ttf 2.0.18 that rendering a font that previously worked segfaulted their program. It only seems to segfault at certain sizes.
I wanted to be sure this was a problem at the C level, and not an unrelated regression by pygame, so I put together a small test script.
#include "SDL.h" #include "SDL_ttf.h" #include <stdio.h> int main(int argc, char *argv[]) { SDL_SetMainReady(); SDL_Init(SDL_INIT_VIDEO); SDL_Window *window = NULL; SDL_Surface *screen = NULL; window = SDL_CreateWindow("Example", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 500, 150, SDL_WINDOW_SHOWN); screen = SDL_GetWindowSurface(window); SDL_FillRect(screen, NULL, SDL_MapRGBA(screen->format, 0, 0, 120, 255)); printf("running on patch level %i\n", SDL_TTF_PATCHLEVEL); TTF_Init(); // font size 70 = segfault, 20 = fine TTF_Font* f = TTF_OpenFont("PlayfairDisplay-Regular.ttf", 20); printf("error=%s\n", SDL_GetError()); SDL_Color white; white.r = 255; white.g = 255; white.b = 255; white.a = 255; //SDL_Surface *text = TTF_RenderText_Blended(f, "Hello world", white); SDL_Surface *text = TTF_RenderUTF8_Blended(f, "Hello world", white); printf("text=%p\n", text); printf("error=%s\n", SDL_GetError()); SDL_BlitSurface(text, NULL, screen, NULL); printf("error=%s\n", SDL_GetError()); SDL_UpdateWindowSurface(window); printf("error=%s\n", SDL_GetError()); // Keep the main loop until the window is closed (SDL_QUIT event) int exit = 0; SDL_Event eventData; while (!exit) { while (SDL_PollEvent(&eventData)) { switch (eventData.type) { case SDL_QUIT: exit = 1; break; } } } SDL_Quit(); return 0; }
Both pygame and my test script are compiled with Visual Studio, and use the 64 bit dev VS SDL_ttf 2.0.18 release. I tried to replicate this bug on my Mac, but I was unable to.
Running this in the VS debugger yields:
Unhandled exception at 0x00007FFDE6C723F6 (ntdll.dll) in SDL_c_test.exe: 0xC0000028: An invalid or unaligned stack was encountered during an unwind operation.
^ This pops up over the call toTTF_RenderUTF8_Blended
Call stack:
This hits the playfair family, at least regular and semibold (those are the ones I tested). PlayfairDisplay-Regular.zip
I also tested this through pygame with all the system fonts pygame could detect, and got failures on the fonts
algerian, castellar, gigi, imprintshadow, blackadderitc, edwardianscriptitc, kunstlerscript maturascriptcapitals, oldenglishtext, msoutlook, parchment, vivaldi, vladimirscript
-
FreeType and ZLib functions no longer exported
FreeType and Zlib appear to be embedded in
SDL2_ttf-2.0.18.dll
rather than being supplied as separate DLLs as previously. Unfortunately this means that functions in FreeType and Zlib which were previously exported, and could be called by the main application (for example my app callsFT_Library_Version()
andgzopen()
etc.), are no longer available.Can I request that if FreeType and ZLib are going to be embedded, their public functions are added to the DLL's export table.
-
Add left/right/center align support to wrapped text
Hello. This covers part of #160.
I probably did plenty of stuff wrong.
The challenging bit was getting the underlines and strikethroughs to move with the text, so I added another parameter to drawLine that moves everything over on the x.
-
Add support for vendored libraries in CMake
- Adds
TTF_WITH_HARFBUZZ
option to enable/disable harfbuzz - Adds
TTF_WITH_FREETYPE_VENDORED
andTTF_WITH_HARFBUZZ_VENDORED
options to enable/disable vendoring. - The export of targets + generation of the .pc file was already there, so I only needed to add support for the vendored libraries there
- add 'd' suffix for debug libraries
- allow parallel installation of shared/static libraries in the same install prefix (mostly useful for linux distributions)
- when building a debug SDL_ttf library, also create a libsdl2_ttfd.so shared library
A prefix might look like this:
prefix ├── include │ └── SDL2 │ └── SDL_ttf.h ├── lib64 │ ├── cmake │ │ └── SDL2_ttf │ │ ├── SDL2_ttfConfig.cmake │ │ ├── SDL2_ttfConfigVersion.cmake │ │ ├── SDL2_ttf-shared-targets.cmake │ │ ├── SDL2_ttf-shared-targets-debug.cmake │ │ ├── SDL2_ttf-shared-targets-release.cmake │ │ ├── SDL2_ttf-static-targets.cmake │ │ ├── SDL2_ttf-static-targets-debug.cmake │ │ └── SDL2_ttf-static-targets-release.cmake │ ├── libSDL2_ttf-2.0d.so -> libSDL2_ttf-2.0d.so.0 │ ├── libSDL2_ttf-2.0d.so.0 -> libSDL2_ttf-2.0d.so.0.1900.0 │ ├── libSDL2_ttf-2.0d.so.0.1900.0 │ ├── libSDL2_ttf-2.0.so -> libSDL2_ttf-2.0.so.0 │ ├── libSDL2_ttf-2.0.so.0 -> libSDL2_ttf-2.0.so.0.1900.0 │ ├── libSDL2_ttf-2.0.so.0.1900.0 │ ├── libSDL2_ttf.a │ ├── libSDL2_ttfd.a │ ├── libSDL2_ttfd.so -> libSDL2_ttf-2.0d.so.0 │ ├── libSDL2_ttf.so -> libSDL2_ttf-2.0.so.0 │ └── pkgconfig │ └── SDL2_ttf.pc └── share └── licenses └── SDL2_ttf └── COPYING.txt
@rmg-nik can you please test this?
Fixes #101 Fixes #208
- Adds
-
"Couldn't find glyph" with libfreetype 2.11, works fine with 2.10.4
I'm getting "Couldn't find glyph" with libfreetype 2.11. The same executable works fine when I dynamically link it with libfreetype 2.10.4.
This is for last release of SDL_ttf (2.0.15). Apparently Windows' pacman, Homebrew, probably Nix and possibly many more package SDL_ttf with libfreetype 2.11, so this is a disaster.
The full error is
LambdaHack --dbgMsgSer --logPriority 1 INFO: OpenGL shaders: ENABLED INFO: Created renderer: opengl DEBUG: Couldn't find glyph LambdaHack: SDLCallFailed {sdlExceptionCaller = "SDL.Font.shadedGlyph", sdlFunction = "TTF_RenderGlyph_Solid", sdlExceptionError = "Couldn't find glyph"}
and it happens always and right after opening a window in this application
https://github.com/LambdaHack/LambdaHack
e.g., you can always see this in this executable built on Windows
https://ci.appveyor.com/api/buildjobs/qtf0mr42l38b3cvq/artifacts/Allure_0.10.3.0-dev-2021-10-19_windows-x86_64.zip
and probably with this executable on Linux, if you run it in a system with libfreetype 2.11
https://github.com/LambdaHack/LambdaHack/suites/4095162996/artifacts/104398309
It looks similar to the error in #119, but I can't fix it by using a newer SDL_ttf, because my Homebrew, Debian, Nix and other users use whatever version package managers give them (and whichever libfreetype version). Also, for package containing SDL_ttf and related libraries, CIs that I use to build packages decide which versions of the libraries to provide.
What to do?
-
ClearType-style LCD rendering
This is a request, if possible, to add support for ClearType-style LCD rendering, which FreeType already seems to support.
This makes smaller font sizes more readable, by basically using the R G and B portions of every pixel as additional subpixels with different luminance levels.
maybe a new hinting type would be a good place to set the feature on. like :
TTF_SetFontHinting(mainFont, TTF_HINTING_LCD_SUBPIXEL);
-
Use minor version for feature releases
Similar to https://github.com/libsdl-org/SDL_mixer/pull/383. This is my last PR like this, unless someone is particularly interested in SDL_rtf (which isn't in the Steam Runtime or Debian).
-
Revert "Make it possible to build with older SDL (for GitHub CI)"
SDL < 2.0.10 would have freed the memory with SDL_free(pixels) rather than SDL_SIMDFree(pixels), which is invalid when pixels is a pointer into the middle of a malloc-allocated block.
SDL_SIMDFree(pixels) expects the pointer
pixels
to be like this, with a poitner to the malloc'd block "behind" the texture data:sizeof(void*) |<--->| [ unused | ptr | texture data... ] ^ ^ | | ptr pixels |<-- malloc'd block -->|
which is also what this function has been constructed to do.
This reverts commit 9a86e3f1e167f9d117a1723c67c802cda1a48e3a.
-
Relax required SDL version to 2.0.10
Commit 99f64c8 bumped the dependency to 2.0.12, but in fact 2.0.10 should be enough for SDL_SIMD_ALIGNED.
-
workflows: Add basic CI using Github Actions
-
workflows: Run showfont
We can't be very thorough here, but this is a simple check that it's working at all.
-
build: Use minor version number for feature releases
Similar to what has been done in SDL itself, this allows micro versions with an odd minor version to be used as prereleases for a stable release. It also allows micro versions with an even minor version to be used to fix regressions in their corresponding .0 release if that becomes necessary.
-
cmake: On Unix, make the library ABI-compatible with the Autotools build
This is not yet implemented for macOS, only for generic Unix (in practice meaning Linux and *BSD).
-
-
Release 2.0.16 ETA?
With SDL2 2.0.16 being released a few hours ago, and plenty of new additions to
SDL_ttf
since the last release in 2019, I was wondering whether there was a similar target release date forSDL_ttf
2.0.16? I maintain the Python bindings for SDL2 and its add-on libraries (ttf, image, mixer), so I'm just trying to get an idea of when I'll need to update my bindings to support the new set of functions.Thanks in advance!
-
Cmake work
- Use
SDL2TTF_
prefix for all options - Create SDL2_ttf::SDL2_ttf when building a shared library, create SDL2_ttf::SDL2_ttf-static when building a static library
- Use same CMake layout as SDL_image/SDL_mixer
- Create libSDL2_ttfd.so symbolic link (when building debug build type)
- Add PrivateSdlFunctions.cmake script for common functionality between SDL_image/SDL_mixer
- Add FindXXX.cmake scripts for dependencies that don't provide cmake configuration files
- Add CMakeLists.txt + cmake scripts to source distribution (EXTRA_DIST of autotools)
- Test CMake on mingw64 (using system dependencies there)
- Add MacOS CI
- Create symbolic link at build time + install it
- Only install SDL2_ttf.pc when building a shared SDL2_ttf (to avoid overwriting when later installing a static SDL2_tff)
- Allow parallel installation with cmake support of a static and shared SDL2_ttf
- Fixes CMake Macos versioning
- add MSVC to the CI test matrix
- test the installed cmake scripts
Fixes #141 Fixes #143 Fixes #226
- Use
-
Behavior of "Wrapped" with small lengths
I posted this under the SDL_ttf pre release announcement on Discourse, but I also wanted to raise it here. Especially since this behavior will need to be supported as is after a release, for backwards compatibility.
I’ve been playing around with the wrapped text functions, and I’m concerned about how they handle small wrap values.
At wrap length 0, the text renders as a single line, and newline characters are still rendered as unknown characters. I expected this to behave like the normal text rendering functions but newline aware.
With a positive but very small wrap length, the text doesn’t fully show up. Or parts of letters might show up. I expected this to allocate at least enough space to put at least one character of the input string on each line.
Pinging the author of the functions @1bsyl. Thank you for all the work keeping SDL_ttf golden!
-
build script enhancements
I have trouble building the project using MinGW-w64 toolchain.
For CMake approach:
- CMake script is written so that it only expects CMake-based builds, it searches for
*.cmake
files but I have only*.pc
files for pkg-config (I could make a PR to make a CMake option to usepkg_check_modules()
instead ofFindPackage()
- please let me know if you could accept such change) - CMake script contains outdated SDL_ttf version information
For configure approach:
- The script works but incorrectly attempts to check for OpenGL support which results in OpenGL unnecessarily disabled
configure.log
:configure:13738: checking for OpenGL support configure:13758: gcc -o conftest.exe -g -O2 -IC:/usr/include/freetype2 -IC:/usr/include/libpng16 -IC:/mingw64/mingw64/include -Dmain=SDL_main -IC:/usr/SDL2-2.0.10/x86_64-w64-mingw32/include/SDL2 conftest.c -LC:/usr/lib -LC:/mingw64/mingw64/lib -lfreetype -lpng16 -lz -lbz2 -LC:/usr/SDL2-2.0.10/x86_64-w64-mingw32/lib -lmingw32 -lSDL2main -lSDL2 -mwindows -lGL >&5 C:/mingw64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.1/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lGL collect2.exe: error: ld returned 1 exit status
The library is named
opengl32
, notGL
on Windows. - CMake script is written so that it only expects CMake-based builds, it searches for
-
Question about UTF-8 encoded strings and grapheme clusters
I have a use case to draw UTF-8 encoded strings on screen with a type writer effect. A type writer effect gives users the impression that text is being typed onto the screen.
As far as I can tell the SDL_ttf API does not support fetching code points or human perceived characters, grapheme clusters, from UTF-8 strings. If I got the implementation right the library is able to convert UTF-8 encoded grapheme clusters to UTF-32 code units using both FreeType and Harfbuzz internally, but does not expose these capabilities to the users.
Would it be possible to expose such an API?
-
Failing to compile with harfbuzz 4.4.1
I'm trying to install SDL_ttf on OSX Monterey from the repo. I created a symlink in external pointing to my harfbuzz source, and copied the .deps directory over. It compiles fine until it hits this: make: *** No rule to make target
external/harfbuzz/src/hb-ms-feature-ranges.cc', needed by
external/harfbuzz/src/libSDL2_ttf_la-hb-ms-feature-ranges.lo'. Stop.Has something been deprecated? I'm not seeing that file anywhere in the harfbuzz source, only a header.
-
"Unicode" means "UCS-2"
It appears that when we say "Unicode" in SDL_ttf, we mean UCS-2 encoding (each char is 16-bits).
This covers the Basic Multilingual Plane, which covers an enormous amount of human language, but it does not cover the entirety of Unicode...and while probably no one cares about, I don't know, Klingon, the limitation means it can't do emoji glyphs, which people care about a lot.
The doesn't-break-ABI solution here is to say the "UNICODE" functions take UTF-16 encoding, which is an extension of UCS-2...most characters are the same, but there's some magic extension bits to make some codepoints take a two 16-bit value sequence, which gets you access to values > 0xFFFF. This is what win32 ended up doing, in WinXP or so, so all their Unicode functions didn't change but could handle the higher values when they show up in a string. UTF-16 is kind of the worst of all worlds: variable size like UTF-8 but wastes bits like UCS-4...but it gets the job done in a backwards compatible way.
If we want to break ABI, change the Unicode functions to take a Uint32 instead of a Uint16 (UCS-4 encoding)...each codepoint takes 32 bits and we're good to go.
Otherwise, probably look for STR_UNICODE in the source code and see where it gets used, and clean out UCS-2isms.
(If we do nothing, these higher codepoint values are available to apps if they encode their strings in UTF-8, since that can already represent those values.)
-
Add a semi-automatic test for #221
This needs to be given a valid font as a command-line argument, but is otherwise automatic.
Includes #223.
I haven't wired this up to the CMake build system or the CI, because I don't want to put this on the critical path for 2.20.0, but it does seem to work.
-
Re-enable HAVE_NEON_INTRINSICS
It seems to me ARM_NEON is working and could be re-activated: https://github.com/libsdl-org/SDL_ttf/blob/main/SDL_ttf.c#L122
diff --git a/SDL_ttf.c b/SDL_ttf.c index 8a4bb3d..68909ea 100644 --- a/SDL_ttf.c +++ b/SDL_ttf.c @@ -119,7 +119,7 @@ int TTF_SetScript(int script) /* hb_script_t */ #endif /* Round glyph width to 16 bytes use NEON instructions */ -#if 0 /*defined(__ARM_NEON)*/ +#if defined(__ARM_NEON) # define HAVE_NEON_INTRINSICS 1 #endif
-
Simplify by using SDL_SIMDAllocAligned()
Simplify by using SDL_SIMDAllocAligned()
need this PR first: https://github.com/libsdl-org/SDL/pull/5650 See https://github.com/libsdl-org/SDL/issues/5641
Releases(release-2.20.1)
-
release-2.20.1(Aug 19, 2022)
This is a quick update to fix building with homebrew on macOS
Source code(tar.gz)
Source code(zip)
SDL2_ttf-2.20.1-win32-x64.zip(757.03 KB)
SDL2_ttf-2.20.1-win32-x86.zip(727.69 KB)
SDL2_ttf-2.20.1.dmg(1.49 MB)
SDL2_ttf-2.20.1.tar.gz(12.55 MB)
SDL2_ttf-2.20.1.tar.gz.sig(95 bytes)
SDL2_ttf-2.20.1.zip(16.48 MB)
SDL2_ttf-2.20.1.zip.sig(95 bytes)
SDL2_ttf-devel-2.20.1-mingw.tar.gz(47.22 MB)
SDL2_ttf-devel-2.20.1-mingw.zip(47.18 MB)
SDL2_ttf-devel-2.20.1-VC.zip(1.48 MB)
-
release-2.20.0(Jul 7, 2022)
In addition to new CMake support by @madebr and many bug fixes, here are the highlights since the last release:
- API documentation is now available on the wiki: https://wiki.libsdl.org/SDL_ttf
- Added TTF_GetFontWrappedAlign() and TTF_SetFontWrappedAlign() to set alignment on wrapped text
- Added functions to render using FreeType LCD algorithm: TTF_RenderText_LCD() TTF_RenderUTF8_LCD() TTF_RenderUNICODE_LCD() TTF_RenderText_LCD_Wrapped() TTF_RenderUTF8_LCD_Wrapped() TTF_RenderUNICODE_LCD_Wrapped() TTF_RenderGlyph_LCD() TTF_RenderGlyph32_LCD()
- Added TTF_SetFontDirection() and TTF_SetFontScriptName() for additional control over fonts using HarfBuzz
- Updated to FreeType version 2.12.1 and HarfBuzz version 2.9.1, fixing CVE-2018-25032
- Fixed crash when loading fonts at certain sizes on Windows
- Fix memory corruption loading malformed TTF files (CVE-2022-27470)
Source code(zip)
SDL2_ttf-2.20.0-win32-x64.zip(757.03 KB)
SDL2_ttf-2.20.0-win32-x86.zip(727.68 KB)
SDL2_ttf-2.20.0.dmg(1.49 MB)
SDL2_ttf-2.20.0.tar.gz(12.54 MB)
SDL2_ttf-2.20.0.tar.gz.sig(95 bytes)
SDL2_ttf-2.20.0.zip(16.48 MB)
SDL2_ttf-2.20.0.zip.sig(95 bytes)
SDL2_ttf-devel-2.20.0-mingw.tar.gz(47.22 MB)
SDL2_ttf-devel-2.20.0-mingw.zip(47.18 MB)
SDL2_ttf-devel-2.20.0-VC.zip(1.48 MB)
-
prerelease-2.19.3(Jun 29, 2022)
This is hopefully the final release candidate for 2.20.0.
The header documentation has been updated and is available at https://wiki.libsdl.org/SDL_ttf
Source code(tar.gz)
Source code(zip)
SDL2_ttf-2.19.3-win32-x64.zip(757.03 KB)
SDL2_ttf-2.19.3-win32-x86.zip(727.68 KB)
SDL2_ttf-2.19.3.dmg(1.49 MB)
SDL2_ttf-2.19.3.tar.gz(12.54 MB)
SDL2_ttf-2.19.3.zip(16.48 MB)
SDL2_ttf-devel-2.19.3-mingw.tar.gz(47.22 MB)
SDL2_ttf-devel-2.19.3-mingw.zip(47.18 MB)
SDL2_ttf-devel-2.19.3-VC.zip(1.47 MB)
-
prerelease-2.19.2(Jun 17, 2022)
This is a release candidate for 2.20.0.
In addition to new CMake support by @madebr and many bug fixes, here are the highlights since the last release:
- Added TTF_GetFontWrappedAlign() and TTF_SetFontWrappedAlign() to set alignment on wrapped text
- Added functions to render using FreeType LCD algorithm: TTF_RenderText_LCD() TTF_RenderUTF8_LCD() TTF_RenderUNICODE_LCD() TTF_RenderText_LCD_Wrapped() TTF_RenderUTF8_LCD_Wrapped() TTF_RenderUNICODE_LCD_Wrapped() TTF_RenderGlyph_LCD() TTF_RenderGlyph32_LCD()
- Added TTF_SetFontDirection() and TTF_SetFontScriptName() for additional control over fonts using HarfBuzz
- Updated to FreeType version 2.12.1 and HarfBuzz version 2.9.1, fixing CVE-2018-25032
- Fixed crash when loading fonts at certain sizes on Windows
- Fix memory corruption loading malformed TTF files (CVE-2022-27470)
Source code(zip)
SDL2_ttf-2.19.2-win32-x64.zip(757.04 KB)
SDL2_ttf-2.19.2-win32-x86.zip(727.66 KB)
SDL2_ttf-2.19.2.dmg(1.48 MB)
SDL2_ttf-2.19.2.tar.gz(12.54 MB)
SDL2_ttf-2.19.2.zip(16.47 MB)
SDL2_ttf-devel-2.19.2-mingw.tar.gz(26.98 MB)
SDL2_ttf-devel-2.19.2-mingw.zip(26.94 MB)
SDL2_ttf-devel-2.19.2-VC.zip(1.46 MB)
-
candidate-2.19.1(May 25, 2022)
Early testing pre-release for 2.20.0, not for general use
Source code(tar.gz)
Source code(zip)
SDL2_ttf-2.19.1.tar.gz(12.52 MB)
-
release-2.0.18(Jan 11, 2022)
Changes in this release:
- Added TTF_GetFreeTypeVersion() and TTF_GetHarfBuzzVersion()
- Added support for Signed Distance Field rendering with TTF_SetFontSDF() and TTF_GetFontSDF()
- Added optional DPI-scaling of fonts, with the following new functions: TTF_OpenFontDPI() TTF_OpenFontIndexDPI() TTF_OpenFontDPIRW() TTF_OpenFontIndexDPIRW() TTF_SetFontSizeDPI()
- Added 32-bit character support with: TTF_GlyphIsProvided32() TTF_GlyphMetrics32() TTF_RenderGlyph32_Solid() TTF_RenderGlyph32_Shaded() TTF_RenderGlyph32_Blended() TTF_GetFontKerningSizeGlyphs32()
- Added functions to set direction and script when using Harfbuzz: TTF_SetDirection() TTF_SetScript()
- Added extended API for text measurement: TTF_MeasureText() TTF_MeasureUTF8() TTF_MeasureUNICODE()
- Added TTF_SetFontSize() to set font size dynamically
- Added 'Shaded' and 'Solid' text wrapped functions: TTF_RenderText_Solid_Wrapped() TTF_RenderUTF8_Solid_Wrapped() TTF_RenderUNICODE_Solid_Wrapped() TTF_RenderText_Shaded_Wrapped() TTF_RenderUTF8_Shaded_Wrapped() TTF_RenderUNICODE_Shaded_Wrapped()
- Added TTF_HINTING_LIGHT_SUBPIXEL for better results at small text sizes at a performance cost
Source code(zip)
SDL2_ttf-2.0.18-win32-x64.zip(731.58 KB)
SDL2_ttf-2.0.18-win32-x86.zip(702.42 KB)
SDL2_ttf-2.0.18.dmg(1.43 MB)
SDL2_ttf-2.0.18.tar.gz(14.20 MB)
SDL2_ttf-2.0.18.tar.gz.sig(95 bytes)
SDL2_ttf-2.0.18.zip(18.08 MB)
SDL2_ttf-2.0.18.zip.sig(95 bytes)
SDL2_ttf-devel-2.0.18-mingw.tar.gz(27.78 MB)
SDL2_ttf-devel-2.0.18-VC.zip(1.41 MB)
-
release-2.0.15(Jan 11, 2022)
Changes in this release:
- Updated to FreeType version 2.9.1
- Text rendering functions now use the alpha component of the text colors
- Added support for characters greater than 0xFFFF (e.g. emoji) in the UTF-8 APIs
Source code(zip)
SDL2_ttf-2.0.15-win32-x64.zip(381.62 KB)
SDL2_ttf-2.0.15-win32-x86.zip(363.46 KB)
SDL2_ttf-2.0.15.dmg(659.76 KB)
SDL2_ttf-2.0.15.tar.gz(4.27 MB)
SDL2_ttf-2.0.15.tar.gz.sig(95 bytes)
SDL2_ttf-2.0.15.zip(6.07 MB)
SDL2_ttf-2.0.15.zip.sig(95 bytes)
SDL2_ttf-devel-2.0.15-mingw.tar.gz(862.37 KB)
SDL2_ttf-devel-2.0.15-VC.zip(755.41 KB)
Owner
Simple Directmedia Layer
A font cooking library
Font Chef Font Chef is a cross-platform C99 and C++ library to create character atlas of pre-rasterized glyphs from a font at a specified size and col
C++ font-lock for Emacs
Syntax highlighting support for "Modern C++" - until C++20 and Technical Specification. This package aims to provide a simple highlight of the C++ lan
font rendering, Zep vim emulator, microui integration
LabFont This project is an exploration of getting text into a rendeing pipeline based on @floooh's sokol. Frameworks such as Dear ImGui solve text ren
Portable, Noto-powered font-rendering abstraction based on FreeType and Raqm
Mechascribe Mechascribe is still under construction and nothing is functional yet. Mechascribe is a text rendering abstraction trying to support as mu
A terminal-based, mouse-driven BDF (bitmap) font editor.
bdfedit A terminal-based, mouse-driven BDF font editor. Capable of reading, writing, and editing bitmap font files fully within the terminal, and enti
Free (libre) font editor for Windows, Mac OS X and GNU+Linux
FontForge FontForge is a free (libre) font editor for Windows, Mac OS X and GNU+Linux. Use it to create, edit and convert fonts in OpenType, TrueType,
cross-platform bitmap font implementation
Component for rendering text with bitmap font on all openfl targets. This set of classes is heavily based on classes from pixelizer (https://github.co
Filter driver which support changing DPI of mouse that does not support hardware dpi changing.
Custom Mouse DPI Driver 하드웨어 DPI 변경이 불가능한 마우스들의 DPI 변경을 가능하게 하는 필터 드라이버 경고: 해당 드라이버는 완전히 테스트 되지 않았습니다 Install 해당 드라이버는 서명이 되어있지않습니다. 드라이버를 사용하려면 tests
A Visual Studio extension that provides enhanced support for editing High Level Shading Language (HLSL) files
HLSL Tools for Visual Studio This extension is for Visual Studio 2017 / 2019. Go here for the Visual Studio Code extension. HLSL Tools is a Visual Stu
layer to control the global priority of any vulkan application
vk-force-priority vk-force-priority allows you to control the global priority of any vulkan application. Building from Source Dependencies Before buil
A data plane framework that supports any layer-7 protocols.
中文 meta-protocol-proxy Why MetaProtocol is needed? Almost all open source and commercial Service Meshes currently support only two Layer-7 protocols -
Application layer for sounding rockets software
Lynx On-Board Software The on-board software represents the top layer of the rocket's firmware. This includes all the logics needed for a successful f
Yet another abstraction layer - a general purpose C++ library.
Yet Another Abstraction Layer What yaal is a cross platform, general purpose C++ library. This library provides unified, high level, C++ interfaces an
Wayfire plugin for handling touchpad gestures globally in a layer-shell surface
wf-globalgestures Global touchpad gestures plugin for Wayfire: implements a special protocol (also in this repo) that lets clients request that a part
Translation layer from ANARI to OSPRay, ANARILibrary and ANARIDevice "ospray".
ANARI-OSPRay Translation layer from Khronos® ANARI™ to Intel® OSPRay: ANARILibrary and ANARIDevice "ospray". Status This is an experimental project, v
Webusb-libusb - Translation layer from libusb to webusb.
webusb-libusb IMPORTANT: This implementation requires a patched version of Emscripten to work properly. This project is a translation layer from libus
A Direct3D9 to Vulkan layer using the DXVK backend. [Upstreamed to DXVK]
This work has been upstreamed and is continuing development there This repo is only open for the remaining issues on the tracker https://github.com/do
A d3d9 and d3d10 to d3d11 translation layer.
DXUP A D3D9 and D3D10 -> D3D11 Translation Layer Get latest build here or tagged builds here. What's the point? The main reason is for DXVK, a D3D11->
This program converts ASCII STL files to RT files for miniRT.
STL to RT This program converts ASCII STL files to RT files for miniRT. Input the ASCII STL file to the standard input and output the RT file from the