28 for (
const auto&
device : other->fLinkedDevices) {
38 fLinkedDevices.push_back(std::move(
device));
49 if (!fLinkedDevices.empty()) {
58 if (
device->recorder() == recorder) {
59 device->flushPendingWorkToRecorder();
69 if (emptyCount == fLinkedDevices.size()) {
70 fLinkedDevices.clear();
78 if (!fLinkedDevices.empty()) {
85 if (emptyCount == fLinkedDevices.size()) {
86 fLinkedDevices.clear();
91 return emptyCount > 0;
128 budgeted, mipmapped, backingFit);
136 if (this->
bounds() == subset &&
137 (!requiredProps.
fMipmapped || this->hasMipmaps()) &&
138 !this->isDynamic()) {
147 requiredProps.
fMipmapped ? Mipmapped::kYes : Mipmapped::kNo,
169 requiredProps.
fMipmapped ? Mipmapped::kYes : Mipmapped::kNo,
176 SKGPU_LOG_W(
"Cannot convert Graphite-backed image to Ganesh");
183 SKGPU_LOG_W(
"Cannot convert Graphite-backed image to Ganesh");
193 SKGPU_LOG_W(
"Cannot use Ganesh async API with Graphite-backed image, use API on Context");
206 SKGPU_LOG_W(
"Cannot use Ganesh async API with Graphite-backed image, use API on Context");
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
#define SKGPU_LOG_W(fmt,...)
@ kPremul_SkAlphaType
pixel components are premultiplied by alpha
sk_sp< T > sk_ref_sp(T *obj)
SkColorInfo makeAlphaType(SkAlphaType newAlphaType) const
virtual GrImageContext * context() const
const SkImageInfo & imageInfo() const
SkAlphaType alphaType() const
void(ReadPixelsContext, std::unique_ptr< const AsyncReadResult >) ReadPixelsCallback
Image_Base(const SkImageInfo &info, uint32_t uniqueID)
void linkDevice(sk_sp< Device >)
void onAsyncRescaleAndReadPixels(const SkImageInfo &, SkIRect srcRect, RescaleGamma, RescaleMode, ReadPixelsCallback, ReadPixelsContext) const override
virtual sk_sp< Image > copyImage(Recorder *, const SkIRect &subset, Budgeted, Mipmapped, SkBackingFit) const
sk_sp< SkImage > onMakeSubset(Recorder *, const SkIRect &, RequiredProperties) const override
sk_sp< SkImage > makeColorTypeAndColorSpace(Recorder *, SkColorType targetCT, sk_sp< SkColorSpace > targetCS, RequiredProperties) const override
void notifyInUse(Recorder *) const
sk_sp< SkImage > onMakeColorTypeAndColorSpace(SkColorType, sk_sp< SkColorSpace >, GrDirectContext *) const override
static sk_sp< Image > CopyAsDraw(Recorder *, const Image_Base *, const SkIRect &subset, const SkColorInfo &dstColorInfo, Budgeted, Mipmapped, SkBackingFit)
void linkDevices(const Image_Base *)
void onAsyncRescaleAndReadPixelsYUV420(SkYUVColorSpace, bool readAlpha, sk_sp< SkColorSpace >, SkIRect srcRect, SkISize dstSize, RescaleGamma, RescaleMode, ReadPixelsCallback, ReadPixelsContext) const override
static sk_sp< Surface > MakeScratch(Recorder *recorder, const SkImageInfo &info, Budgeted budgeted=Budgeted::kYes, Mipmapped mipmapped=Mipmapped::kNo, SkBackingFit backingFit=SkBackingFit::kApprox)
FlKeyEvent uint64_t FlKeyResponderAsyncCallback callback
constexpr int32_t top() const
constexpr SkISize size() const
constexpr int32_t left() const
static SkImageInfo Make(int width, int height, SkColorType ct, SkAlphaType at)