|
|
|
@ -51,6 +51,25 @@ struct cvar |
|
|
|
|
const TupleVariationData* get_tuple_var_data (void) const |
|
|
|
|
{ return &tupleVariationData; } |
|
|
|
|
|
|
|
|
|
bool decompile_tuple_variations (unsigned axis_count, |
|
|
|
|
unsigned point_count, |
|
|
|
|
bool is_gvar, |
|
|
|
|
TupleVariationData::tuple_variations_t& tuple_variations /* OUT */) const |
|
|
|
|
{ |
|
|
|
|
hb_vector_t<unsigned> shared_indices; |
|
|
|
|
TupleVariationData::tuple_iterator_t iterator; |
|
|
|
|
unsigned var_data_length = tupleVariationData.get_size (axis_count); |
|
|
|
|
hb_bytes_t var_data_bytes = hb_bytes_t (reinterpret_cast<const char*> (get_tuple_var_data ()), var_data_length); |
|
|
|
|
if (!TupleVariationData::get_tuple_iterator (var_data_bytes, axis_count, this, |
|
|
|
|
shared_indices, &iterator)) |
|
|
|
|
return true; |
|
|
|
|
|
|
|
|
|
return tupleVariationData.decompile_tuple_variations (point_count, is_gvar, iterator, |
|
|
|
|
shared_indices, |
|
|
|
|
hb_array<const F2DOT14> (), |
|
|
|
|
tuple_variations); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static bool calculate_cvt_deltas (unsigned axis_count, |
|
|
|
|
hb_array_t<int> coords, |
|
|
|
|
unsigned num_cvt_item, |
|
|
|
|