aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/image/SkSurface_Gpu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/image/SkSurface_Gpu.cpp')
-rw-r--r--src/image/SkSurface_Gpu.cpp11
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) {