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

Commit 660d6eca authored by Greg Daniel's avatar Greg Daniel
Browse files

Update GrContext creation calls to use sk_sp

Test: manual testing

Change-Id: I68d8706ffa7bc7c6622ea0b8c45d7297a131f6bf
parent 23627fbf
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -45,8 +45,7 @@ CopyResult SkiaOpenGLReadback::copyImageInto(EGLImageKHR eglImage, const Matrix4
    if (Properties::getRenderPipelineType() == RenderPipelineType::SkiaVulkan) {
        sk_sp<const GrGLInterface> glInterface(GrGLCreateNativeInterface());
        LOG_ALWAYS_FATAL_IF(!glInterface.get());
        grContext.reset(GrContext::Create(GrBackend::kOpenGL_GrBackend,
                                          (GrBackendContext)glInterface.get()));
        grContext = GrContext::MakeGL(std::move(glInterface));
    } else {
        grContext->resetContext();
    }
+3 −3
Original line number Diff line number Diff line
@@ -53,13 +53,13 @@ CacheManager::CacheManager(const DisplayInfo& display) : mMaxSurfaceArea(display
    }
}

void CacheManager::reset(GrContext* context) {
    if (context != mGrContext.get()) {
void CacheManager::reset(sk_sp<GrContext> context) {
    if (context != mGrContext) {
        destroy();
    }

    if (context) {
        mGrContext = sk_ref_sp(context);
        mGrContext = std::move(context);
        mGrContext->getResourceCacheLimits(&mMaxResources, nullptr);
        updateContextCacheSizes();
    }
+1 −1
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ private:

    CacheManager(const DisplayInfo& display);

    void reset(GrContext* grContext);
    void reset(sk_sp<GrContext> grContext);
    void destroy();
    void updateContextCacheSizes();

+3 −2
Original line number Diff line number Diff line
@@ -141,8 +141,9 @@ void EglManager::initialize() {
        GrContextOptions options;
        options.fDisableDistanceFieldPaths = true;
        mRenderThread.cacheManager().configureContext(&options);
        mRenderThread.setGrContext(GrContext::Create(GrBackend::kOpenGL_GrBackend,
                                                     (GrBackendContext)glInterface.get(), options));
        sk_sp<GrContext> grContext(GrContext::MakeGL(std::move(glInterface), options));
        LOG_ALWAYS_FATAL_IF(!grContext.get());
        mRenderThread.setGrContext(grContext);
    }
}

+3 −3
Original line number Diff line number Diff line
@@ -173,12 +173,12 @@ Readback& RenderThread::readback() {
    return *mReadback;
}

void RenderThread::setGrContext(GrContext* context) {
void RenderThread::setGrContext(sk_sp<GrContext> context) {
    mCacheManager->reset(context);
    if (mGrContext.get()) {
    if (mGrContext) {
        mGrContext->releaseResourcesAndAbandonContext();
    }
    mGrContext.reset(context);
    mGrContext = std::move(context);
}

int RenderThread::displayEventReceiverCallback(int fd, int events, void* data) {
Loading