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

Commit 1dc5fba2 authored by Derek Sollenberger's avatar Derek Sollenberger Committed by Android (Google) Code Review
Browse files

Merge "Enable SkiaPipelines to interoperate with existing GlesDriver configs."

parents 0eca566f 7e044fef
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -36,6 +36,11 @@ std::unique_ptr<GlesDriver> GlesDriver::replace(std::unique_ptr<GlesDriver>&& dr
    return ret;
}

sk_sp<const GrGLInterface> GlesDriver::getSkiaInterface() {
    sk_sp<const GrGLInterface> skiaInterface(GrGLCreateNativeInterface());
    return skiaInterface;
}

} // namespace debug
} // namespace uirenderer
} // namespace android
+2 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@
#include <GLES3/gl31.h>
#include <GLES3/gl32.h>

#include <gl/GrGLInterface.h>
#include <memory>

namespace android {
@@ -39,6 +40,7 @@ namespace debug {
class GlesDriver {
public:
    virtual ~GlesDriver() {}
    virtual sk_sp<const GrGLInterface> getSkiaInterface();

#define GL_ENTRY(ret, api, ...) virtual ret api##_(__VA_ARGS__) = 0;
    #include "gles_decls.in"
+5 −0
Original line number Diff line number Diff line
@@ -20,6 +20,11 @@ namespace android {
namespace uirenderer {
namespace debug {

sk_sp<const GrGLInterface> NullGlesDriver::getSkiaInterface() {
    sk_sp<const GrGLInterface> skiaInterface(GrGLCreateNullInterface());
    return skiaInterface;
}

struct {
    GLboolean scissorEnabled;
} gState;
+2 −0
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ namespace debug {

class NullGlesDriver : public FatalBaseDriver {
public:
    virtual sk_sp<const GrGLInterface> getSkiaInterface() override;

    virtual void glGenBuffers_(GLsizei n, GLuint *buffers) override;
    virtual void glGenFramebuffers_(GLsizei n, GLuint *framebuffers) override;
    virtual void glGenRenderbuffers_(GLsizei n, GLuint *renderbuffers) override;
+9 −0
Original line number Diff line number Diff line
@@ -30,6 +30,10 @@
#include <gl/GrGLInterface.h>
#include <string>

#ifdef HWUI_GLES_WRAP_ENABLED
#include "debug/GlesDriver.h"
#endif

#define GLES_VERSION 2

// Android-specific addition that is used to show when frames began in systrace
@@ -131,7 +135,12 @@ void EglManager::initialize() {
    mRenderThread.renderState().onGLContextCreated();

    if (Properties::getRenderPipelineType() == RenderPipelineType::SkiaGL) {
#ifdef HWUI_GLES_WRAP_ENABLED
        debug::GlesDriver* driver = debug::GlesDriver::get();
        sk_sp<const GrGLInterface> glInterface(driver->getSkiaInterface());
#else
        sk_sp<const GrGLInterface> glInterface(GrGLCreateNativeInterface());
#endif
        LOG_ALWAYS_FATAL_IF(!glInterface.get());

        GrContextOptions options;