Lines Matching defs:plan
36 #include "hb-subset-plan.hh"
402 void plan_subset_encoding (const OT::cff1::accelerator_subset_t &acc, hb_subset_plan_t *plan)
411 plan->check_success (false);
417 subset_enc_num_codes = plan->num_output_glyphs () - 1;
419 for (glyph = 1; glyph < plan->num_output_glyphs (); glyph++)
422 if (!plan->old_gid_for_new_gid (glyph, &old_glyph))
466 void plan_subset_charset (const OT::cff1::accelerator_subset_t &acc, hb_subset_plan_t *plan)
473 plan->check_success (false);
478 for (glyph = 1; glyph < plan->num_output_glyphs (); glyph++)
481 if (!plan->old_gid_for_new_gid (glyph, &old_glyph))
501 size0 = Charset0::min_size + HBUINT16::static_size * (plan->num_output_glyphs () - 1);
538 hb_subset_plan_t *plan)
542 if (!plan->old_gid_for_new_gid (0, &old_glyph) || (old_glyph != 0)) return false;
544 num_glyphs = plan->num_output_glyphs ();
546 drop_hints = plan->flags & HB_SUBSET_FLAGS_NO_HINTING;
547 desubroutinize = plan->flags & HB_SUBSET_FLAGS_DESUBROUTINIZE;
551 for (hb_codepoint_t new_glyph = 0; new_glyph < plan->num_output_glyphs (); new_glyph++)
553 if (!plan->old_gid_for_new_gid(new_glyph, &old_glyph))
582 if (unlikely (!hb_plan_subset_cff_fdselect (plan,
603 if (subset_charset) plan_subset_charset (acc, plan);
612 flattener(acc, plan);
618 cff1_subr_subsetter_t subr_subsetter (acc, plan);
647 plan_subset_encoding (acc, plan);
667 return ((subset_charstrings.length == plan->num_output_glyphs ())
709 cff_subset_plan &plan,
716 if (plan.fdmap.has (i))
719 if (plan.subset_localsubrs[i].length > 0)
724 if (likely (dest && dest->serialize (c, plan.subset_localsubrs[i])))
736 cff_private_dict_op_serializer_t privSzr (plan.desubroutinize, plan.drop_hints);
740 unsigned fd = plan.fdmap[i];
741 plan.fontdicts_mod[fd].privateDictInfo.size = c->length ();
742 plan.fontdicts_mod[fd].privateDictInfo.link = c->pop_pack ();
753 plan.info.privateDictInfo = plan.fontdicts_mod[0].privateDictInfo;
760 if (likely (cs->serialize (c, plan.subset_charstrings)))
761 plan.info.char_strings_link = c->pop_pack ();
776 auto it = + hb_zip (+ hb_iter (plan.fontdicts_mod), + hb_iter (plan.fontdicts_mod));
778 plan.info.fd_array_link = c->pop_pack (false);
791 plan.subset_fdselect_format, plan.info.fd_select.size,
792 plan.subset_fdselect_ranges)))
793 plan.info.fd_select.link = c->pop_pack ();
802 if (plan.subset_charset)
808 plan.subset_charset_format,
809 plan.num_glyphs,
810 plan.subset_charset_ranges)))
811 plan.info.charset_link = c->pop_pack ();
820 if (plan.subset_encoding)
826 plan.subset_enc_format,
827 plan.subset_enc_num_codes,
828 plan.subset_enc_code_ranges,
829 plan.subset_enc_supp_codes)))
830 plan.info.encoding_link = c->pop_pack ();
843 if (likely (dest->serialize (c, plan.subset_globalsubrs)))
857 if (likely (dest->serialize (c, *acc.stringIndex, plan.sidmap)))
887 top_dict_modifiers_t modifier (plan.info, plan.topDictModSIDs);
888 if (likely (top->serialize (c, plan.topdict_mod, topSzr, modifier)))
911 if (unlikely (!cff_plan.create (acc, c->plan)))
913 DEBUG_MSG(SUBSET, nullptr, "Failed to generate a cff subsetting plan.");
917 return _serialize_cff1 (c->serializer, cff_plan, acc, c->plan->num_output_glyphs ());
924 acc.init (c->plan->source);