blob: 46918042b24c3783b7443a4b5cd2bdb5ace59c27 [file] [log] [blame]
/*
* Copyright 2021 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "experimental/graphite/src/Surface_Graphite.h"
#include "experimental/graphite/include/SkStuff.h"
#include "experimental/graphite/src/Device.h"
#include "experimental/graphite/src/Image_Graphite.h"
#include "experimental/graphite/src/Recorder.h"
namespace skgpu {
Surface_Graphite::Surface_Graphite(sk_sp<Device> device)
: SkSurface_Base(device->width(), device->height(), &device->surfaceProps())
, fDevice(std::move(device)) {
}
Surface_Graphite::~Surface_Graphite() {}
SkCanvas* Surface_Graphite::onNewCanvas() { return new SkCanvas(fDevice); }
sk_sp<SkSurface> Surface_Graphite::onNewSurface(const SkImageInfo& ii) {
return MakeGraphite(fDevice->refRecorder(), ii);
}
sk_sp<SkImage> Surface_Graphite::onNewImageSnapshot(const SkIRect* subset) {
SkImageInfo ii = subset ? this->imageInfo().makeDimensions(subset->size())
: this->imageInfo();
return sk_sp<Image_Graphite>(new Image_Graphite(ii));
}
void Surface_Graphite::onWritePixels(const SkPixmap&, int x, int y) {}
bool Surface_Graphite::onCopyOnWrite(ContentChangeMode) { return true; }
} // namespace skgpu