diff options
author | Robert Phillips <robertphillips@google.com> | 2017-11-30 11:22:14 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-11-30 17:10:38 +0000 |
commit | 61e51012ee150e12f953bc4225fbdbdc1564007d (patch) | |
tree | b5ba2b7055c5f649df7774527f3cae5704fcadea /src/image/SkSurface_Gpu.cpp | |
parent | f3c1f099de2d0baa174874e3fa51739a160e835c (diff) |
Flesh out SkSurfaceCharacterization
This should be it for now except for maybe a GrMipMapped field.
Change-Id: I8f20a1048eaa8cd2b5eab5f42ca58c61649f72e7
Reviewed-on: https://skia-review.googlesource.com/78440
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/image/SkSurface_Gpu.cpp')
-rw-r--r-- | src/image/SkSurface_Gpu.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/image/SkSurface_Gpu.cpp b/src/image/SkSurface_Gpu.cpp index 3d19762cd4..605f229023 100644 --- a/src/image/SkSurface_Gpu.cpp +++ b/src/image/SkSurface_Gpu.cpp @@ -164,8 +164,9 @@ bool SkSurface_Gpu::onCharacterize(SkSurfaceCharacterization* data) const { GrRenderTargetContext* rtc = fDevice->accessRenderTargetContext(); GrContext* ctx = fDevice->context(); - data->set(rtc->origin(), rtc->width(), rtc->height(), rtc->colorSpaceInfo().config(), - rtc->numColorSamples(), ctx->threadSafeProxy()); + data->set(ctx->threadSafeProxy(), rtc->origin(), rtc->width(), rtc->height(), + rtc->colorSpaceInfo().config(), rtc->numColorSamples(), + rtc->colorSpaceInfo().refColorSpace(), this->props()); return true; } @@ -174,10 +175,12 @@ bool SkSurface_Gpu::isCompatible(const SkSurfaceCharacterization& data) const { GrRenderTargetContext* rtc = fDevice->accessRenderTargetContext(); GrContext* ctx = fDevice->context(); - return data.origin() == rtc->origin() && data.width() == rtc->width() && + return data.contextInfo() && data.contextInfo()->matches(ctx) && + data.origin() == rtc->origin() && data.width() == rtc->width() && data.height() == rtc->height() && data.config() == rtc->colorSpaceInfo().config() && data.sampleCount() == rtc->numColorSamples() && - data.contextInfo() && data.contextInfo()->matches(ctx); + SkColorSpace::Equals(data.colorSpace(), rtc->colorSpaceInfo().colorSpace()) && + data.surfaceProps() == rtc->surfaceProps(); } void SkSurface_Gpu::onDraw(SkDeferredDisplayList* dl) { |