1 /* 2 * Copyright 2023 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_graphite_Image_YUVA_Graphite_DEFINED 9 #define skgpu_graphite_Image_YUVA_Graphite_DEFINED 10 11 #include "src/gpu/graphite/Image_Base_Graphite.h" 12 #include "src/gpu/graphite/YUVATextureProxies.h" 13 14 namespace skgpu::graphite { 15 16 class Recorder; 17 18 class Image_YUVA final : public Image_Base { 19 public: 20 Image_YUVA(uint32_t uniqueID, 21 YUVATextureProxies proxies, 22 const SkColorInfo&); 23 ~Image_YUVA()24 ~Image_YUVA() override {} 25 isYUVA()26 bool isYUVA() const override { return true; } 27 onHasMipmaps()28 bool onHasMipmaps() const override { 29 // TODO: Add mipmap support 30 return false; 31 } 32 onReinterpretColorSpace(sk_sp<SkColorSpace>)33 sk_sp<SkImage> onReinterpretColorSpace(sk_sp<SkColorSpace>) const override { 34 return nullptr; 35 } 36 37 private: onMakeTextureImage(Recorder *,RequiredImageProperties)38 sk_sp<SkImage> onMakeTextureImage(Recorder*, RequiredImageProperties) const override { 39 return nullptr; 40 } 41 using Image_Base::onMakeSubset; onMakeSubset(const SkIRect &,Recorder *,RequiredImageProperties)42 sk_sp<SkImage> onMakeSubset(const SkIRect&, Recorder*, RequiredImageProperties) const override { 43 return nullptr; 44 } 45 using Image_Base::onMakeColorTypeAndColorSpace; onMakeColorTypeAndColorSpace(SkColorType targetCT,sk_sp<SkColorSpace> targetCS,Recorder *,RequiredImageProperties)46 sk_sp<SkImage> onMakeColorTypeAndColorSpace(SkColorType targetCT, 47 sk_sp<SkColorSpace> targetCS, 48 Recorder*, 49 RequiredImageProperties) const override { 50 return nullptr; 51 } 52 53 mutable YUVATextureProxies fYUVAProxies; 54 }; 55 56 } // namespace skgpu::graphite 57 58 #endif // skgpu_graphite_Image_YUVA_Graphite_DEFINED 59