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