/*
* Copyright 2011 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// File is originally from Chromium third_party/sfntly/src/subsetter.
// Use as test case in sfntly so that problems can be caught in upstream early.
#ifndef SFNTLY_CPP_SRC_TEST_FONT_SUBSETTER_H_
#define SFNTLY_CPP_SRC_TEST_FONT_SUBSETTER_H_
#include <stddef.h>
class SfntlyWrapper {
public:
// Font subsetting API
//
// Input TTF/TTC/OTF fonts, specify the glyph IDs to subset, and the subset
// font is returned in |output_buffer| (caller to delete[]). Return value is
// the length of output_buffer allocated.
//
// If subsetting fails, a negative value is returned. If none of the glyph
// IDs specified is found, the function will return 0.
//
// |font_name| Font name, required for TTC files. If specified NULL,
// the first available font is selected.
// |original_font| Original font file contents.
// |font_size| Size of |original_font| in bytes.
// |glyph_ids| Glyph IDs to subset. If the specified glyph ID is not
// found in the font file, it will be ignored silently.
// |glyph_count| Number of glyph IDs in |glyph_ids|
// |output_buffer| Generated subset font. Caller to delete[].
static int SubsetFont(const char* font_name,
const unsigned char* original_font,
size_t font_size,
const unsigned int* glyph_ids,
size_t glyph_count,
unsigned char** output_buffer);
// Font subsetting API
//
// Input TTF/TTC/OTF fonts, specify the glyph IDs to subset, and the subset
// font is returned in |output_buffer| (caller to delete[]). Return value is
// the length of output_buffer allocated.
//
// If subsetting fails, a negative value is returned. If none of the glyph
// IDs specified is found, the function will return 0.
//
// |font_name| Font index, ignored for non-TTC files, 0-indexed.
// |original_font| Original font file contents.
// |font_size| Size of |original_font| in bytes.
// |glyph_ids| Glyph IDs to subset. If the specified glyph ID is not
// found in the font file, it will be ignored silently.
// |glyph_count| Number of glyph IDs in |glyph_ids|
// |output_buffer| Generated subset font. Caller to delete[].
static int SubsetFont(int font_index,
const unsigned char* original_font,
size_t font_size,
const unsigned int* glyph_ids,
size_t glyph_count,
unsigned char** output_buffer);
};
#endif // SFNTLY_CPP_SRC_TEST_FONT_SUBSETTER_H_