1 /* 2 * Copyright 2021 Google LLC 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 skgpu_Image_Graphite_DEFINED 9 #define skgpu_Image_Graphite_DEFINED 10 11 #include "src/image/SkImage_Base.h" 12 13 #include "experimental/graphite/src/TextureProxyView.h" 14 15 namespace skgpu { 16 17 class Image_Graphite final : public SkImage_Base { 18 public: 19 Image_Graphite(const SkImageInfo&); 20 ~Image_Graphite() override; 21 onReadPixels(GrDirectContext *,const SkImageInfo & dstInfo,void * dstPixels,size_t dstRowBytes,int srcX,int srcY,CachingHint)22 bool onReadPixels(GrDirectContext*, 23 const SkImageInfo& dstInfo, 24 void* dstPixels, 25 size_t dstRowBytes, 26 int srcX, 27 int srcY, 28 CachingHint) const override { return false; } 29 onHasMipmaps()30 bool onHasMipmaps() const override { return false; } 31 32 bool getROPixels(GrDirectContext*, 33 SkBitmap*, 34 CachingHint = kAllow_CachingHint) const override { return false; } 35 onMakeSubset(const SkIRect &,GrDirectContext *)36 sk_sp<SkImage> onMakeSubset(const SkIRect&, GrDirectContext*) const override { 37 return nullptr; 38 } 39 onIsValid(GrRecordingContext *)40 bool onIsValid(GrRecordingContext*) const override { return true; } 41 onMakeColorTypeAndColorSpace(SkColorType,sk_sp<SkColorSpace>,GrDirectContext *)42 sk_sp<SkImage> onMakeColorTypeAndColorSpace(SkColorType, 43 sk_sp<SkColorSpace>, 44 GrDirectContext*) const override { 45 return nullptr; 46 } 47 onReinterpretColorSpace(sk_sp<SkColorSpace>)48 sk_sp<SkImage> onReinterpretColorSpace(sk_sp<SkColorSpace>) const override { 49 return nullptr; 50 } 51 52 protected: 53 54 private: 55 #if SK_SUPPORT_GPU onAsView(GrRecordingContext *,GrMipmapped,GrImageTexGenPolicy policy)56 std::tuple<GrSurfaceProxyView, GrColorType> onAsView( 57 GrRecordingContext*, 58 GrMipmapped, 59 GrImageTexGenPolicy policy) const override { 60 return {}; 61 } 62 63 std::unique_ptr<GrFragmentProcessor> onAsFragmentProcessor( 64 GrRecordingContext*, 65 SkSamplingOptions, 66 const SkTileMode[2], 67 const SkMatrix&, 68 const SkRect* subset, 69 const SkRect* domain) const override; 70 onAsView(Recorder *,Mipmapped)71 std::tuple<TextureProxyView, SkColorType> onAsView( 72 Recorder*, 73 Mipmapped) const /*override*/ { 74 return {}; 75 } 76 #endif 77 78 }; 79 80 } // namespace skgpu 81 82 #endif // skgpu_Image_Graphite_DEFINED 83