MinikinUtils.cpp revision 1a73f732f91e97c9c66b808c245ddda36a10e987
1bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber/*
2bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber * Copyright (C) 2014 The Android Open Source Project
3bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber *
4bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License");
5bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber * you may not use this file except in compliance with the License.
6bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber * You may obtain a copy of the License at
7bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber *
8bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber *      http://www.apache.org/licenses/LICENSE-2.0
9bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber *
10bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber * Unless required by applicable law or agreed to in writing, software
11bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS,
12bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber * See the License for the specific language governing permissions and
14bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber * limitations under the License.
15bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber */
16bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber
17bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber#include "SkPaint.h"
18bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber#include "minikin/Layout.h"
19bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber#include "TypefaceImpl.h"
20bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber
21bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber#include "MinikinUtils.h"
22bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber
23bbba88cb1bdc34705d1477208990a06904c022e7Andreas Hubernamespace android {
24bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber
25bbba88cb1bdc34705d1477208990a06904c022e7Andreas Hubervoid MinikinUtils::SetLayoutProperties(Layout* layout, SkPaint* paint,
26bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber    TypefaceImpl* typeface) {
27bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber    TypefaceImpl* resolvedFace = TypefaceImpl_resolveDefault(typeface);
28bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber    layout->setFontCollection(resolvedFace->fFontCollection);
29bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber    FontStyle style = resolvedFace->fStyle;
30bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber    char css[256];
31bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber    sprintf(css, "font-size: %d; font-weight: %d; font-style: %s",
32bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber        (int)paint->getTextSize(),
33bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber        style.getWeight() * 100,
34bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber        style.getItalic() ? "italic" : "normal");
35bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber    layout->setProperties(css);
36bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber}
37bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber
38bbba88cb1bdc34705d1477208990a06904c022e7Andreas Huber}
395a65e30064dc8dffa4f3d868f1c46038972c40c5Andreas Huber