1333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com/* 2333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * Copyright 2011 Google Inc. All Rights Reserved. 3333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * 4333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * Licensed under the Apache License, Version 2.0 (the "License"); 5333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * you may not use this file except in compliance with the License. 6333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * You may obtain a copy of the License at 7333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * 8333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * http://www.apache.org/licenses/LICENSE-2.0 9333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * 10333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * Unless required by applicable law or agreed to in writing, software 11333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * distributed under the License is distributed on an "AS IS" BASIS, 12333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * See the License for the specific language governing permissions and 14333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * limitations under the License. 15333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com */ 16333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 17333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com#include "sfntly/table/bitmap/ebsc_table.h" 18333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 19333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comnamespace sfntly { 20333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com/****************************************************************************** 21333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * EbscTable class 22333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com ******************************************************************************/ 23333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comEbscTable::~EbscTable() { 24333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 25333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 26333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::Version() { 27333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com return data_->ReadFixed(Offset::kVersion); 28333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 29333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 30333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::NumSizes() { 31333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com return data_->ReadULongAsInt(Offset::kNumSizes); 32333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 33333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 34333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comEbscTable::EbscTable(Header* header, ReadableFontData* data) 35333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com : Table(header, data) { 36333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 37333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 38333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com/****************************************************************************** 39333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * EbscTable::BitmapScaleTable class 40333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com ******************************************************************************/ 41333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comEbscTable::BitmapScaleTable::~BitmapScaleTable() { 42333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 43333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 44333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comEbscTable::BitmapScaleTable::BitmapScaleTable(ReadableFontData* data) 45333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com : SubTable(data) { 46333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 47333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 48333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::BitmapScaleTable::PpemX() { 49333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com return data_->ReadByte(Offset::kBitmapScaleTable_ppemX); 50333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 51333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 52333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::BitmapScaleTable::PpemY() { 53333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com return data_->ReadByte(Offset::kBitmapScaleTable_ppemY); 54333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 55333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 56333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::BitmapScaleTable::SubstitutePpemX() { 57333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com return data_->ReadByte(Offset::kBitmapScaleTable_substitutePpemX); 58333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 59333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 60333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::BitmapScaleTable::SubstitutePpemY() { 61333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com return data_->ReadByte(Offset::kBitmapScaleTable_substitutePpemY); 62333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 63333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 64333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com/****************************************************************************** 65333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * EbscTable::Builder class 66333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com ******************************************************************************/ 67333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comEbscTable::Builder::~Builder() { 68333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 69333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 70333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comCALLER_ATTACH EbscTable::Builder* EbscTable::Builder::CreateBuilder( 71333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com Header* header, WritableFontData* data) { 72333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com EbscTableBuilderPtr builder = new EbscTable::Builder(header, data); 73333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com return builder.Detach(); 74333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 75333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 76333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comEbscTable::Builder::Builder(Header* header, WritableFontData* data) 77333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com : Table::Builder(header, data) { 78333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 79333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 80333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comEbscTable::Builder::Builder(Header* header, ReadableFontData* data) 81333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com : Table::Builder(header, data) { 82333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 83333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 84333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comCALLER_ATTACH 85333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comFontDataTable* EbscTable::Builder::SubBuildTable(ReadableFontData* data) { 86333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com EbscTablePtr output = new EbscTable(header(), data); 87333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com return output.Detach(); 88333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 89333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 90333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comvoid EbscTable::Builder::SubDataSet() { 91333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com // NOP 92333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 93333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 94333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::Builder::SubDataSizeToSerialize() { 95333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com return 0; 96333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 97333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 98333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.combool EbscTable::Builder::SubReadyToSerialize() { 99333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com return false; 100333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 101333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 102333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::Builder::SubSerialize(WritableFontData* new_data) { 103333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com UNREFERENCED_PARAMETER(new_data); 104333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com return 0; 105333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} 106333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com 107333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com} // namespace sfntly 108