Make asDirectContext public
External clients will eventually have to call this to get access
to a direct context from an SkCanvas or SkSurface (which will
only have 'recordingContext' accessors).
Bug: skia:10441
Change-Id: I10e34081277b685fa59d03e1fce1887f3524e0fa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/300178
Reviewed-by: Adlai Holler <adlai@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/GrAHardwareBufferImageGenerator.cpp b/src/gpu/GrAHardwareBufferImageGenerator.cpp
index 4bb2c91..7c45332 100644
--- a/src/gpu/GrAHardwareBufferImageGenerator.cpp
+++ b/src/gpu/GrAHardwareBufferImageGenerator.cpp
@@ -85,7 +85,7 @@
return {};
}
- auto direct = context->priv().asDirectContext();
+ auto direct = context->asDirectContext();
if (!direct) {
return {};
}
diff --git a/src/gpu/GrClipStackClip.cpp b/src/gpu/GrClipStackClip.cpp
index 5b96643..bc3f47c 100644
--- a/src/gpu/GrClipStackClip.cpp
+++ b/src/gpu/GrClipStackClip.cpp
@@ -471,7 +471,7 @@
SkIRect maskSpaceIBounds = SkIRect::MakeWH(reducedClip.width(), reducedClip.height());
SkTaskGroup* taskGroup = nullptr;
- if (auto direct = context->priv().asDirectContext()) {
+ if (auto direct = context->asDirectContext()) {
taskGroup = direct->priv().getTaskGroup();
}
diff --git a/src/gpu/GrContextPriv.h b/src/gpu/GrContextPriv.h
index 4789030..2abd037 100644
--- a/src/gpu/GrContextPriv.h
+++ b/src/gpu/GrContextPriv.h
@@ -40,7 +40,6 @@
GrImageContext* asImageContext() { return fContext->asImageContext(); }
GrRecordingContext* asRecordingContext() { return fContext->asRecordingContext(); }
- GrDirectContext* asDirectContext() { return fContext->asDirectContext(); }
// from GrImageContext
GrProxyProvider* proxyProvider() { return fContext->proxyProvider(); }
diff --git a/src/gpu/GrDrawingManager.cpp b/src/gpu/GrDrawingManager.cpp
index f14da9b..d273d56 100644
--- a/src/gpu/GrDrawingManager.cpp
+++ b/src/gpu/GrDrawingManager.cpp
@@ -214,7 +214,7 @@
}
}
- auto direct = fContext->priv().asDirectContext();
+ auto direct = fContext->asDirectContext();
if (!direct) {
if (info.fSubmittedProc) {
info.fSubmittedProc(info.fSubmittedContext, false);
@@ -384,7 +384,7 @@
return false;
}
- auto direct = fContext->priv().asDirectContext();
+ auto direct = fContext->asDirectContext();
if (!direct) {
return false; // Can't submit while DDL recording
}
@@ -540,7 +540,7 @@
SkASSERT(numProxies >= 0);
SkASSERT(!numProxies || proxies);
- auto direct = fContext->priv().asDirectContext();
+ auto direct = fContext->asDirectContext();
if (!direct) {
if (info.fSubmittedProc) {
info.fSubmittedProc(info.fSubmittedContext, false);
@@ -953,7 +953,7 @@
}
void GrDrawingManager::flushIfNecessary() {
- auto direct = fContext->priv().asDirectContext();
+ auto direct = fContext->asDirectContext();
if (!direct) {
return;
}
diff --git a/src/gpu/GrImageContextPriv.h b/src/gpu/GrImageContextPriv.h
index 50b7a62..ea7c740 100644
--- a/src/gpu/GrImageContextPriv.h
+++ b/src/gpu/GrImageContextPriv.h
@@ -27,7 +27,6 @@
GrImageContext* asImageContext() { return fContext->asImageContext(); }
GrRecordingContext* asRecordingContext() { return fContext->asRecordingContext(); }
- GrDirectContext* asDirectContext() { return fContext->asDirectContext(); }
// from GrImageContext
GrProxyProvider* proxyProvider() { return fContext->proxyProvider(); }
diff --git a/src/gpu/GrOnFlushResourceProvider.cpp b/src/gpu/GrOnFlushResourceProvider.cpp
index 538b0f4..f09acfa 100644
--- a/src/gpu/GrOnFlushResourceProvider.cpp
+++ b/src/gpu/GrOnFlushResourceProvider.cpp
@@ -90,7 +90,7 @@
SkASSERT(proxy->canSkipResourceAllocator());
// TODO: this class should probably just get a GrDirectContext
- auto direct = fDrawingMgr->getContext()->priv().asDirectContext();
+ auto direct = fDrawingMgr->getContext()->asDirectContext();
if (!direct) {
return false;
}
@@ -107,7 +107,7 @@
sk_sp<GrGpuBuffer> GrOnFlushResourceProvider::makeBuffer(GrGpuBufferType intendedType, size_t size,
const void* data) {
// TODO: this class should probably just get a GrDirectContext
- auto direct = fDrawingMgr->getContext()->priv().asDirectContext();
+ auto direct = fDrawingMgr->getContext()->asDirectContext();
if (!direct) {
return nullptr;
}
@@ -121,7 +121,7 @@
sk_sp<const GrGpuBuffer> GrOnFlushResourceProvider::findOrMakeStaticBuffer(
GrGpuBufferType intendedType, size_t size, const void* data, const GrUniqueKey& key) {
// TODO: class should probably just get a GrDirectContext
- auto direct = fDrawingMgr->getContext()->priv().asDirectContext();
+ auto direct = fDrawingMgr->getContext()->asDirectContext();
if (!direct) {
return nullptr;
}
diff --git a/src/gpu/GrPathRendererChain.cpp b/src/gpu/GrPathRendererChain.cpp
index 37610bb..4ae7bf7 100644
--- a/src/gpu/GrPathRendererChain.cpp
+++ b/src/gpu/GrPathRendererChain.cpp
@@ -63,7 +63,7 @@
fChain.push_back(std::move(spr));
}
if (options.fGpuPathRenderers & GpuPathRenderers::kStencilAndCover) {
- auto direct = context->priv().asDirectContext();
+ auto direct = context->asDirectContext();
if (direct) {
auto resourceProvider = direct->priv().resourceProvider();
diff --git a/src/gpu/GrProxyProvider.cpp b/src/gpu/GrProxyProvider.cpp
index 6e98c7b..776a9fc 100644
--- a/src/gpu/GrProxyProvider.cpp
+++ b/src/gpu/GrProxyProvider.cpp
@@ -58,7 +58,7 @@
#ifdef SK_DEBUG
{
- auto direct = fImageContext->priv().asDirectContext();
+ auto direct = fImageContext->asDirectContext();
if (direct) {
GrResourceCache* resourceCache = direct->priv().getResourceCache();
// If there is already a GrResource with this key then the caller has violated the
@@ -127,7 +127,7 @@
if (this->isAbandoned()) {
return nullptr;
}
- auto direct = fImageContext->priv().asDirectContext();
+ auto direct = fImageContext->asDirectContext();
if (!direct) {
return nullptr;
}
@@ -212,7 +212,7 @@
return result;
}
- auto direct = fImageContext->priv().asDirectContext();
+ auto direct = fImageContext->asDirectContext();
if (!direct) {
return nullptr;
}
@@ -296,7 +296,7 @@
return nullptr;
}
- auto direct = fImageContext->priv().asDirectContext();
+ auto direct = fImageContext->asDirectContext();
if (direct) {
GrResourceProvider* resourceProvider = direct->priv().resourceProvider();
@@ -474,7 +474,7 @@
return nullptr;
}
- auto direct = fImageContext->priv().asDirectContext();
+ auto direct = fImageContext->asDirectContext();
if (direct) {
GrResourceProvider* resourceProvider = direct->priv().resourceProvider();
// In order to reuse code we always create a lazy proxy. When we aren't in DDL mode however
@@ -498,7 +498,7 @@
}
// This is only supported on a direct GrContext.
- auto direct = fImageContext->priv().asDirectContext();
+ auto direct = fImageContext->asDirectContext();
if (!direct) {
return nullptr;
}
@@ -533,7 +533,7 @@
}
// This is only supported on a direct GrContext.
- auto direct = fImageContext->priv().asDirectContext();
+ auto direct = fImageContext->asDirectContext();
if (!direct) {
return nullptr;
}
@@ -569,7 +569,7 @@
}
// This is only supported on a direct GrContext.
- auto direct = fImageContext->priv().asDirectContext();
+ auto direct = fImageContext->asDirectContext();
if (!direct) {
return nullptr;
}
@@ -607,7 +607,7 @@
}
// This is only supported on a direct GrContext.
- auto direct = fImageContext->priv().asDirectContext();
+ auto direct = fImageContext->asDirectContext();
if (!direct) {
return nullptr;
}
@@ -638,7 +638,7 @@
}
// This is only supported on a direct GrContext.
- auto direct = fImageContext->priv().asDirectContext();
+ auto direct = fImageContext->asDirectContext();
if (!direct) {
return nullptr;
}
@@ -665,7 +665,7 @@
}
// This is only supported on a direct GrContext.
- auto direct = fImageContext->priv().asDirectContext();
+ auto direct = fImageContext->asDirectContext();
if (!direct) {
return nullptr;
}
@@ -845,7 +845,7 @@
// proxy's unique key. We must do it in this order because 'key' may alias the proxy's key.
sk_sp<GrGpuResource> invalidGpuResource;
if (InvalidateGPUResource::kYes == invalidateGPUResource) {
- auto direct = fImageContext->priv().asDirectContext();
+ auto direct = fImageContext->asDirectContext();
if (direct) {
GrResourceProvider* resourceProvider = direct->priv().resourceProvider();
invalidGpuResource = resourceProvider->findByUniqueKey<GrGpuResource>(key);
@@ -868,7 +868,7 @@
}
GrDDLProvider GrProxyProvider::isDDLProvider() const {
- return fImageContext->priv().asDirectContext() ? GrDDLProvider::kNo : GrDDLProvider::kYes;
+ return fImageContext->asDirectContext() ? GrDDLProvider::kNo : GrDDLProvider::kYes;
}
uint32_t GrProxyProvider::contextID() const {
@@ -906,5 +906,5 @@
}
bool GrProxyProvider::renderingDirectly() const {
- return fImageContext->priv().asDirectContext();
+ return fImageContext->asDirectContext();
}
diff --git a/src/gpu/GrRecordingContextPriv.h b/src/gpu/GrRecordingContextPriv.h
index f4c4487..9476202 100644
--- a/src/gpu/GrRecordingContextPriv.h
+++ b/src/gpu/GrRecordingContextPriv.h
@@ -28,7 +28,6 @@
GrImageContext* asImageContext() { return fContext->asImageContext(); }
GrRecordingContext* asRecordingContext() { return fContext->asRecordingContext(); }
- GrDirectContext* asDirectContext() { return fContext->asDirectContext(); }
// from GrImageContext
GrProxyProvider* proxyProvider() { return fContext->proxyProvider(); }
diff --git a/src/gpu/GrRenderTargetContext.cpp b/src/gpu/GrRenderTargetContext.cpp
index eab1436..acc8118 100644
--- a/src/gpu/GrRenderTargetContext.cpp
+++ b/src/gpu/GrRenderTargetContext.cpp
@@ -39,7 +39,6 @@
#include "src/gpu/GrMemoryPool.h"
#include "src/gpu/GrPathRenderer.h"
#include "src/gpu/GrProxyProvider.h"
-#include "src/gpu/GrRecordingContextPriv.h"
#include "src/gpu/GrRenderTarget.h"
#include "src/gpu/GrRenderTargetContextPriv.h"
#include "src/gpu/GrResourceProvider.h"
@@ -1712,7 +1711,7 @@
return false;
}
- auto direct = fContext->priv().asDirectContext();
+ auto direct = fContext->asDirectContext();
if (!direct) {
return false;
}
diff --git a/src/gpu/GrSoftwarePathRenderer.cpp b/src/gpu/GrSoftwarePathRenderer.cpp
index b79f3f2..0e479fe 100644
--- a/src/gpu/GrSoftwarePathRenderer.cpp
+++ b/src/gpu/GrSoftwarePathRenderer.cpp
@@ -328,7 +328,7 @@
GrAA aa = GrAA(GrAAType::kCoverage == args.fAAType);
SkTaskGroup* taskGroup = nullptr;
- if (auto direct = args.fContext->priv().asDirectContext()) {
+ if (auto direct = args.fContext->asDirectContext()) {
taskGroup = direct->priv().getTaskGroup();
}
diff --git a/src/gpu/GrSurfaceContext.cpp b/src/gpu/GrSurfaceContext.cpp
index c9dc239..eda6aec 100644
--- a/src/gpu/GrSurfaceContext.cpp
+++ b/src/gpu/GrSurfaceContext.cpp
@@ -138,7 +138,7 @@
SkDEBUGCODE(this->validate();)
GR_AUDIT_TRAIL_AUTO_FRAME(this->auditTrail(), "GrSurfaceContext::readPixels");
- if (!direct && !(direct = fContext->priv().asDirectContext())) {
+ if (!direct && !(direct = fContext->asDirectContext())) {
return false;
}
@@ -296,7 +296,7 @@
SkDEBUGCODE(this->validate();)
GR_AUDIT_TRAIL_AUTO_FRAME(this->auditTrail(), "GrSurfaceContext::writePixels");
- if (!direct && !(direct = fContext->priv().asDirectContext())) {
+ if (!direct && !(direct = fContext->asDirectContext())) {
return false;
}
@@ -483,7 +483,7 @@
SkFilterQuality rescaleQuality,
ReadPixelsCallback callback,
ReadPixelsContext context) {
- auto direct = fContext->priv().asDirectContext();
+ auto direct = fContext->asDirectContext();
// We implement this by rendering and we don't currently support rendering kUnpremul.
if (info.alphaType() == kUnpremul_SkAlphaType) {
@@ -667,7 +667,7 @@
return;
}
- auto directContext = fContext->priv().asDirectContext();
+ auto directContext = fContext->asDirectContext();
SkASSERT(directContext);
auto mappedBufferManager = directContext->priv().clientMappedBufferManager();
@@ -736,7 +736,7 @@
SkASSERT(!dstSize.isZero());
SkASSERT((dstSize.width() % 2 == 0) && (dstSize.height() % 2 == 0));
- auto direct = fContext->priv().asDirectContext();
+ auto direct = fContext->asDirectContext();
if (!direct) {
callback(context, nullptr);
return;
@@ -1170,7 +1170,7 @@
const SkIRect& rect) {
SkASSERT(rect.fLeft >= 0 && rect.fRight <= this->width());
SkASSERT(rect.fTop >= 0 && rect.fBottom <= this->height());
- auto direct = fContext->priv().asDirectContext();
+ auto direct = fContext->asDirectContext();
if (!direct) {
return {};
}
diff --git a/src/gpu/SkGpuDevice_drawTexture.cpp b/src/gpu/SkGpuDevice_drawTexture.cpp
index f68abf3..3f5a645 100644
--- a/src/gpu/SkGpuDevice_drawTexture.cpp
+++ b/src/gpu/SkGpuDevice_drawTexture.cpp
@@ -185,7 +185,7 @@
// and theoretically, the resource cache's limits could be being changed on another thread, so
// even having access to just the limit wouldn't be a reliable test during recording here.
// Instead, we will just upload the entire image to be on the safe side and not tile.
- if (!context->priv().asDirectContext()) {
+ if (!context->asDirectContext()) {
return false;
}