harfbuzz / icu-le-hb Goto Github PK
View Code? Open in Web Editor NEWICU Layout Engine API on top of HarfBuzz shaping library
License: Other
ICU Layout Engine API on top of HarfBuzz shaping library
License: Other
ICU layout treats U+00AD "soft hypen" as a visible hyphen; icu-le-hb does not. I'm aware that U+00AD is ambiguously defined, but if icu-le-hb aims to be a compatible replacement of ICU layout, then it should reproduce the visible U+00AD behavior.
are harfbuzz's CharIndices pre-indexed? I had to ignore the indexBase param to get the same value as ICU. Some mismatch here.
index b0bbe63..7d760fd 100644
--- a/src/LayoutEngine.cpp
+++ b/src/LayoutEngine.cpp
@@ -178,7 +178,7 @@ void LayoutEngine::getCharIndices(le_int32 charIndices[], le_int32 indexBase, LE
unsigned int count;
const hb_glyph_info_t *info = hb_buffer_get_glyph_infos (fHbBuffer, &count);
for (unsigned int i = 0; i < count; i++)
- charIndices[i] = info[i].cluster + indexBase;
+ charIndices[i] = info[i].cluster; // + indexBase;
}
void LayoutEngine::getCharIndices(le_int32 charIndices[], LEErrorCode &success) const
for recent ICUs, will need to build this with options to specify C++11.
Failure:
$ make
Making all in src
CXX libicu_le_hb_la-LayoutEngine.lo
In file included from LayoutEngine.cpp:8:
In file included from ./LETypes.h:17:
/usr/local/Cellar/icu4c/67.1/include/unicode/uobject.h:134:54: error: expected ';' at end of declaration list
static void * U_EXPORT2 operator new(size_t size) U_NOEXCEPT;
^
;
Solution (for mac):
make CXXFLAGS=-std=c++11
Right now I have no tests whatsoever for this...
after autogen i 'git' this:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# INSTALL
# Makefile.in
# aclocal.m4
# autom4te.cache/
# config.guess
# config.log
# config.sub
# configure
# depcomp
# install-sh
# ltmain.sh
# missing
# src/Makefile.in
nothing added to commit but untracked files present (use "git add" to track)
Is icu-uc.pc
really needed at install time? Wondering if the icu-le-hb.pc
should not depend on icu-uc.pc
Alternatively, maybe the wrapper should fold into ICU after all ( since iculx depends on icu-le-hb which depends on HB and icu-uc.. )
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.