Skip to content

Commit 1b04b14

Browse files
committed
Added open type builder for extension subtable...
1 parent 036339f commit 1b04b14

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

Tools/Tester/OpenType/Builder.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -614,6 +614,16 @@ ChainContextSubtable &Builder::createChainContext(
614614
return subtable;
615615
}
616616

617+
ExtensionSubtable &Builder::createExtension(LookupType lookupType, const LookupSubtable &innerTable)
618+
{
619+
ExtensionSubtable &subtable = createObject<ExtensionSubtable>();
620+
subtable.format = 1;
621+
subtable.extensionLookupType = lookupType;
622+
subtable.extensionTable = (LookupSubtable *)(&innerTable);
623+
624+
return subtable;
625+
}
626+
617627
template<class InputIt, class Operation>
618628
ValueFormat Builder::findValueFormat(InputIt begin, InputIt end, Operation operation)
619629
{

Tools/Tester/OpenType/Builder.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ class Builder {
8282
const std::vector<std::vector<Glyph>> lookahead,
8383
const std::vector<std::pair<UInt16, UInt16>> lookups);
8484

85+
ExtensionSubtable &createExtension(LookupType lookupType, const LookupSubtable &innerTable);
86+
8587
ValueRecord &createValueRecord(const std::array<Int16, 4> metrics,
8688
const std::array<DeviceTable *, 4> devices = {});
8789

Tools/Tester/OpenType/Common.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -700,10 +700,14 @@ struct ChainContextSubtable : public LookupSubtable {
700700
}
701701
};
702702

703-
struct ExtensionSubtable : public Table {
703+
struct ExtensionSubtable : public LookupSubtable {
704704
UInt16 format; // Format identifier
705705
LookupType extensionLookupType; // Lookup type of subtable referenced by ExtensionOffset (i.e. the extension subtable)
706-
Table *extensionTable; // Offset to the extension subtable, of lookup type ExtensionLookupType, relative to the start of the extension subtable
706+
LookupSubtable *extensionTable; // Offset to the extension subtable, of lookup type ExtensionLookupType, relative to the start of the extension subtable
707+
708+
LookupType lookupType() override {
709+
return LookupType::sExtensionSubstitution;
710+
}
707711

708712
void write(Writer &writer) override {
709713
writer.enter();

0 commit comments

Comments
 (0)