1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2010 Google Inc. 3*c8dee2aaSAndroid Build Coastguard Worker * 4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker */ 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker #ifndef sktext_gpu_Glyph_DEFINED 9*c8dee2aaSAndroid Build Coastguard Worker #define sktext_gpu_Glyph_DEFINED 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Worker #include "src/core/SkGlyph.h" 12*c8dee2aaSAndroid Build Coastguard Worker #include "src/core/SkMask.h" 13*c8dee2aaSAndroid Build Coastguard Worker #include "src/gpu/AtlasTypes.h" 14*c8dee2aaSAndroid Build Coastguard Worker 15*c8dee2aaSAndroid Build Coastguard Worker namespace sktext::gpu { 16*c8dee2aaSAndroid Build Coastguard Worker 17*c8dee2aaSAndroid Build Coastguard Worker class Glyph { 18*c8dee2aaSAndroid Build Coastguard Worker public: FormatFromSkGlyph(SkMask::Format format)19*c8dee2aaSAndroid Build Coastguard Worker static skgpu::MaskFormat FormatFromSkGlyph(SkMask::Format format) { 20*c8dee2aaSAndroid Build Coastguard Worker switch (format) { 21*c8dee2aaSAndroid Build Coastguard Worker case SkMask::kBW_Format: 22*c8dee2aaSAndroid Build Coastguard Worker case SkMask::kSDF_Format: 23*c8dee2aaSAndroid Build Coastguard Worker // fall through to kA8 -- we store BW and SDF glyphs in our 8-bit cache 24*c8dee2aaSAndroid Build Coastguard Worker case SkMask::kA8_Format: 25*c8dee2aaSAndroid Build Coastguard Worker return skgpu::MaskFormat::kA8; 26*c8dee2aaSAndroid Build Coastguard Worker case SkMask::k3D_Format: 27*c8dee2aaSAndroid Build Coastguard Worker return skgpu::MaskFormat::kA8; // ignore the mul and add planes, just use the mask 28*c8dee2aaSAndroid Build Coastguard Worker case SkMask::kLCD16_Format: 29*c8dee2aaSAndroid Build Coastguard Worker return skgpu::MaskFormat::kA565; 30*c8dee2aaSAndroid Build Coastguard Worker case SkMask::kARGB32_Format: 31*c8dee2aaSAndroid Build Coastguard Worker return skgpu::MaskFormat::kARGB; 32*c8dee2aaSAndroid Build Coastguard Worker } 33*c8dee2aaSAndroid Build Coastguard Worker 34*c8dee2aaSAndroid Build Coastguard Worker SkUNREACHABLE; 35*c8dee2aaSAndroid Build Coastguard Worker } 36*c8dee2aaSAndroid Build Coastguard Worker Glyph(SkPackedGlyphID packedGlyphID)37*c8dee2aaSAndroid Build Coastguard Worker Glyph(SkPackedGlyphID packedGlyphID) : fPackedID(packedGlyphID) {} 38*c8dee2aaSAndroid Build Coastguard Worker 39*c8dee2aaSAndroid Build Coastguard Worker const SkPackedGlyphID fPackedID; 40*c8dee2aaSAndroid Build Coastguard Worker skgpu::AtlasLocator fAtlasLocator; 41*c8dee2aaSAndroid Build Coastguard Worker }; 42*c8dee2aaSAndroid Build Coastguard Worker 43*c8dee2aaSAndroid Build Coastguard Worker } // namespace sktext::gpu 44*c8dee2aaSAndroid Build Coastguard Worker 45*c8dee2aaSAndroid Build Coastguard Worker #endif // sktext_gpu_Glyph_DEFINED 46