blob: 00bc0c1973786374b7bd4e4728c34379c5267a5e [file] [log] [blame]
// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef PDF_PPAPI_MIGRATION_PDFIUM_FONT_LINUX_H_
#define PDF_PPAPI_MIGRATION_PDFIUM_FONT_LINUX_H_
namespace blink {
struct WebFontDescription;
}
namespace pp {
class Instance;
}
namespace chrome_pdf {
// Returns a handle to the font mapped based on `desc` and `charset`, for use
// as the font_id in GetPepperFontData() and DeletePepperFont() below. Returns
// nullptr on failure.
void* MapPepperFont(const blink::WebFontDescription& desc, int charset);
// Reads data from the `font_id` handle for `table` into a `buffer` of
// `buf_size`. Returns the amount of data read on success, or 0 on failure. If
// `buffer` is null, then just return the required size for the buffer.
unsigned long GetPepperFontData(void* font_id,
unsigned int table,
unsigned char* buffer,
unsigned long buf_size);
// Releases resources allocated by MapPepperFont().
void DeletePepperFont(void* font_id);
// Keeps track of the most recently used plugin instance. This is a no-op if
// `last_instance` is null.
void SetLastPepperInstance(pp::Instance* last_instance);
} // namespace chrome_pdf
#endif // PDF_PPAPI_MIGRATION_PDFIUM_FONT_LINUX_H_