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