提交 dc50493a 编写于 作者: B Behdad Esfahbod

[subset] Towards subsetting SingleSubstFormat1

Why does subset plan not have a hb_set_t of glyphs?
上级 339d3603
......@@ -33,6 +33,7 @@
#include "hb-blob.hh"
#include "hb-iter.hh"
#include "hb-vector.hh"
/*
......@@ -579,12 +580,19 @@ struct hb_serialize_context_t
template <typename Type>
struct Supplier
{
inline Supplier (const Type *array, unsigned int len_, unsigned int stride_=sizeof(Type))
inline Supplier (const Type *array, unsigned int len_, unsigned int stride_=sizeof (Type))
{
head = array;
len = len_;
stride = stride_;
}
inline Supplier (const hb_vector_t<Type> *v)
{
head = v->arrayZ;
len = v->len;
stride = sizeof (Type);
}
inline const Type operator [] (unsigned int i) const
{
if (unlikely (i >= len)) return Type ();
......
......@@ -104,8 +104,18 @@ struct SingleSubstFormat1
inline bool subset (hb_subset_context_t *c) const
{
return false;
TRACE_SUBSET (this);
// TODO(subset)
hb_auto_t<hb_vector_t<hb_codepoint_t>> from;
hb_auto_t<hb_vector_t<hb_codepoint_t>> to;
hb_codepoint_t delta = deltaGlyphID;
for (hb_auto_t<Coverage::Iter> iter (this+coverage); iter.more (); iter.next ())
{
//if (!c->plan->glyphs->has (iter.get_glyph ()))
// continue;
from.push (iter.get_glyph ());
to.push ((iter.get_glyph () + delta) & 0xFFFF);
}
return_trace (false);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册