From: Behdad Esfahbod Date: Fri, 31 Aug 2018 23:31:00 +0000 (-0700) Subject: [subset] Add hb_subset_context_t<> X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d1f29908c281b1685eea00b71bae934d9f1f20eb;p=platform%2Fupstream%2FlibHarfBuzzSharp.git [subset] Add hb_subset_context_t<> --- diff --git a/src/hb-open-type.hh b/src/hb-open-type.hh index 48a8eaa..d43dcac 100644 --- a/src/hb-open-type.hh +++ b/src/hb-open-type.hh @@ -33,6 +33,7 @@ #include "hb-blob.hh" #include "hb-face.hh" #include "hb-machinery.hh" +#include "hb-subset.hh" namespace OT { diff --git a/src/hb-ot-cmap-table.hh b/src/hb-ot-cmap-table.hh index b7db145..e6876d1 100644 --- a/src/hb-ot-cmap-table.hh +++ b/src/hb-ot-cmap-table.hh @@ -29,7 +29,6 @@ #include "hb-open-type.hh" #include "hb-set.hh" -#include "hb-subset.hh" /* * cmap -- Character to Glyph Index Mapping diff --git a/src/hb-ot-hdmx-table.hh b/src/hb-ot-hdmx-table.hh index 3702d84..d684de0 100644 --- a/src/hb-ot-hdmx-table.hh +++ b/src/hb-ot-hdmx-table.hh @@ -28,7 +28,6 @@ #define HB_OT_HDMX_TABLE_HH #include "hb-open-type.hh" -#include "hb-subset.hh" /* * hdmx -- Horizontal Device Metrics diff --git a/src/hb-ot-hmtx-table.hh b/src/hb-ot-hmtx-table.hh index 5500e9c..3e4b3bd 100644 --- a/src/hb-ot-hmtx-table.hh +++ b/src/hb-ot-hmtx-table.hh @@ -31,7 +31,6 @@ #include "hb-ot-hhea-table.hh" #include "hb-ot-os2-table.hh" #include "hb-ot-var-hvar-table.hh" -#include "hb-subset.hh" /* * hmtx -- Horizontal Metrics diff --git a/src/hb-ot-layout-gsub-table.hh b/src/hb-ot-layout-gsub-table.hh index 55696c5..5737b21 100644 --- a/src/hb-ot-layout-gsub-table.hh +++ b/src/hb-ot-layout-gsub-table.hh @@ -1308,6 +1308,15 @@ struct GSUB : GSUBGPOS inline const SubstLookup& get_lookup (unsigned int i) const { return CastR (GSUBGPOS::get_lookup (i)); } + template + inline bool subset (hb_subset_context_t *c) + { + TRACE_SUBSET (this); + //XXX if (unlikely (!GSUBGPOS::subset (c))) return_trace (false); + return_trace (true); + } + + inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); diff --git a/src/hb-ot-maxp-table.hh b/src/hb-ot-maxp-table.hh index 8a889ee..efcf593 100644 --- a/src/hb-ot-maxp-table.hh +++ b/src/hb-ot-maxp-table.hh @@ -28,7 +28,6 @@ #define HB_OT_MAXP_TABLE_HH #include "hb-open-type.hh" -#include "hb-subset.hh" namespace OT { diff --git a/src/hb-ot-os2-table.hh b/src/hb-ot-os2-table.hh index e00f3ca..f28858c 100644 --- a/src/hb-ot-os2-table.hh +++ b/src/hb-ot-os2-table.hh @@ -29,7 +29,6 @@ #include "hb-open-type.hh" #include "hb-ot-os2-unicode-ranges.hh" -#include "hb-subset.hh" namespace OT { diff --git a/src/hb-ot-post-table.hh b/src/hb-ot-post-table.hh index 955a6d6..d0265d0 100644 --- a/src/hb-ot-post-table.hh +++ b/src/hb-ot-post-table.hh @@ -28,7 +28,6 @@ #define HB_OT_POST_TABLE_HH #include "hb-open-type.hh" -#include "hb-subset.hh" #define HB_STRING_ARRAY_NAME format1_names #define HB_STRING_ARRAY_LIST "hb-ot-post-macroman.hh" diff --git a/src/hb-subset.hh b/src/hb-subset.hh index a9d00c6..5202f73 100644 --- a/src/hb-subset.hh +++ b/src/hb-subset.hh @@ -32,9 +32,30 @@ #include "hb-subset.h" +#include "hb-machinery.hh" #include "hb-subset-input.hh" #include "hb-subset-plan.hh" +template +struct hb_subset_context_t : + hb_dispatch_context_t, bool, HB_DEBUG_SUBSET> +{ + inline const char *get_name (void) { return "SUBSET"; } + template + inline bool dispatch (const T &obj) { return obj.subset (this); } + static bool default_return_value (void) { return true; } + bool stop_sublookup_iteration (bool r) const { return false; } + + hb_subset_plan_t *plan; + Serializer *serializer; + unsigned int debug_depth; + + hb_subset_context_t (hb_subset_plan_t *plan_, + Serializer *serializer_) : + plan (plan_), + serializer (serializer_), + debug_depth (0) {} +}; #endif /* HB_SUBSET_HH */