// Copyright (c) 2013 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 CONTENT_RENDERER_PEPPER_PEPPER_TRUETYPE_FONT_H_ #define CONTENT_RENDERER_PEPPER_PEPPER_TRUETYPE_FONT_H_ #include <string> #include <vector> #include "ppapi/proxy/serialized_structs.h" namespace content { class PepperTrueTypeFont { public: // Creates a font matching the given descriptor. The exact font that is // returned will depend on the host platform's font matching and fallback // algorithm. static PepperTrueTypeFont* Create( const ppapi::proxy::SerializedTrueTypeFontDesc& desc); virtual ~PepperTrueTypeFont() {} // Returns true if the font was successfully created, false otherwise. virtual bool IsValid() = 0; // Returns a description of the actual font. Use this to see the actual // characteristics of the font after running the host platform's font matching // and fallback algorithm. Returns PP_OK on success, a Pepper error code on // failure. 'desc' is written only on success. virtual int32_t Describe(ppapi::proxy::SerializedTrueTypeFontDesc* desc) = 0; // Retrieves an array of TrueType table tags contained in this font. Returns // the number of tags on success, a Pepper error code on failure. 'tags' are // written only on success. virtual int32_t GetTableTags(std::vector<uint32_t>* tags) = 0; // Gets a TrueType font table corresponding to the given tag. The 'offset' and // 'max_data_length' parameters determine what part of the table is returned. // Returns the data size in bytes on success, a Pepper error code on failure. // 'data' is written only on success. virtual int32_t GetTable(uint32_t table_tag, int32_t offset, int32_t max_data_length, std::string* data) = 0; }; } // namespace content #endif // CONTENT_RENDERER_PEPPER_PEPPER_TRUETYPE_FONT_H_