MinikinUtils.cpp revision 1a73f732f91e97c9c66b808c245ddda36a10e987
11a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien/* 21a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * Copyright (C) 2014 The Android Open Source Project 31a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * 41a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * Licensed under the Apache License, Version 2.0 (the "License"); 51a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * you may not use this file except in compliance with the License. 61a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * You may obtain a copy of the License at 71a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * 81a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * http://www.apache.org/licenses/LICENSE-2.0 91a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * 101a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * Unless required by applicable law or agreed to in writing, software 111a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * distributed under the License is distributed on an "AS IS" BASIS, 121a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * See the License for the specific language governing permissions and 141a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * limitations under the License. 151a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien */ 161a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien 171a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien#include "SkPaint.h" 181a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien#include "minikin/Layout.h" 191a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien#include "TypefaceImpl.h" 201a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien 211a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien#include "MinikinUtils.h" 221a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien 231a73f732f91e97c9c66b808c245ddda36a10e987Raph Leviennamespace android { 241a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien 251a73f732f91e97c9c66b808c245ddda36a10e987Raph Levienvoid MinikinUtils::SetLayoutProperties(Layout* layout, SkPaint* paint, 261a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien TypefaceImpl* typeface) { 271a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien TypefaceImpl* resolvedFace = TypefaceImpl_resolveDefault(typeface); 281a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien layout->setFontCollection(resolvedFace->fFontCollection); 291a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien FontStyle style = resolvedFace->fStyle; 301a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien char css[256]; 311a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien sprintf(css, "font-size: %d; font-weight: %d; font-style: %s", 321a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien (int)paint->getTextSize(), 331a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien style.getWeight() * 100, 341a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien style.getItalic() ? "italic" : "normal"); 351a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien layout->setProperties(css); 361a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien} 371a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien 381a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien} 39