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

Commit ed4680ec authored by Adlai Holler's avatar Adlai Holler Committed by Android (Google) Code Review
Browse files

Merge "Migrate from GrContext to GrDirectContext"

parents 6f7648c9 f8c434eb
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -25,7 +25,8 @@ using namespace android::uirenderer::renderthread;
namespace android {
namespace uirenderer {

AutoBackendTextureRelease::AutoBackendTextureRelease(GrContext* context, AHardwareBuffer* buffer) {
AutoBackendTextureRelease::AutoBackendTextureRelease(GrDirectContext* context,
                                                     AHardwareBuffer* buffer) {
    AHardwareBuffer_Desc desc;
    AHardwareBuffer_describe(buffer, &desc);
    bool createProtectedImage = 0 != (desc.usage & AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT);
@@ -67,8 +68,9 @@ static void releaseProc(SkImage::ReleaseContext releaseContext) {
    textureRelease->unref(false);
}

void AutoBackendTextureRelease::makeImage(AHardwareBuffer* buffer, android_dataspace dataspace,
                                          GrContext* context) {
void AutoBackendTextureRelease::makeImage(AHardwareBuffer* buffer,
                                          android_dataspace dataspace,
                                          GrDirectContext* context) {
    AHardwareBuffer_Desc desc;
    AHardwareBuffer_describe(buffer, &desc);
    SkColorType colorType = GrAHardwareBufferUtils::GetSkColorTypeFromBufferFormat(desc.format);
@@ -81,7 +83,7 @@ void AutoBackendTextureRelease::makeImage(AHardwareBuffer* buffer, android_datas
    }
}

void AutoBackendTextureRelease::newBufferContent(GrContext* context) {
void AutoBackendTextureRelease::newBufferContent(GrDirectContext* context) {
    if (mBackendTexture.isValid()) {
        mUpdateProc(mImageCtx, context);
    }
+6 −3
Original line number Diff line number Diff line
@@ -31,7 +31,8 @@ namespace uirenderer {
 */
class AutoBackendTextureRelease final {
public:
    AutoBackendTextureRelease(GrContext* context, AHardwareBuffer* buffer);
    AutoBackendTextureRelease(GrDirectContext* context,
                              AHardwareBuffer* buffer);

    const GrBackendTexture& getTexture() const { return mBackendTexture; }

@@ -42,9 +43,11 @@ public:

    inline sk_sp<SkImage> getImage() const { return mImage; }

    void makeImage(AHardwareBuffer* buffer, android_dataspace dataspace, GrContext* context);
    void makeImage(AHardwareBuffer* buffer,
                   android_dataspace dataspace,
                   GrDirectContext* context);

    void newBufferContent(GrContext* context);
    void newBufferContent(GrDirectContext* context);

private:
    // The only way to invoke dtor is with unref, when mUsageCount is 0.
+1 −1
Original line number Diff line number Diff line
@@ -189,7 +189,7 @@ void DeferredLayerUpdater::detachSurfaceTexture() {
sk_sp<SkImage> DeferredLayerUpdater::ImageSlot::createIfNeeded(AHardwareBuffer* buffer,
                                                               android_dataspace dataspace,
                                                               bool forceCreate,
                                                               GrContext* context) {
                                                               GrDirectContext* context) {
    if (!mTextureRelease || !mTextureRelease->getImage().get() || dataspace != mDataspace ||
        forceCreate || mBuffer != buffer) {
        if (buffer != mBuffer) {
+1 −1
Original line number Diff line number Diff line
@@ -106,7 +106,7 @@ private:
        ~ImageSlot() { clear(); }

        sk_sp<SkImage> createIfNeeded(AHardwareBuffer* buffer, android_dataspace dataspace,
                                      bool forceCreate, GrContext* context);
                                      bool forceCreate, GrDirectContext* context);

    private:
        void clear();
+2 −2
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include <GLES3/gl3.h>
#include <GrContext.h>
#include <GrDirectContext.h>
#include <SkCanvas.h>
#include <SkImage.h>
#include <utils/GLUtils.h>
@@ -285,7 +285,7 @@ private:
        return (image.get() != nullptr);
    }

    sk_sp<GrContext> mGrContext;
    sk_sp<GrDirectContext> mGrContext;
    renderthread::VulkanManager mVulkanManager;
    std::mutex mVkLock;
};
Loading