Home | History | Annotate | Download | only in core
      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 #include "sfntly/table/core/maximum_profile_table.h"
     18 
     19 namespace sfntly {
     20 /******************************************************************************
     21  * MaximumProfileTable class
     22  ******************************************************************************/
     23 MaximumProfileTable::~MaximumProfileTable() {}
     24 
     25 int32_t MaximumProfileTable::TableVersion() {
     26   return data_->ReadFixed(Offset::kVersion);
     27 }
     28 
     29 int32_t MaximumProfileTable::NumGlyphs() {
     30   return data_->ReadUShort(Offset::kNumGlyphs);
     31 }
     32 
     33 int32_t MaximumProfileTable::MaxPoints() {
     34   return data_->ReadUShort(Offset::kMaxPoints);
     35 }
     36 
     37 int32_t MaximumProfileTable::MaxContours() {
     38   return data_->ReadUShort(Offset::kMaxContours);
     39 }
     40 
     41 int32_t MaximumProfileTable::MaxCompositePoints() {
     42   return data_->ReadUShort(Offset::kMaxCompositePoints);
     43 }
     44 
     45 int32_t MaximumProfileTable::MaxCompositeContours() {
     46   return data_->ReadUShort(Offset::kMaxCompositeContours);
     47 }
     48 
     49 int32_t MaximumProfileTable::MaxZones() {
     50   return data_->ReadUShort(Offset::kMaxZones);
     51 }
     52 
     53 int32_t MaximumProfileTable::MaxTwilightPoints() {
     54   return data_->ReadUShort(Offset::kMaxTwilightPoints);
     55 }
     56 
     57 int32_t MaximumProfileTable::MaxStorage() {
     58   return data_->ReadUShort(Offset::kMaxStorage);
     59 }
     60 
     61 int32_t MaximumProfileTable::MaxFunctionDefs() {
     62   return data_->ReadUShort(Offset::kMaxFunctionDefs);
     63 }
     64 
     65 int32_t MaximumProfileTable::MaxStackElements() {
     66   return data_->ReadUShort(Offset::kMaxStackElements);
     67 }
     68 
     69 int32_t MaximumProfileTable::MaxSizeOfInstructions() {
     70   return data_->ReadUShort(Offset::kMaxSizeOfInstructions);
     71 }
     72 
     73 int32_t MaximumProfileTable::MaxComponentElements() {
     74   return data_->ReadUShort(Offset::kMaxComponentElements);
     75 }
     76 
     77 int32_t MaximumProfileTable::MaxComponentDepth() {
     78   return data_->ReadUShort(Offset::kMaxComponentDepth);
     79 }
     80 
     81 MaximumProfileTable::MaximumProfileTable(Header* header,
     82                                          ReadableFontData* data)
     83     : Table(header, data) {
     84 }
     85 
     86 /******************************************************************************
     87  * MaximumProfileTable::Builder class
     88  ******************************************************************************/
     89 MaximumProfileTable::Builder::Builder(Header* header, WritableFontData* data)
     90     : TableBasedTableBuilder(header, data) {
     91 }
     92 
     93 MaximumProfileTable::Builder::Builder(Header* header, ReadableFontData* data)
     94     : TableBasedTableBuilder(header, data) {
     95 }
     96 
     97 MaximumProfileTable::Builder::~Builder() {}
     98 
     99 CALLER_ATTACH FontDataTable*
    100     MaximumProfileTable::Builder::SubBuildTable(ReadableFontData* data) {
    101   FontDataTablePtr table = new MaximumProfileTable(header(), data);
    102   return table.Detach();
    103 }
    104 
    105 CALLER_ATTACH MaximumProfileTable::Builder*
    106     MaximumProfileTable::Builder::CreateBuilder(Header* header,
    107                                                 WritableFontData* data) {
    108   Ptr<MaximumProfileTable::Builder> builder;
    109   builder = new MaximumProfileTable::Builder(header, data);
    110   return builder.Detach();
    111 }
    112 
    113 int32_t MaximumProfileTable::Builder::TableVersion() {
    114   return InternalReadData()->ReadUShort(Offset::kVersion);
    115 }
    116 
    117 void MaximumProfileTable::Builder::SetTableVersion(int32_t version) {
    118   InternalWriteData()->WriteUShort(Offset::kVersion, version);
    119 }
    120 
    121 int32_t MaximumProfileTable::Builder::NumGlyphs() {
    122   return InternalReadData()->ReadUShort(Offset::kNumGlyphs);
    123 }
    124 
    125 void MaximumProfileTable::Builder::SetNumGlyphs(int32_t num_glyphs) {
    126   InternalWriteData()->WriteUShort(Offset::kNumGlyphs, num_glyphs);
    127 }
    128 
    129 int32_t MaximumProfileTable::Builder::MaxPoints() {
    130   return InternalReadData()->ReadUShort(Offset::kMaxPoints);
    131 }
    132 
    133 void MaximumProfileTable::Builder::SetMaxPoints(int32_t max_points) {
    134   InternalWriteData()->WriteUShort(Offset::kMaxPoints, max_points);
    135 }
    136 
    137 int32_t MaximumProfileTable::Builder::MaxContours() {
    138   return InternalReadData()->ReadUShort(Offset::kMaxContours);
    139 }
    140 
    141 void MaximumProfileTable::Builder::SetMaxContours(int32_t max_contours) {
    142   InternalWriteData()->WriteUShort(Offset::kMaxContours, max_contours);
    143 }
    144 
    145 int32_t MaximumProfileTable::Builder::MaxCompositePoints() {
    146   return InternalReadData()->ReadUShort(Offset::kMaxCompositePoints);
    147 }
    148 
    149 void MaximumProfileTable::Builder::SetMaxCompositePoints(
    150     int32_t max_composite_points) {
    151   InternalWriteData()->WriteUShort(Offset::kMaxCompositePoints,
    152                                    max_composite_points);
    153 }
    154 
    155 int32_t MaximumProfileTable::Builder::MaxCompositeContours() {
    156   return InternalReadData()->ReadUShort(Offset::kMaxCompositeContours);
    157 }
    158 
    159 void MaximumProfileTable::Builder::SetMaxCompositeContours(
    160     int32_t max_composite_contours) {
    161   InternalWriteData()->WriteUShort(Offset::kMaxCompositeContours,
    162       max_composite_contours);
    163 }
    164 
    165 int32_t MaximumProfileTable::Builder::MaxZones() {
    166   return InternalReadData()->ReadUShort(Offset::kMaxZones);
    167 }
    168 
    169 void MaximumProfileTable::Builder::SetMaxZones(int32_t max_zones) {
    170   InternalWriteData()->WriteUShort(Offset::kMaxZones, max_zones);
    171 }
    172 
    173 int32_t MaximumProfileTable::Builder::MaxTwilightPoints() {
    174   return InternalReadData()->ReadUShort(Offset::kMaxTwilightPoints);
    175 }
    176 
    177 void MaximumProfileTable::Builder::SetMaxTwilightPoints(
    178     int32_t max_twilight_points) {
    179   InternalWriteData()->WriteUShort(Offset::kMaxTwilightPoints,
    180                                    max_twilight_points);
    181 }
    182 
    183 int32_t MaximumProfileTable::Builder::MaxStorage() {
    184   return InternalReadData()->ReadUShort(Offset::kMaxStorage);
    185 }
    186 
    187 void MaximumProfileTable::Builder::SetMaxStorage(int32_t max_storage) {
    188   InternalWriteData()->WriteUShort(Offset::kMaxStorage, max_storage);
    189 }
    190 
    191 int32_t MaximumProfileTable::Builder::MaxFunctionDefs() {
    192   return InternalReadData()->ReadUShort(Offset::kMaxFunctionDefs);
    193 }
    194 
    195 void MaximumProfileTable::Builder::SetMaxFunctionDefs(
    196     int32_t max_function_defs) {
    197   InternalWriteData()->WriteUShort(Offset::kMaxFunctionDefs, max_function_defs);
    198 }
    199 
    200 int32_t MaximumProfileTable::Builder::MaxStackElements() {
    201   return InternalReadData()->ReadUShort(Offset::kMaxStackElements);
    202 }
    203 
    204 void MaximumProfileTable::Builder::SetMaxStackElements(
    205     int32_t max_stack_elements) {
    206   InternalWriteData()->WriteUShort(Offset::kMaxStackElements,
    207                                    max_stack_elements);
    208 }
    209 
    210 int32_t MaximumProfileTable::Builder::MaxSizeOfInstructions() {
    211   return InternalReadData()->ReadUShort(Offset::kMaxSizeOfInstructions);
    212 }
    213 
    214 void MaximumProfileTable::Builder::SetMaxSizeOfInstructions(
    215     int32_t max_size_of_instructions) {
    216   InternalWriteData()->WriteUShort(Offset::kMaxSizeOfInstructions,
    217                                    max_size_of_instructions);
    218 }
    219 
    220 int32_t MaximumProfileTable::Builder::MaxComponentElements() {
    221   return InternalReadData()->ReadUShort(Offset::kMaxComponentElements);
    222 }
    223 
    224 void MaximumProfileTable::Builder::SetMaxComponentElements(
    225     int32_t max_component_elements) {
    226   InternalWriteData()->WriteUShort(Offset::kMaxComponentElements,
    227                                    max_component_elements);
    228 }
    229 
    230 int32_t MaximumProfileTable::Builder::MaxComponentDepth() {
    231   return InternalReadData()->ReadUShort(Offset::kMaxComponentDepth);
    232 }
    233 
    234 void MaximumProfileTable::Builder::SetMaxComponentDepth(
    235     int32_t max_component_depth) {
    236   InternalWriteData()->WriteUShort(Offset::kMaxComponentDepth,
    237                                    max_component_depth);
    238 }
    239 
    240 }  // namespace sfntly
    241