summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/harfbuzz-ng/src
Commit message (Collapse)AuthorAgeFilesLines
* Update bundled HarfBuzz copy to 0.9.39Konstantin Ritt2015-03-1121-639/+694
| | | | | Change-Id: I48d130a1639fef3b8ec2de5622848eb56fadc1c7 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Frederik Gladhorn2015-02-242-10/+19
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/xml/htmlinfo/simpleexample.html examples/xml/rsslisting/rsslisting.cpp qmake/generators/win32/msbuild_objectmodel.cpp src/3rdparty/harfbuzz-ng/src/hb-private.hh src/corelib/global/qlogging.cpp src/corelib/io/qstorageinfo_unix.cpp src/corelib/thread/qwaitcondition_unix.cpp src/gui/kernel/qguiapplication.cpp src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp src/testlib/doc/src/qt-webpages.qdoc tests/auto/other/qaccessibility/tst_qaccessibility.cpp Change-Id: Ib272ff0bc30a1a5d51275eb3cd2f201dc82c11ff
| * Force Harfbuzz-NG to use the Qt atomics when built inside QtThiago Macieira2015-02-101-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | For most cases, the GCC/Intel atomics (__sync functions) are fine, but there are some systems for which libgcc is incorrectly built (QNX 6.5.0). Additionally, this will allow Harfbuzz-NG to be supported in exactly the same systems as Qt itself. Task-number: QTBUG-43850 Change-Id: Ib53f57f70d4ad46863c45e74d60b0eb45ba9bd02 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * Remove #define inline from Harfbuzz-NGThiago Macieira2015-02-101-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code is C++ only. There isn't a single C++ compiler that fails to understand the "inline" keyword, since it's required by C++98. Any compiler older than C++98 is likely to choke on the template usage further down, so this isn't necessary. Moreover, the C++ standard says you cannot define macros. [lib.macro.names] says "Nor shall such a translation unit define macros for names lexically identical to keywords." -- technically, it's a promise that the Standard Library headers won't do it, the wording means that the entire translation unit won't do it, which implies no source can do it. MSVC complains about it: fatal error C1189: #error : The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro. Change-Id: Ic2a0a03a0af47386e34bb698454a2040ef3f6a9d Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | [HarfBuzz/CoreText] Re-apply fix for QTBUG-38113Konstantin Ritt2015-02-141-2/+23
| | | | | | | | | | | | Task-number: QTBUG-38113 Change-Id: Icdedfdb240a2888e0a084a156db5598c033495de Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* | Apply CoreText shaper changes from HarfBuzz upstreamKonstantin Ritt2015-02-141-249/+471
| | | | | | | | | | | | | | Task-number: QTBUG-38363 Task-number: QTBUG-39504 Change-Id: I754c19c131645d6e6e40092c1b820ccf896c74e7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* | Update bundled HarfBuzz to 0.9.39Konstantin Ritt2015-02-127-30/+90
| | | | | | | | | | | | | | No significant changes, just stick to a released version. Change-Id: Ib9c4ce6f7da07727e890a4ac3265fc4574e89821 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | [HarfBuzz-NG] Fix build on WinRTKonstantin Ritt2015-01-252-12/+16
| | | | | | | | | | | | | | | | This adopts c26d5cf6ef50ea102cfb18eb2109f60bcdfdafb6 and moves some code around. Change-Id: Icbc1f4e0cfa6c6b994c3e5096cf1cc66bc0b32f9 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Update bundled HarfBuzz-NG to 0.9.38Konstantin Ritt2015-01-2542-1796/+2205
|/ | | | | | | | | | | Most important changes: * Fixes for Arabic, Hangul, Hebrew, Indic, Mandaic, Myanmar, and New Tai Lue shapers. * Fixed out-of-bounds access in Indic shaper. * Build and stability fixes, various optimizations. Change-Id: I4f0e32c017f62fe576bee41a430d3da6d571de80 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Harfbuzz-NG: Compile on WinRTEskil Abrahamsen Blomfeldt2014-08-192-2/+9
| | | | | | | | | There is no environment (like WinCE) and the basic version of InitializeCriticalSection is unsupported. Change-Id: I7c5038115f0dbfdc616bce89a9be166b5f2a1dcc Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fix compile for harfbuzz-ng for winceAndreas Holzammer2014-08-143-0/+16
| | | | | | | | | | | | | | | | | | CRITICAL_SECTION has different members, so adjust that strdup is only there as _strdup so use that There is no MemoryBarrier() There is no environment so dont use getenv There is no locale so dont use it There is no errno so just fake it Change-Id: Ia7197c4f0df50513078c906ed503aec33ee42b82 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Update bundled HarfBuzz-NG copy to 0.9.32Konstantin Ritt2014-07-2061-3393/+4162
| | | | | | | | | | - Unicode 7.0 support - New shapers - Multiple improvements in Arabic, Indic, and Hebrew shapers - Build fixes, optimizations, etc. Change-Id: I0ba14b619c3e6fb35cddd9d65e694af41197d6ae Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* harfbuzz-ng: Pre-allocate enough space for CoreText bufferGabriel de Dietrich2014-06-181-1/+2
| | | | | | | | | | | This fixes an assert in OS X 10.10 Yosemite, where the pre- allocated buffer would be too small to hold 3 successive calls to ALLOCATE_ARRAY. Task-number: QTBUG-39504 Change-Id: I5a0ae36170636eb97ab21c5903b96674e2a99547 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Mac OS X: Fix crash in Harfbuzz-NGEskil Abrahamsen Blomfeldt2014-05-121-1/+0
| | | | | | | | | | CoreText does not support multithreading, so we would get a crash in tst_qglthreads. So we disable multithreading for HB-NG. Task-number: QTBUG-38762 Change-Id: I0473037c16017ff77cbba9b11fc0b396775ef789 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fix font fallback handling with Harfbuzz and CoreTextSimon Hausmann2014-04-281-5/+1
| | | | | | | | | | | | | | Comparing CGFontRefs is not reliable it seems, CFEqual on them appears to compare pointers and there's no guarantee that CTFontCopyGraphicsFont returns the same pointer all the time. So instead let's compare CTFontRefs, which we keep around and also provide as input to CoreText shaping. Task-number: 38363 Change-Id: I6073ea88f0c9f5ebf49d17cba0d76041ade32570 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* HB-NG w/CoreText backend: Fix clustering of neutral charactersEskil Abrahamsen Blomfeldt2014-04-091-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | Say you have a string with logical contents "abc ABC, " where lowercase is LTR and uppercase is RTL. In this case, the UBA will give "abc " LTR direction, and "ABC, " will get RTL. However, our itemization currently divides "ABC, " into two script items: "ABC" and ", ". CoreText will return glyphs in visual order, so for the first we will get "CBA" and for the second we will get ", ". But as the ", " item has an adapted directionality of RTL in the context of the full paragraph, it should actually be " ," visually. This caused a mismatch which broke the tst_QComplexText test with HB-NG using CoreText backend. As a temporary fix for this, we check whether the directionality of the first run in the text is different from the directionality expected by HB-NG. If this happens, it means the order of the glyphs produced by CoreText will be the reverse order of what is expected by HB-NG, and we therefore need to reverse it. Task-number: QTBUG-38113 Change-Id: I9f5a041791e4529a14041a362b2d5dd00490a38b Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* HB-NG on Mac: Fix PDF in end of stringEskil Abrahamsen Blomfeldt2014-04-081-2/+22
| | | | | | | | | | | | | | | The CoreText engine will remove the PDF token from the end of the string (instead of producing a zero-width glyph for it), thus the output will be different from the OpenType backend and Qt will get confused. To fix this, we emulate the expected behavior by molding the output in a special case. This is a port of e45c4387ae16627d61e30a58ae901d888d375aa7 from Qt 4. Task-number: QTBUG-38113 Change-Id: Ia0a078e3a60317981d4d5a4ee7e575a1714a1d75 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fix bundled HarfBuzz-NG build on MacKonstantin Ritt2014-03-201-1/+7
| | | | | Change-Id: I2229c77b4951c2ba9b445286cb94a2a86e345c34 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Fix bundled HarfBuzz-NG build outside QtGuiKonstantin Ritt2014-03-191-22/+24
| | | | | | | | | | | | | | On Mac, hb_coretext requires both CTFont and CGFont. Due to not supporting the 0 tag by CoreText, hb_blob_get_data() always fails causing the hb_coretext_shaper initialization to fail, too. Since HarfBuzz-NG is not a part of QtGui module anymore, there are two possibilities to workaround this: either engineer the font data by querying tables one-by-one and generating the font directory table, or pass CTFont and CGFont refs directly to hb_coretext via the hb_face's user_data. This patch implements the latter. Change-Id: I7d2e2df00818ea811642cb6a6c3b9c9abd5d7b94 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Make bundled HarfBuzz-NG not depend on QtKonstantin Ritt2014-03-141-16/+1
| | | | | Change-Id: Id2a0e4ae4cf2b4a6c95985b3b31c846aac92f992 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Update HarfBuzz-NG path on MacKonstantin Ritt2014-02-131-1/+1
| | | | | | | | | | 84be1bd4d3ed8d2d9e65301649bc841ea4197fe2 has changed the stored data type from QFontEngine to QFontEngine::FaceData. Update the implementation and revert changing the y_scale sign on non-Mac (aka fix-up 2d576f79f748ca4c9bb54634f0fd44fa207a2248). Change-Id: I4180257bc8f610fb014fd2a2ad6f8fdceece2f13 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Make HarBuzz-NG the default shaper on MacKonstantin Ritt2014-01-313-7/+41
| | | | | | | | | | | | | | | Since we dropped all platform-related shapers during the QPA refactoring, thus making HarfBuzz the only shaper on all platforms, we can not deal with AAT-capable fonts anymore. HarBuzz-NG now supports it's own shaper backend infrastructure, so the decision was to enable HB's CoreText shaper backend on Mac and simply make HB-NG the default shaper there. Task-number: QTBUG-36056 Change-Id: If22e24fd5cc00c25952934332a2f4123f38135a4 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Add CoreText HB-NG shaper backend on MacKonstantin Ritt2014-01-302-0/+858
| | | | | | Change-Id: Ida705b9fc59d41a04cb754faae58774bfc2e656c Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Update HB to 7691a154e50f8c8c77bbd94787686262955bf5d4Konstantin Ritt2014-01-3030-1456/+2302
| | | | | Change-Id: I7dae9d74f338d3beeb1677a1676a07b66c05bb93 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Update bundled HarfBuzz sources up to 0.9.25Konstantin Ritt2013-12-1953-1013/+3885
| | | | | | | | | | Most important changes: - Myanmar, Indic, Javanese / Buginese shaper improvements - More aggressive shape-plan caching - Additional OpenType language tags Change-Id: I54ed62cfe936c06c18589d09ac119a0f5881a235 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* [2/2] Update bundled HarfBuzz-NG sources up to 0.9.20Konstantin Ritt2013-08-301-0/+2
| | | | | Change-Id: Ia8ef11fce9326ed708bf2972514b46b9d105ad9e Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* [1/2] Update bundled HarfBuzz-NG sources up to 0.9.20Konstantin Ritt2013-08-3014-431/+611
| | | | | Change-Id: I8649bbe608cb2f79c721c900c03fd0139a8c0cd1 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add stripped version of HarfBuzz-NG 0.9.19 sources to 3rdpartyKonstantin Ritt2013-08-2778-0/+32917
| | | | | Change-Id: I06fbf58131ebce51ce95921d8dfd65dd3d3e236f Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Make it possible to build HarfBuzz-NG in QtKonstantin Ritt2013-08-271-0/+24
Change-Id: Ib956adb0ab7bcfba3ce73acf7c19bda815d6eb73 Reviewed-by: Lars Knoll <lars.knoll@digia.com>