MinikinFontForTest.cpp revision bae347682989d2627081310129a5b60541ed6ad0
11c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka/* 21c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka * Copyright (C) 2015 The Android Open Source Project 31c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka * 41c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka * Licensed under the Apache License, Version 2.0 (the "License"); 51c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka * you may not use this file except in compliance with the License. 61c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka * You may obtain a copy of the License at 71c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka * 81c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka * http://www.apache.org/licenses/LICENSE-2.0 91c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka * 101c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka * Unless required by applicable law or agreed to in writing, software 111c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka * distributed under the License is distributed on an "AS IS" BASIS, 121c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka * See the License for the specific language governing permissions and 141c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka * limitations under the License. 151c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka */ 161c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka 171c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka#include "MinikinFontForTest.h" 181c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka 191c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka#include <minikin/MinikinFont.h> 201c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka 211c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka#include <SkTypeface.h> 221c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka 231c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka#include <cutils/log.h> 241c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka 251c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo NonakaMinikinFontForTest::MinikinFontForTest(const std::string& font_path) : mFontPath(font_path) { 261c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka mTypeface = SkTypeface::CreateFromFile(font_path.c_str()); 271c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka} 281c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka 291c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo NonakaMinikinFontForTest::~MinikinFontForTest() { 301c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka} 311c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka 32bae347682989d2627081310129a5b60541ed6ad0Seigo Nonakafloat MinikinFontForTest::GetHorizontalAdvance(uint32_t /* glyph_id */, 33bae347682989d2627081310129a5b60541ed6ad0Seigo Nonaka const android::MinikinPaint& /* paint */) const { 341c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka LOG_ALWAYS_FATAL("MinikinFontForTest::GetHorizontalAdvance is not yet implemented"); 351c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka return 0.0f; 361c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka} 371c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka 38bae347682989d2627081310129a5b60541ed6ad0Seigo Nonakavoid MinikinFontForTest::GetBounds(android::MinikinRect* /* bounds */, uint32_t /* glyph_id */, 39bae347682989d2627081310129a5b60541ed6ad0Seigo Nonaka const android::MinikinPaint& /* paint */) const { 401c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka LOG_ALWAYS_FATAL("MinikinFontForTest::GetBounds is not yet implemented"); 411c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka} 421c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka 431c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonakabool MinikinFontForTest::GetTable(uint32_t tag, uint8_t *buf, size_t *size) { 441c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka if (buf == NULL) { 451c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka const size_t tableSize = mTypeface->getTableSize(tag); 461c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka *size = tableSize; 471c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka return tableSize != 0; 481c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka } else { 491c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka const size_t actualSize = mTypeface->getTableData(tag, 0, *size, buf); 501c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka *size = actualSize; 511c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka return actualSize != 0; 521c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka } 531c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka} 541c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka 551c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonakaint32_t MinikinFontForTest::GetUniqueId() const { 561c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka return mTypeface->uniqueID(); 571c2bd209d11e59ea3a31d49ec4e97725fd711beaSeigo Nonaka} 58