surfaceflinger: add RenderEngine::mEGLDisplay
It does not make much sense to have EGLConfig/EGLContext but not
EGLDisplay in RenderEngine. We also need this as we move forward on
making EGL an implementation detail of RenderEngine.
Test: SurfaceFlinger_test
Change-Id: I9e2c9b9817e2c2a9b2555ea575be6dcd91927b79
diff --git a/services/surfaceflinger/RenderEngine/RenderEngine.cpp b/services/surfaceflinger/RenderEngine/RenderEngine.cpp
index 2dd4135..5b6ff42 100644
--- a/services/surfaceflinger/RenderEngine/RenderEngine.cpp
+++ b/services/surfaceflinger/RenderEngine/RenderEngine.cpp
@@ -139,7 +139,7 @@
engine = std::make_unique<GLES20RenderEngine>(featureFlags);
break;
}
- engine->setEGLHandles(config, ctxt);
+ engine->setEGLHandles(display, config, ctxt);
ALOGI("OpenGL ES informations:");
ALOGI("vendor : %s", extensions.getVendor());
@@ -155,18 +155,24 @@
return engine;
}
-RenderEngine::RenderEngine() : mEGLConfig(NULL), mEGLContext(EGL_NO_CONTEXT) {
+RenderEngine::RenderEngine() : mEGLDisplay(EGL_NO_DISPLAY), mEGLConfig(NULL),
+ mEGLContext(EGL_NO_CONTEXT) {
}
RenderEngine::~RenderEngine() {
}
-void RenderEngine::setEGLHandles(EGLConfig config, EGLContext ctxt) {
+void RenderEngine::setEGLHandles(EGLDisplay display, EGLConfig config, EGLContext ctxt) {
+ mEGLDisplay = display;
mEGLConfig = config;
mEGLContext = ctxt;
}
-EGLContext RenderEngine::getEGLConfig() const {
+EGLDisplay RenderEngine::getEGLDisplay() const {
+ return mEGLDisplay;
+}
+
+EGLConfig RenderEngine::getEGLConfig() const {
return mEGLConfig;
}
diff --git a/services/surfaceflinger/RenderEngine/RenderEngine.h b/services/surfaceflinger/RenderEngine/RenderEngine.h
index f8e8aaa..b4839be 100644
--- a/services/surfaceflinger/RenderEngine/RenderEngine.h
+++ b/services/surfaceflinger/RenderEngine/RenderEngine.h
@@ -50,9 +50,10 @@
};
static GlesVersion parseGlesVersion(const char* str);
+ EGLDisplay mEGLDisplay;
EGLConfig mEGLConfig;
EGLContext mEGLContext;
- void setEGLHandles(EGLConfig config, EGLContext ctxt);
+ void setEGLHandles(EGLDisplay display, EGLConfig config, EGLContext ctxt);
virtual void bindImageAsFramebuffer(EGLImageKHR image, uint32_t* texName, uint32_t* fbName, uint32_t* status) = 0;
virtual void unbindFramebuffer(uint32_t texName, uint32_t fbName) = 0;
@@ -127,6 +128,7 @@
virtual size_t getMaxTextureSize() const = 0;
virtual size_t getMaxViewportDims() const = 0;
+ EGLDisplay getEGLDisplay() const;
EGLConfig getEGLConfig() const;
EGLContext getEGLContext() const;
};