Implementation of BFont::Blocks

BFont::Blocks is now implemented in ServerFont, via a call through the
app_server.  It uses fontconfig to iterate through a charset of a font
and stores the defined blocks in a bitmap.

A new API was added, BFont::IncludesBlock, that will allow for arbitrary
testing of a given Unicode block. Since nothing is cached, searching
through an entire charset for a series of Unicode blocks can be quite
slow. In a given block there may be only 1 or 2 characters actually
defined so every character within a block needs to be checked until one
is found, which in a degenerate case will mean the entire block is
checked.

Signed-off-by: Axel Dörfler <[email protected]>
This commit is contained in:
dsizzle
2017-05-08 22:17:53 +02:00
committed by Axel Dörfler
parent b17d5d1c48
commit 9b6b158b88
11 changed files with 425 additions and 10 deletions
+15
View File
@@ -303,6 +303,21 @@ if [ IsPackageAvailable freetype_devel ] {
Echo "Freetype support not available on $(TARGET_PACKAGING_ARCH)" ;
}
# fontconfig
if [ IsPackageAvailable fontconfig_devel ] {
ExtractBuildFeatureArchives fontconfig :
file: base fontconfig
runtime: lib
file: devel fontconfig_devel
depends: base
library: $(developLibDir)/libfontconfig.so
headers: $(developHeadersDir) $(developHeadersDir)/fontconfig
;
EnableBuildFeatures fontconfig ;
} else {
Echo "fontconfig support not available on $(TARGET_PACKAGING_ARCH)" ;
}
# Gutenprint
if [ IsPackageAvailable gutenprint_devel ] {
+2 -2
View File
@@ -100,8 +100,8 @@ if [ IsOptionalHaikuImagePackageAdded Development ] {
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
AddHaikuImagePackages curl_devel ffmpeg_devel freetype_devel
glu_devel jpeg_devel libpng16_devel zlib_devel ;
AddHaikuImagePackages curl_devel ffmpeg_devel fontconfig_devel
freetype_devel glu_devel jpeg_devel libpng16_devel zlib_devel ;
}
}
}