Start retracting GrSurfaceDrawContext
The NGA probably won't have a GrSurfaceDrawContext. The endgame here is to have both SkSurface_Gpu and GrVkSecondaryCBDrawContext hold a SkBaseGpuDevice.
Change-Id: I4b90d7832d28f872a9417f766e441fc15460be90
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409399
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/SkBaseGpuDevice.h b/src/gpu/SkBaseGpuDevice.h
index ca55bda..aa385fa 100644
--- a/src/gpu/SkBaseGpuDevice.h
+++ b/src/gpu/SkBaseGpuDevice.h
@@ -8,6 +8,8 @@
#ifndef SkBaseGpuDevice_DEFINED
#define SkBaseGpuDevice_DEFINED
+#include "src/gpu/GrSurfaceProxyView.h"
+
// NOTE: when not defined, SkGpuDevice extends SkBaseDevice directly and manages its clip stack
// using GrClipStack. When false, SkGpuDevice continues to extend SkClipStackDevice and uses
// SkClipStack and GrClipStackClip to manage the clip stack.
@@ -26,6 +28,8 @@
#define BASE_DEVICE SkClipStackDevice
#endif
+class GrImageInfo;
+
class SkBaseGpuDevice : public BASE_DEVICE {
public:
SkBaseGpuDevice(const SkImageInfo& ii, const SkSurfaceProps& props)
@@ -33,6 +37,11 @@
}
// TODO: SkGpuDevice/SkGpuDevice_nga shared stuff goes here
+ virtual GrSurfaceProxyView readSurfaceView() = 0;
+ GrRenderTargetProxy* targetProxy() {
+ return this->readSurfaceView().asRenderTargetProxy();
+ }
+ virtual GrImageInfo grImageInfo() const = 0;
protected: