ladybird/AK
Andreas Kling d38a3ca9eb LibGfx/OpenType: Add some initial support for GPOS glyph positioning
This patch parses enough of GPOS tables to be able to support the
kerning information embedded in Inter.

Since that specific font only applies positioning offsets to the first
glyph in each pair, I was able to get away with not changing our API.
Once we start adding support for more sophisticated positioning, we'll
need to be able to communicate more than a simple "kerning offset" to
the clients of this code.
2023-03-17 09:36:20 +01:00
..
.clang-tidy Meta: Add basic clang-tidy configuration 2021-11-14 22:52:35 +01:00
AllOf.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
AnyOf.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
ArbitrarySizedEnum.h AK: Patch ArbitrarySizedEnum operators for missing constructor 2023-01-18 22:58:42 +01:00
Array.h Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
Assertions.cpp AK: Always define ak_assertion_failed, even when NDEBUG is false 2023-02-05 09:46:51 -07:00
Assertions.h AK: Always define ak_assertion_failed, even when NDEBUG is false 2023-02-05 09:46:51 -07:00
Atomic.h Everywhere: Stop shoving things into ::std and mentioning them as such 2022-12-14 11:44:32 +01:00
AtomicRefCounted.h Everywhere: Remove unused includes of AK/StdLibExtras.h 2023-01-02 20:27:20 -05:00
Badge.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Base64.cpp AK+LibWeb: Move decode forgiving base64 under Web::Infra namespace 2023-01-10 17:54:01 +00:00
Base64.h AK+LibWeb: Move decode forgiving base64 under Web::Infra namespace 2023-01-10 17:54:01 +00:00
BigIntBase.h AK: Introduce "BigIntBase.h" for common simple operations on big ints 2023-03-04 22:10:03 -07:00
BinaryBufferWriter.h Everywhere: Remove unnecessary AK and Detail namespace scoping 2022-12-09 11:25:30 +00:00
BinaryHeap.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
BinarySearch.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
BitCast.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
Bitmap.h AK: Replace C-style casts 2023-03-09 21:43:54 +01:00
BitmapView.h AK: Replace C-style casts 2023-03-09 21:43:54 +01:00
BitStream.h AK: Read and write accumulated BitStream bits directly 2023-03-13 15:16:20 +00:00
BufferedStream.h AK: Rename Stream::{read,write} to Stream::{read_some,write_some} 2023-03-13 15:16:20 +00:00
BuiltinWrappers.h AK: Fix build with !USING_AK_GLOBALLY 2022-12-13 08:09:56 +03:30
BumpAllocator.h AK: Replace C-style casts 2023-03-09 21:43:54 +01:00
ByteBuffer.h AK: Replace C-style casts 2023-03-09 21:43:54 +01:00
ByteReader.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
CharacterTypes.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Checked.h AK: Use __has_builtin() in Checked.h 2022-12-19 09:29:12 -05:00
CheckedFormatString.h AK: Move compiletime_fail to StdLibExtras.h 2023-03-04 22:10:03 -07:00
CircularBuffer.cpp AK+Test: Fix a logic error in CircularBuffer::offset_of() 2023-01-15 23:23:24 +00:00
CircularBuffer.h AK: Add an optional starting offset to CircularBuffer::offset_of 2023-01-14 16:20:30 -07:00
CircularDeque.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
CircularQueue.h AK: Remove CircularDuplexStream 2023-01-14 12:05:52 -05:00
CMakeLists.txt Userland+AK: Stop using getopt() for ArgsParser 2023-02-28 15:52:24 +03:30
Complex.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
Concepts.h AK: Add the ConvertibleTo concept 2023-02-04 18:47:02 -07:00
DateConstants.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Debug.h.in LibGfx/OpenType: Add some initial support for GPOS glyph positioning 2023-03-17 09:36:20 +01:00
DefaultDelete.h AK+Everywhere: Move custom deleter capability to OwnPtr 2022-12-17 16:00:08 -05:00
Demangle.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
DeprecatedFlyString.cpp Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
DeprecatedFlyString.h Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
DeprecatedString.cpp Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
DeprecatedString.h Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
Diagnostics.h AK: Add a helper macro to temporarily ignore diagnostics with _Pragma() 2022-12-06 21:31:00 +00:00
DisjointChunks.h AK: Remove try_ prefix from FixedArray creation functions 2023-01-28 22:41:36 +01:00
DistinctNumeric.h AK: Add a type alias for DistinctNumeric's underlying type 2023-01-21 10:36:14 +01:00
DOSPackedTime.cpp AK: Add conversion functions for packed DOS time format 2023-02-12 13:13:15 -07:00
DOSPackedTime.h AK: Add conversion functions for packed DOS time format 2023-02-12 13:13:15 -07:00
DoublyLinkedList.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
Endian.h AK: Remove the deprecated Stream implementation :^) 2023-02-08 19:18:26 +00:00
EnumBits.h Everywhere: Remove unused includes of AK/StdLibExtras.h 2023-01-02 20:27:20 -05:00
Error.cpp AK: Add a new method to propagate errno while printing errors in Kernel 2023-02-10 09:14:20 +00:00
Error.h AK: Provide is_errno for Kernel Errors 2023-02-10 12:15:02 +01:00
ExtraMathConstants.h Userland: Move non-standard math constants from math.h 2021-04-27 23:06:16 +02:00
Find.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
FixedArray.h Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
FixedPoint.h AK: Remove signbit definition to prevent conflict in FixedPoint 2023-03-04 21:34:54 -07:00
FloatingPoint.h Everywhere: Remove unused includes of AK/Concepts.h 2023-01-02 20:27:20 -05:00
FloatingPointStringConversions.cpp AK+LibAudio: Remove UFixedBigInt::my_size 2023-03-05 13:49:43 +01:00
FloatingPointStringConversions.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
FlyString.cpp AK: Add FlyString::from_deprecated_fly_string() 2023-03-11 18:32:33 +00:00
FlyString.h AK: Add FlyString::from_deprecated_fly_string() 2023-03-11 18:32:33 +00:00
Format.cpp AK+Kernel: Add includes before removing Kernel/ProcessExposed.h 2023-02-24 22:14:18 +01:00
Format.h AK: Allow zero-valued signed size types in format strings 2023-02-19 13:49:07 +01:00
Forward.h AK: Forward-declare LexicalPath 2023-03-11 13:22:57 +00:00
FPControl.h AK: Add a cpp-y, more fine grained version of fenv.h: FPControl.h 2022-05-07 20:27:05 +02:00
Function.h AK: Check the return type in IsCallableWithArguments 2023-02-04 18:47:02 -07:00
FuzzyMatch.cpp Everywhere: Remove string.h include from AK/Traits.h and resolve fallout 2023-01-21 10:43:59 -07:00
FuzzyMatch.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
GenericLexer.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
GenericLexer.h AK+Everywhere: Make GenericLexer::ignore_until() stop before the value 2023-02-28 12:55:10 +00:00
GenericShorthands.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
HashFunctions.h AK: Remove unused rehash_for_collision 2023-02-17 22:29:51 -07:00
HashMap.h AK: Add missing const qualifier to HashCompatible HashMap::contains() 2023-03-03 11:02:21 +00:00
HashTable.h AK: Clear OrderedHashTable previous/next pointers on removal 2023-03-15 21:43:52 +01:00
Hex.cpp AK: Disallow returning of string literals for errors in kernel code 2023-02-10 09:14:20 +00:00
Hex.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
IDAllocator.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
InsertionSort.h AK: Introduce cutoff to insertion sort for Quicksort 2022-12-12 15:03:57 +00:00
IntegralMath.h AK: Implement FloatExtractor<f128> 2022-12-02 16:22:51 +01:00
IntrusiveDetails.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
IntrusiveList.h AK: Remove unimplemented methods 2023-01-27 20:33:18 +00:00
IntrusiveListRelaxedConst.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
IntrusiveRedBlackTree.h Everywhere: Remove unnecessary AK and Detail namespace scoping 2022-12-09 11:25:30 +00:00
IPv4Address.h AK: Remove unused network ordered 'address' variable 2023-01-31 12:42:49 +01:00
IPv6Address.h AK: Don't inherit Formatter<ErrorOr<T>> for Formatter<IPv6Address> 2023-01-13 21:09:26 +00:00
IterationDecision.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Iterator.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
JsonArray.h AK: Remove StringBuilder::build() in favor of to_deprecated_string() 2023-01-27 20:38:49 +00:00
JsonArraySerializer.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
JsonObject.cpp AK: Remove JsonObject::get_deprecated() and ::get_ptr() :^) 2023-02-03 07:19:52 -05:00
JsonObject.h AK: Remove JsonObject::get_deprecated() and ::get_ptr() :^) 2023-02-03 07:19:52 -05:00
JsonObjectSerializer.h Everywhere: Remove string.h include from AK/Traits.h and resolve fallout 2023-01-21 10:43:59 -07:00
JsonParser.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
JsonParser.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
JsonPath.cpp AK: Replace uses of JsonObject::get_deprecated()/get_ptr() 2023-01-17 19:52:52 -05:00
JsonPath.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
JsonValue.cpp AK: Replace uses of JsonObject::get_deprecated()/get_ptr() 2023-01-17 19:52:52 -05:00
JsonValue.h AK: Add JsonValue::{is,as}_integer() methods 2023-01-17 19:52:52 -05:00
kmalloc.cpp AK: Provide a fallback definition for std::nothrow 2023-01-29 19:16:44 -07:00
kmalloc.h AK: Fully qualify some usages of AK features outside of the AK namespace 2022-11-27 23:54:40 +01:00
kstdio.h Everywhere: Replace uses of __serenity__ with AK_OS_SERENITY 2022-10-10 12:23:12 +02:00
LEB128.h Everywhere: Remove the AK:: qualifier from Stream usages 2023-02-13 00:50:07 +00:00
LexicalPath.cpp AK: Create relative path even if prefix is not an ancestor of the path 2022-12-14 15:11:03 +00:00
LexicalPath.h AK: Add LexicalPath::is_child_of 2022-12-11 16:05:23 +00:00
MACAddress.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
Math.h AK: Add constexpr floor and round 2023-03-10 04:07:14 -07:00
MaybeOwned.h AK: Move Handle from LibCore and name it MaybeOwned 2023-01-29 19:16:44 -07:00
MemMem.h Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
Memory.h Everywhere: Remove unused includes of LibC/stdlib.h 2023-01-02 20:27:20 -05:00
MemoryStream.cpp AK: Rename Stream::write_entire_buffer to Stream::write_until_depleted 2023-03-13 15:16:20 +00:00
MemoryStream.h AK: Rename Stream::write_entire_buffer to Stream::write_until_depleted 2023-03-13 15:16:20 +00:00
NeverDestroyed.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
NoAllocationGuard.h AK: Restrict include of LibC header 2023-01-07 10:01:37 -07:00
Noncopyable.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
NonnullOwnPtr.h AK: Replace C-style casts 2023-03-09 21:43:54 +01:00
NonnullRefPtr.h Revert "AK: Disallow constness laundering in RefPtr and NonnullRefPtr" 2023-02-21 09:22:18 +01:00
NumberFormat.cpp AK: Add an option to format numbers with 1000 based units 2023-01-02 20:11:18 +00:00
NumberFormat.h AK: Add an option to format numbers with 1000 based units 2023-01-02 20:11:18 +00:00
NumericLimits.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Optional.h AK: Export the OptionalNone helper structure 2023-01-16 10:12:37 +00:00
OptionParser.cpp Userland+AK: Stop using getopt() for ArgsParser 2023-02-28 15:52:24 +03:30
OptionParser.h Userland+AK: Stop using getopt() for ArgsParser 2023-02-28 15:52:24 +03:30
OwnPtr.h AK: Move try_make() to NonnullOwnPtr.h 2023-02-11 08:53:00 -05:00
Platform.h AK: Add Solaris to platform detection 2023-03-04 21:34:54 -07:00
PrintfImplementation.h Everywhere: Remove string.h include from AK/Traits.h and resolve fallout 2023-01-21 10:43:59 -07:00
Ptr32.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Queue.h AK: Add Queue::tail() 2023-03-14 16:52:44 +01:00
QuickSelect.h AK: Add thresholds to quickselect_inline and Statistics::Median 2023-02-03 19:04:15 +01:00
QuickSort.h AK: Change quicksort comments to standard // style 2022-12-12 15:03:57 +00:00
Random.cpp AK: Introduce get_random_uniform() 2021-05-14 22:24:02 +02:00
Random.h AK: Remove specialized shuffle for NonnullPtrVector 2023-03-06 23:46:36 +01:00
RecursionDecision.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
RedBlackTree.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
RefCounted.h Everywhere: Remove unused includes of AK/StdLibExtras.h 2023-01-02 20:27:20 -05:00
RefCountForwarder.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
RefPtr.h Revert "AK: Disallow constness laundering in RefPtr and NonnullRefPtr" 2023-02-21 09:22:18 +01:00
Result.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
ReverseIterator.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
ScopedValueRollback.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
ScopeGuard.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
ScopeLogger.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
SIMD.h AK: Add char SIMD types 2021-07-22 23:33:21 +02:00
SIMDExtras.h LibGfx: Implement PNG filtering on write 2022-07-10 15:01:07 +02:00
SIMDMath.h AK+readelf: Issue error when using ARCH(arch) with nonexistent arch 2023-03-03 21:53:41 +01:00
Singleton.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
SinglyLinkedList.h AK: Combine SinglyLinkedList and SinglyLinkedListWithCount 2023-01-02 20:13:24 +00:00
SinglyLinkedListSizePolicy.h AK: Combine SinglyLinkedList and SinglyLinkedListWithCount 2023-01-02 20:13:24 +00:00
SourceGenerator.h AK: Remove StringBuilder::build() in favor of to_deprecated_string() 2023-01-27 20:38:49 +00:00
SourceLocation.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Span.h Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
Stack.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
StackInfo.cpp AK: Add support for Solaris to StackInfo 2023-03-04 21:34:54 -07:00
StackInfo.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Statistics.h AK: Add thresholds to quickselect_inline and Statistics::Median 2023-02-03 19:04:15 +01:00
StdLibExtraDetails.h AK: Move the definition of IsCallableWithArguments to Function.h 2023-02-04 18:47:02 -07:00
StdLibExtras.h AK: Replace C-style casts 2023-03-09 21:43:54 +01:00
Stream.cpp AK: Rename Stream::write_entire_buffer to Stream::write_until_depleted 2023-03-13 15:16:20 +00:00
Stream.h AK: Rename Stream::write_entire_buffer to Stream::write_until_depleted 2023-03-13 15:16:20 +00:00
String.cpp AK: Rename Stream::read_entire_buffer to Stream::read_until_filled 2023-03-13 15:16:20 +00:00
String.h AK: Make FlyString::hash() use the cached hash in StringData if possible 2023-03-09 21:54:59 +01:00
StringBuilder.cpp AK: Remove infallible version of StringBuilder::to_byte_buffer 2023-03-09 15:51:00 +00:00
StringBuilder.h AK: Remove infallible version of StringBuilder::to_byte_buffer 2023-03-09 15:51:00 +00:00
StringFloatingPointConversions.cpp AK+LibCrypto: Delete 64x64 wide multiplication workarounds 2023-03-04 22:10:03 -07:00
StringFloatingPointConversions.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
StringHash.h AK: Replace C-style casts 2023-03-09 21:43:54 +01:00
StringImpl.cpp AK: Make Deprecated{Fly,}String and StringImpl const-correct 2023-02-21 00:54:04 +01:00
StringImpl.h AK: Make Deprecated{Fly,}String and StringImpl const-correct 2023-02-21 00:54:04 +01:00
StringUtils.cpp Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
StringUtils.h Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
StringView.cpp Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
StringView.h AK: Rename CaseInsensitiveStringViewTraits to reflect intent 2023-03-14 21:34:32 +00:00
TemporaryChange.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Time.cpp AK: Reimplement comparisons on AK::Time using operator<=> 2023-01-07 14:51:04 +01:00
Time.h Everywhere: Remove string.h include from AK/Traits.h and resolve fallout 2023-01-21 10:43:59 -07:00
Traits.h AK: Replace C-style casts 2023-03-09 21:43:54 +01:00
Trie.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
Try.h AK+Everywhere: Do not implicitly copy variables in TRY macros 2023-02-10 09:08:52 +00:00
Tuple.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
TypeCasts.h Everywhere: Remove unused includes of AK/StdLibExtras.h 2023-01-02 20:27:20 -05:00
TypedTransfer.h Everywhere: Stop shoving things into ::std and mentioning them as such 2022-12-14 11:44:32 +01:00
TypeList.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Types.h AK: Replace C-style casts 2023-03-09 21:43:54 +01:00
UBSanitizer.h Everywhere: Fix badly-formatted includes 2023-01-02 11:06:15 -05:00
UFixedBigInt.h AK+LibAudio: Remove UFixedBigInt::my_size 2023-03-05 13:49:43 +01:00
UFixedBigIntDivision.h AK: Implement Knuth's algorithm D for dividing UFixedBigInt's 2023-03-04 22:10:03 -07:00
UnicodeUtils.h AK: Replace C-style casts 2023-03-09 21:43:54 +01:00
URL.cpp AK+Tests+LibWeb: Make URL::complete_url() take a StringView 2023-02-15 12:48:26 -05:00
URL.h AK: Add new String constructor to URL 2023-03-01 22:44:20 +00:00
URLParser.cpp Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
URLParser.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Userspace.h AK: Replace C-style casts 2023-03-09 21:43:54 +01:00
Utf8View.cpp AK: Compute UTF-8 code point lengths using only leading bytes 2023-03-13 15:16:02 +00:00
Utf8View.h AK: Replace C-style casts 2023-03-09 21:43:54 +01:00
Utf16View.cpp AK: Add spec comments to Utf16CodePointIterator::operator*() 2023-01-22 21:30:44 +00:00
Utf16View.h Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
Utf32View.cpp AK: Prepare Utf32View for use within templated LibGfx contexts 2023-02-22 10:14:36 +01:00
Utf32View.h AK: Add a Utf32View::substring_view overload to take only an offset 2023-03-08 18:57:53 +00:00
UUID.cpp AK: Stop using DeprecatedString in UUID 2022-12-20 10:34:19 +01:00
UUID.h AK: Stop using DeprecatedString in UUID 2022-12-20 10:34:19 +01:00
Variant.h AK+LibWeb: Implement Variant equality operator 2023-02-17 16:22:56 +00:00
Vector.h AK: Always initialize vector capacity to inline_capacity 2023-02-11 00:03:14 +01:00
Weakable.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
WeakPtr.h AK: Make WeakPtr<T>::value() return NonnullRefPtr<T> 2023-02-05 15:38:19 +01:00