1*c8dee2aaSAndroid Build Coastguard Worker // Copyright 2019 Google LLC. 2*c8dee2aaSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. 3*c8dee2aaSAndroid Build Coastguard Worker 4*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkFont.h" 5*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkTextBlob.h" 6*c8dee2aaSAndroid Build Coastguard Worker 7*c8dee2aaSAndroid Build Coastguard Worker #include <cstddef> 8*c8dee2aaSAndroid Build Coastguard Worker #include <vector> 9*c8dee2aaSAndroid Build Coastguard Worker 10*c8dee2aaSAndroid Build Coastguard Worker namespace SkPlainTextEditor { 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard Worker struct ShapeResult { 13*c8dee2aaSAndroid Build Coastguard Worker sk_sp<SkTextBlob> blob; 14*c8dee2aaSAndroid Build Coastguard Worker std::vector<std::size_t> lineBreakOffsets; 15*c8dee2aaSAndroid Build Coastguard Worker std::vector<SkRect> glyphBounds; 16*c8dee2aaSAndroid Build Coastguard Worker std::vector<bool> wordBreaks; 17*c8dee2aaSAndroid Build Coastguard Worker int verticalAdvance; 18*c8dee2aaSAndroid Build Coastguard Worker }; 19*c8dee2aaSAndroid Build Coastguard Worker 20*c8dee2aaSAndroid Build Coastguard Worker ShapeResult Shape(const char* ut8text, 21*c8dee2aaSAndroid Build Coastguard Worker size_t textByteLen, 22*c8dee2aaSAndroid Build Coastguard Worker const SkFont& font, 23*c8dee2aaSAndroid Build Coastguard Worker sk_sp<SkFontMgr> fontMgr, 24*c8dee2aaSAndroid Build Coastguard Worker const char* locale, 25*c8dee2aaSAndroid Build Coastguard Worker float width); 26*c8dee2aaSAndroid Build Coastguard Worker 27*c8dee2aaSAndroid Build Coastguard Worker } // namespace SkPlainTextEditor 28