LCOV - code coverage report
Current view: top level - gfx/sfntly/cpp/src/sfntly - tag.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 2 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 1 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright 2011 Google Inc. All Rights Reserved.
       3             :  *
       4             :  * Licensed under the Apache License, Version 2.0 (the "License");
       5             :  * you may not use this file except in compliance with the License.
       6             :  * You may obtain a copy of the License at
       7             :  *
       8             :  *      http://www.apache.org/licenses/LICENSE-2.0
       9             :  *
      10             :  * Unless required by applicable law or agreed to in writing, software
      11             :  * distributed under the License is distributed on an "AS IS" BASIS,
      12             :  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      13             :  * See the License for the specific language governing permissions and
      14             :  * limitations under the License.
      15             :  */
      16             : 
      17             : #ifndef SFNTLY_CPP_SRC_SFNTLY_TAG_H_
      18             : #define SFNTLY_CPP_SRC_SFNTLY_TAG_H_
      19             : 
      20             : #include <cstddef>
      21             : 
      22             : #include "sfntly/port/type.h"
      23             : 
      24             : namespace sfntly {
      25             : 
      26             : // Font identification tags used for tables, features, etc.
      27             : // Tag names are consistent with the OpenType and sfnt specs.
      28             : struct Tag {
      29             :   static const int32_t ttcf;
      30             : 
      31             :   // Table Type Tags
      32             :   // required tables
      33             :   static const int32_t cmap;
      34             :   static const int32_t head;
      35             :   static const int32_t hhea;
      36             :   static const int32_t hmtx;
      37             :   static const int32_t maxp;
      38             :   static const int32_t name;
      39             :   static const int32_t OS_2;
      40             :   static const int32_t post;
      41             : 
      42             :   // TrueType outline tables
      43             :   static const int32_t cvt;
      44             :   static const int32_t fpgm;
      45             :   static const int32_t glyf;
      46             :   static const int32_t loca;
      47             :   static const int32_t prep;
      48             : 
      49             :   // PostScript outline tables
      50             :   static const int32_t CFF;
      51             :   static const int32_t VORG;
      52             : 
      53             :   // opentype bitmap glyph outlines
      54             :   static const int32_t EBDT;
      55             :   static const int32_t EBLC;
      56             :   static const int32_t EBSC;
      57             : 
      58             :   // advanced typographic features
      59             :   static const int32_t BASE;
      60             :   static const int32_t GDEF;
      61             :   static const int32_t GPOS;
      62             :   static const int32_t GSUB;
      63             :   static const int32_t JSTF;
      64             : 
      65             :   // other
      66             :   static const int32_t DSIG;
      67             :   static const int32_t gasp;
      68             :   static const int32_t hdmx;
      69             :   static const int32_t kern;
      70             :   static const int32_t LTSH;
      71             :   static const int32_t PCLT;
      72             :   static const int32_t VDMX;
      73             :   static const int32_t vhea;
      74             :   static const int32_t vmtx;
      75             : 
      76             :   // AAT tables
      77             :   static const int32_t bsln;
      78             :   static const int32_t feat;
      79             :   static const int32_t lcar;
      80             :   static const int32_t morx;
      81             :   static const int32_t opbd;
      82             :   static const int32_t prop;
      83             : 
      84             :   // Graphite tables
      85             :   static const int32_t Feat;
      86             :   static const int32_t Glat;
      87             :   static const int32_t Gloc;
      88             :   static const int32_t Sile;
      89             :   static const int32_t Silf;
      90             : 
      91             :   // truetype bitmap font tables
      92             :   static const int32_t bhed;
      93             :   static const int32_t bdat;
      94             :   static const int32_t bloc;
      95             : };
      96             : 
      97             : // Create integer tag value for human readable tag name.
      98           0 : inline int32_t GenerateTag(int32_t a, int32_t b, int32_t c, int32_t d) {
      99           0 :   return (a << 24) | (b << 16) | (c << 8) | d;
     100             : }
     101             : 
     102             : // Translate tag to human readable string.
     103             : // The Caller must delete[] the returned value.
     104             : inline char* TagToString(int32_t tag) {
     105             :   char *name = new char[5];
     106             :   name[0] = static_cast<char>((tag & 0xff000000) >> 24);
     107             :   name[1] = static_cast<char>((tag & 0x00ff0000) >> 16);
     108             :   name[2] = static_cast<char>((tag & 0x0000ff00) >> 8);
     109             :   name[3] = static_cast<char>(tag & 0x000000ff);
     110             :   name[4] = 0;
     111             :   return name;
     112             : }
     113             : 
     114             : // Note: For Java, these two orderings are in Font class.  Moved here to avoid
     115             : //       VC++ bug of not populating correct values.
     116             : extern const int32_t CFF_TABLE_ORDERING[];
     117             : extern const size_t CFF_TABLE_ORDERING_SIZE;
     118             : extern const int32_t TRUE_TYPE_TABLE_ORDERING[];
     119             : extern const size_t TRUE_TYPE_TABLE_ORDERING_SIZE;
     120             : 
     121             : }  // namespace sfntly
     122             : 
     123             : #endif  // SFNTLY_CPP_SRC_SFNTLY_TAG_H_

Generated by: LCOV version 1.13