aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl/GrGLCaps.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/gl/GrGLCaps.h')
-rw-r--r--src/gpu/gl/GrGLCaps.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/gpu/gl/GrGLCaps.h b/src/gpu/gl/GrGLCaps.h
index 1ce6094a6b..68cbc9bf16 100644
--- a/src/gpu/gl/GrGLCaps.h
+++ b/src/gpu/gl/GrGLCaps.h
@@ -125,6 +125,15 @@ public:
return SkToBool(fConfigTable[config].fFlags & ConfigInfo::kRenderable_Flag);
}
}
+
+ bool isConfigCopyable(GrPixelConfig config) const override {
+ // In GL we have three ways to be able to copy. CopyTexImage, blit, and draw. CopyTexImage
+ // requires the src to be an FBO attachment, blit requires both src and dst to be FBO
+ // attachments, and draw requires the dst to be an FBO attachment. Thus to copy from and to
+ // the same config, we need that config to be renderable so we can attach it to an FBO.
+ return this->isConfigRenderable(config, false);
+ }
+
bool canConfigBeImageStorage(GrPixelConfig config) const override {
return SkToBool(fConfigTable[config].fFlags & ConfigInfo::kCanUseAsImageStorage_Flag);
}