1cb93a386Sopenharmony_ci/* 2cb93a386Sopenharmony_ci * Copyright 2019 Google Inc. 3cb93a386Sopenharmony_ci * 4cb93a386Sopenharmony_ci * Use of this source code is governed by a BSD-style license that can be 5cb93a386Sopenharmony_ci * found in the LICENSE file. 6cb93a386Sopenharmony_ci */ 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ci 9cb93a386Sopenharmony_ci 10cb93a386Sopenharmony_ci#include "src/core/SkStrikeForGPU.h" 11cb93a386Sopenharmony_ci 12cb93a386Sopenharmony_ci#include "src/core/SkGlyphRunPainter.h" 13cb93a386Sopenharmony_ci 14cb93a386Sopenharmony_cibool SkStrikeForGPU::CanDrawAsMask(const SkGlyph& glyph) { 15cb93a386Sopenharmony_ci return FitsInAtlas(glyph); 16cb93a386Sopenharmony_ci} 17cb93a386Sopenharmony_ci 18cb93a386Sopenharmony_cibool SkStrikeForGPU::CanDrawAsSDFT(const SkGlyph& glyph) { 19cb93a386Sopenharmony_ci return FitsInAtlas(glyph) && glyph.maskFormat() == SkMask::kSDF_Format; 20cb93a386Sopenharmony_ci} 21cb93a386Sopenharmony_ci 22cb93a386Sopenharmony_cibool SkStrikeForGPU::CanDrawAsPath(const SkGlyph& glyph) { 23cb93a386Sopenharmony_ci SkASSERT(glyph.isColor() || glyph.setPathHasBeenCalled()); 24cb93a386Sopenharmony_ci return !glyph.isColor() && glyph.path() != nullptr; 25cb93a386Sopenharmony_ci} 26cb93a386Sopenharmony_ci 27cb93a386Sopenharmony_cibool SkStrikeForGPU::FitsInAtlas(const SkGlyph& glyph) { 28cb93a386Sopenharmony_ci return glyph.maxDimension() <= SkStrikeCommon::kSkSideTooBigForAtlas; 29cb93a386Sopenharmony_ci} 30cb93a386Sopenharmony_ci 31