1 /* 2 * Copyright 2020 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef SkMipmapBuilder_DEFINED 9 #define SkMipmapBuilder_DEFINED 10 11 #include "include/core/SkImage.h" 12 13 class SkMipmapBuilder { 14 public: 15 SkMipmapBuilder(const SkImageInfo&); 16 ~SkMipmapBuilder(); 17 18 int countLevels() const; 19 SkPixmap level(int index) const; 20 21 /** 22 * If these levels are compatible with src, return a new Image that combines src's base level 23 * with these levels as mip levels. If not compatible, this returns nullptr. 24 */ 25 sk_sp<SkImage> attachTo(const SkImage* src); 26 attachTo(sk_sp<SkImage> src)27 sk_sp<SkImage> attachTo(sk_sp<SkImage> src) { 28 return this->attachTo(src.get()); 29 } 30 31 private: 32 sk_sp<SkMipmap> fMM; 33 34 friend class SkImage; 35 }; 36 37 #endif 38