Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a927c591 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Do not call postDrawVk if did not call drawVk"

parents d832ebaf d25d1345
Loading
Loading
Loading
Loading
+1 −3
Original line number Original line Diff line number Diff line
@@ -142,10 +142,8 @@ void SkiaRecordingCanvas::callDrawGLFunction(Functor* functor,
void SkiaRecordingCanvas::drawWebViewFunctor(int functor) {
void SkiaRecordingCanvas::drawWebViewFunctor(int functor) {
    FunctorDrawable* functorDrawable;
    FunctorDrawable* functorDrawable;
    if (Properties::getRenderPipelineType() == RenderPipelineType::SkiaVulkan) {
    if (Properties::getRenderPipelineType() == RenderPipelineType::SkiaVulkan) {
        // TODO(cblume) use VkFunctorDrawable instead of VkInteropFunctorDrawable here when the
        // interop is disabled.
        functorDrawable =
        functorDrawable =
                mDisplayList->allocateDrawable<VkInteropFunctorDrawable>(functor, asSkCanvas());
                mDisplayList->allocateDrawable<VkFunctorDrawable>(functor, asSkCanvas());
    } else {
    } else {
        functorDrawable = mDisplayList->allocateDrawable<GLFunctorDrawable>(functor, asSkCanvas());
        functorDrawable = mDisplayList->allocateDrawable<GLFunctorDrawable>(functor, asSkCanvas());
    }
    }
+4 −1
Original line number Original line Diff line number Diff line
@@ -43,8 +43,10 @@ VkFunctorDrawHandler::VkFunctorDrawHandler(sp<WebViewFunctor::Handle> functor_ha
        , mImageInfo(image_info) {}
        , mImageInfo(image_info) {}


VkFunctorDrawHandler::~VkFunctorDrawHandler() {
VkFunctorDrawHandler::~VkFunctorDrawHandler() {
    if (mDrawn) {
        mFunctorHandle->postDrawVk();
        mFunctorHandle->postDrawVk();
    }
    }
}


void VkFunctorDrawHandler::draw(const GrBackendDrawableInfo& info) {
void VkFunctorDrawHandler::draw(const GrBackendDrawableInfo& info) {
    ATRACE_CALL();
    ATRACE_CALL();
@@ -77,6 +79,7 @@ void VkFunctorDrawHandler::draw(const GrBackendDrawableInfo& info) {
    params.format = vulkan_info.fFormat;
    params.format = vulkan_info.fFormat;


    mFunctorHandle->drawVk(params);
    mFunctorHandle->drawVk(params);
    mDrawn = true;


    vulkan_info.fDrawBounds->offset.x = mClip.fLeft;
    vulkan_info.fDrawBounds->offset.x = mClip.fLeft;
    vulkan_info.fDrawBounds->offset.y = mClip.fTop;
    vulkan_info.fDrawBounds->offset.y = mClip.fTop;
+2 −0
Original line number Original line Diff line number Diff line
@@ -44,6 +44,8 @@ private:
    const SkMatrix mMatrix;
    const SkMatrix mMatrix;
    const SkIRect mClip;
    const SkIRect mClip;
    const SkImageInfo mImageInfo;
    const SkImageInfo mImageInfo;

    bool mDrawn = false;
};
};


/**
/**
+0 −3
Original line number Original line Diff line number Diff line
@@ -177,9 +177,6 @@ int CreateFunctor(void* data, AwDrawFnFunctorCallbacks* functor_callbacks) {
        webview_functor_callbacks.vk.initialize = &initializeVk;
        webview_functor_callbacks.vk.initialize = &initializeVk;
        webview_functor_callbacks.vk.draw = &drawVk;
        webview_functor_callbacks.vk.draw = &drawVk;
        webview_functor_callbacks.vk.postDraw = &postDrawVk;
        webview_functor_callbacks.vk.postDraw = &postDrawVk;
        // TODO(boliu): Remove this once SkiaRecordingCanvas::drawWebViewFunctor
        // no longer uses GL interop.
        webview_functor_callbacks.gles.draw = &draw_gl;
        break;
        break;
    }
    }
    callbacks_initialized = true;
    callbacks_initialized = true;