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