• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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