From 1cfe650f020cf440bf157daa9907bffd6e35bd7a Mon Sep 17 00:00:00 2001 From: Garret Rieger Date: Mon, 5 Feb 2018 15:22:30 -0800 Subject: [PATCH] Add a basic sketch of hb-subset-plan. --- src/Makefile.sources | 2 ++ src/hb-subset-plan.cc | 72 +++++++++++++++++++++++++++++++++++++++++++ src/hb-subset-plan.h | 49 +++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+) create mode 100644 src/hb-subset-plan.cc create mode 100644 src/hb-subset-plan.h diff --git a/src/Makefile.sources b/src/Makefile.sources index 0b9beb961..eb9cd36ab 100644 --- a/src/Makefile.sources +++ b/src/Makefile.sources @@ -184,10 +184,12 @@ HB_ICU_headers = hb-icu.h # Sources for libharfbuzz-subset HB_SUBSET_sources = \ hb-subset.cc \ + hb-subset-plan.cc \ $(NULL) HB_SUBSET_headers = \ hb-subset.h \ + hb-subset-plan.h \ $(NULL) HB_GOBJECT_sources = hb-gobject-structs.cc diff --git a/src/hb-subset-plan.cc b/src/hb-subset-plan.cc new file mode 100644 index 000000000..705c17f1c --- /dev/null +++ b/src/hb-subset-plan.cc @@ -0,0 +1,72 @@ +/* + * Copyright © 2018 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Garret Rieger + */ + +#include "hb-private.hh" + +#include "hb-object-private.hh" + + +struct hb_subset_plan_t { + hb_object_header_t header; + ASSERT_POD (); +}; + +/** + * hb_subset_plan_create: + * Computes a plan for subsetting the supplied face according + * to a provide profile and input. The plan describes + * which tables and glyphs should be retained. + * + * Return value: New plan with default settings. + * + * Since: 1.7.5 + **/ +hb_subset_plan_t * +hb_subset_plan_create (hb_face_t *face, + hb_subset_profile_t *profile, + hb_subset_input_t *input) +{ + return hb_object_create(); +} + +hb_subset_plan_t * +hb_subset_plan_create_empty () +{ + return hb_object_create(); +} + +/** + * hb_subset_plan_destroy: + * + * Since: 1.7.5 + **/ +void +hb_subset_plan_destroy (hb_subset_plan_t *plan) +{ + if (!hb_object_destroy (plan)) return; + + free (plan); +} diff --git a/src/hb-subset-plan.h b/src/hb-subset-plan.h new file mode 100644 index 000000000..2fd46ae27 --- /dev/null +++ b/src/hb-subset-plan.h @@ -0,0 +1,49 @@ +/* + * Copyright © 2018 Google + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Garret Rieger + */ + +#ifndef HB_H_IN +#error "Include instead." +#endif + +#ifndef HB_SUBSET_PLAN_H +#define HB_SUBSET_PLAN_H + +HB_BEGIN_DECLS + +typedef struct hb_subset_plan_t hb_subset_plan_t; + +HB_EXTERN hb_subset_plan_t * +hb_subset_plan_create (hb_face_t *face, + hb_subset_profile_t *profile, + hb_subset_input_t *input); + +HB_EXTERN hb_subset_plan_t * +hb_subset_plan_create_empty (); + +HB_EXTERN void +hb_subset_plan_destroy (hb_subset_plan_t *plan); + +#endif /* HB_SUBSET_PLAN_PRIVATE_HH */