Merge "Migrate from SkCanvas::getGrContext to SkCanvas::recordingContext"
This commit is contained in:
@@ -56,7 +56,8 @@ static void GetFboDetails(SkCanvas* canvas, GLuint* outFboID, SkISize* outFboSiz
|
||||
}
|
||||
|
||||
void GLFunctorDrawable::onDraw(SkCanvas* canvas) {
|
||||
if (canvas->getGrContext() == nullptr) {
|
||||
GrDirectContext* directContext = GrAsDirectContext(canvas->recordingContext());
|
||||
if (directContext == nullptr) {
|
||||
// We're dumping a picture, render a light-blue rectangle instead
|
||||
// TODO: Draw the WebView text on top? Seemingly complicated as SkPaint doesn't
|
||||
// seem to have a default typeface that works. We only ever use drawGlyphs, which
|
||||
@@ -87,7 +88,7 @@ void GLFunctorDrawable::onDraw(SkCanvas* canvas) {
|
||||
SkImageInfo surfaceInfo =
|
||||
canvas->imageInfo().makeWH(clipBounds.width(), clipBounds.height());
|
||||
tmpSurface =
|
||||
SkSurface::MakeRenderTarget(canvas->getGrContext(), SkBudgeted::kYes, surfaceInfo);
|
||||
SkSurface::MakeRenderTarget(directContext, SkBudgeted::kYes, surfaceInfo);
|
||||
tmpSurface->getCanvas()->clear(SK_ColorTRANSPARENT);
|
||||
|
||||
GrGLFramebufferInfo fboInfo;
|
||||
@@ -141,7 +142,7 @@ void GLFunctorDrawable::onDraw(SkCanvas* canvas) {
|
||||
|
||||
// notify Skia that we just updated the FBO and stencil
|
||||
const uint32_t grState = kStencil_GrGLBackendState | kRenderTarget_GrGLBackendState;
|
||||
canvas->getGrContext()->resetContext(grState);
|
||||
directContext->resetContext(grState);
|
||||
|
||||
SkCanvas* tmpCanvas = canvas;
|
||||
if (tmpSurface) {
|
||||
@@ -188,7 +189,7 @@ void GLFunctorDrawable::onDraw(SkCanvas* canvas) {
|
||||
glClear(GL_STENCIL_BUFFER_BIT);
|
||||
}
|
||||
|
||||
canvas->getGrContext()->resetContext();
|
||||
directContext->resetContext();
|
||||
|
||||
// if there were unclipped save layers involved we draw our offscreen surface to the canvas
|
||||
if (tmpSurface) {
|
||||
|
||||
@@ -86,7 +86,7 @@ void SkiaPipeline::renderLayers(const LightGeometry& lightGeometry,
|
||||
}
|
||||
|
||||
void SkiaPipeline::renderLayersImpl(const LayerUpdateQueue& layers, bool opaque) {
|
||||
sk_sp<GrContext> cachedContext;
|
||||
sk_sp<GrDirectContext> cachedContext;
|
||||
|
||||
// Render all layers that need to be updated, in order.
|
||||
for (size_t i = 0; i < layers.entries().size(); i++) {
|
||||
@@ -142,7 +142,8 @@ void SkiaPipeline::renderLayersImpl(const LayerUpdateQueue& layers, bool opaque)
|
||||
|
||||
// cache the current context so that we can defer flushing it until
|
||||
// either all the layers have been rendered or the context changes
|
||||
GrContext* currentContext = layerNode->getLayerSurface()->getCanvas()->getGrContext();
|
||||
GrDirectContext* currentContext =
|
||||
GrAsDirectContext(layerNode->getLayerSurface()->getCanvas()->recordingContext());
|
||||
if (cachedContext.get() != currentContext) {
|
||||
if (cachedContext.get()) {
|
||||
ATRACE_NAME("flush layers (context changed)");
|
||||
@@ -201,7 +202,7 @@ bool SkiaPipeline::createOrUpdateLayer(RenderNode* node, const DamageAccumulator
|
||||
}
|
||||
|
||||
void SkiaPipeline::prepareToDraw(const RenderThread& thread, Bitmap* bitmap) {
|
||||
GrContext* context = thread.getGrContext();
|
||||
GrDirectContext* context = thread.getGrContext();
|
||||
if (context) {
|
||||
ATRACE_FORMAT("Bitmap#prepareToDraw %dx%d", bitmap->width(), bitmap->height());
|
||||
auto image = bitmap->makeImage();
|
||||
|
||||
@@ -96,7 +96,7 @@ void VkFunctorDrawable::onDraw(SkCanvas* canvas) {
|
||||
// "VkFunctorDrawable::onDraw" is not invoked for the most common case, when drawing in a GPU
|
||||
// canvas.
|
||||
|
||||
if (canvas->getGrContext() == nullptr) {
|
||||
if (canvas->recordingContext() == nullptr) {
|
||||
// We're dumping a picture, render a light-blue rectangle instead
|
||||
SkPaint paint;
|
||||
paint.setColor(0xFF81D4FA);
|
||||
|
||||
@@ -67,7 +67,7 @@ void VkInteropFunctorDrawable::vkInvokeFunctor(Functor* functor) {
|
||||
void VkInteropFunctorDrawable::onDraw(SkCanvas* canvas) {
|
||||
ATRACE_CALL();
|
||||
|
||||
if (canvas->getGrContext() == nullptr) {
|
||||
if (canvas->recordingContext() == nullptr) {
|
||||
SkDEBUGF(("Attempting to draw VkInteropFunctor into an unsupported surface"));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ public:
|
||||
* If Properties::isSkiaEnabled() is true then this will return the Skia
|
||||
* grContext associated with the current RenderPipeline.
|
||||
*/
|
||||
GrContext* getGrContext() const { return mRenderThread.getGrContext(); }
|
||||
GrDirectContext* getGrContext() const { return mRenderThread.getGrContext(); }
|
||||
|
||||
// Won't take effect until next EGLSurface creation
|
||||
void setSwapBehavior(SwapBehavior swapBehavior);
|
||||
|
||||
Reference in New Issue
Block a user