summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2023-04-24 09:47:09 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2023-07-06 11:40:08 +0200
commit09ab9ab74efcd0da0a310c992629bc650a5a80ec (patch)
tree2c7e5ceb7780802cfa86ae32ba74a95e84db0649 /src
parent00783b4f988c97ac1af59981d168704629f92610 (diff)
Make compatible with Chromium EGL
Pick-to: 6.6 Change-Id: I3ee4d2f9940966f5a050cce3d9d6d3d415a13901 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'src')
-rw-r--r--src/core/ozone/gl_ozone_egl_qt.cpp27
-rw-r--r--src/core/ozone/gl_surface_egl_qt.cpp79
2 files changed, 7 insertions, 99 deletions
diff --git a/src/core/ozone/gl_ozone_egl_qt.cpp b/src/core/ozone/gl_ozone_egl_qt.cpp
index 5e2540af8..287f07713 100644
--- a/src/core/ozone/gl_ozone_egl_qt.cpp
+++ b/src/core/ozone/gl_ozone_egl_qt.cpp
@@ -25,35 +25,22 @@
namespace ui {
-bool GLOzoneEGLQt::LoadGLES2Bindings(const gl::GLImplementationParts & /*implementation*/)
+bool LoadQtEGLBindings()
{
- base::NativeLibrary eglgles2Library = dlopen(NULL, RTLD_LAZY);
- if (!eglgles2Library) {
- LOG(ERROR) << "Failed to open EGL/GLES2 context " << dlerror();
- return false;
- }
-
- gl::GLGetProcAddressProc get_proc_address =
- reinterpret_cast<gl::GLGetProcAddressProc>(
- base::GetFunctionPointerFromNativeLibrary(eglgles2Library,
- "eglGetProcAddress"));
- if (!get_proc_address) {
- // QTBUG-63341 most likely libgles2 not linked with libegl -> fallback to qpa
- get_proc_address =
- reinterpret_cast<gl::GLGetProcAddressProc>(GLContextHelper::getEglGetProcAddress());
- }
-
+ gl::GLGetProcAddressProc get_proc_address = reinterpret_cast<gl::GLGetProcAddressProc>(GLContextHelper::getEglGetProcAddress());
if (!get_proc_address) {
LOG(ERROR) << "eglGetProcAddress not found.";
- base::UnloadNativeLibrary(eglgles2Library);
return false;
}
-
gl::SetGLGetProcAddressProc(get_proc_address);
- gl::AddGLNativeLibrary(eglgles2Library);
return true;
}
+bool GLOzoneEGLQt::LoadGLES2Bindings(const gl::GLImplementationParts & /*implementation*/)
+{
+ return LoadQtEGLBindings();
+}
+
gl::GLDisplay *GLOzoneEGLQt::InitializeGLOneOffPlatform(uint64_t system_device_id)
{
if (auto display = gl::GLSurfaceEGLQt::InitializeOneOff(system_device_id)) {
diff --git a/src/core/ozone/gl_surface_egl_qt.cpp b/src/core/ozone/gl_surface_egl_qt.cpp
index b83f8f506..63694d59d 100644
--- a/src/core/ozone/gl_surface_egl_qt.cpp
+++ b/src/core/ozone/gl_surface_egl_qt.cpp
@@ -21,75 +21,6 @@ using ui::GetLastEGLErrorString;
namespace gl {
-bool GLDisplayEGL::InitializeExtensionSettings()
-{
- if (display_ == EGL_NO_DISPLAY)
- return false;
- ext->UpdateConditionalExtensionSettings(display_);
- return true;
-}
-
-GLDisplayEGL *GLDisplayEGL::GetDisplayForCurrentContext()
-{
- GLContext *context = GLContext::GetCurrent();
- return context ? context->GetGLDisplayEGL() : nullptr;
-}
-
-bool GLDisplayEGL::IsEGLSurfacelessContextSupported()
-{
- return GLSurfaceEGLQt::g_egl_surfaceless_context_supported;
-}
-
-bool GLDisplayEGL::IsEGLContextPrioritySupported()
-{
- return false;
-}
-
-bool GLDisplayEGL::Initialize(gl::EGLDisplayPlatform native_display)
-{
- auto glDisplay = GLSurfaceEGLQt::InitializeOneOff(0);
-
- if (glDisplay) {
- display_ = glDisplay->GetDisplay();
- native_display_ = native_display;
- std::string platform_extensions(ext->GetPlatformExtensions(display_));
- gfx::ExtensionSet extensions(gfx::MakeExtensionSet(platform_extensions));
- ext->b_EGL_EXT_image_dma_buf_import =
- gfx::HasExtension(extensions, "EGL_EXT_image_dma_buf_import");
- ext->b_EGL_EXT_image_dma_buf_import_modifiers =
- gfx::HasExtension(extensions, "EGL_EXT_image_dma_buf_import_modifiers");
-// ext->InitializeExtensionSettings(display_); Not functional for us at this moment
- }
-
- return glDisplay;
-}
-
-bool GLDisplayEGL::IsAndroidNativeFenceSyncSupported()
-{
- return false;
-}
-
-// static
-GLDisplayEGL *GLSurfaceEGL::GetGLDisplayEGL()
-{
- return GLDisplayManagerEGL::GetInstance()->GetDisplay(GpuPreference::kDefault);
-}
-
-DisplayType GLDisplayEGL::GetDisplayType() const
-{
- return DisplayType::DEFAULT;
-}
-
-EGLDisplayPlatform GLDisplayEGL::GetNativeDisplay() const
-{
- return native_display_;
-}
-
-GLSurface *GLSurfaceEGL::createSurfaceless(gl::GLDisplayEGL *display, const gfx::Size& size)
-{
- return new GLSurfacelessQtEGL(display, size);
-}
-
bool GLSurfaceEGLQt::g_egl_surfaceless_context_supported = false;
bool GLSurfaceEGLQt::s_initialized = false;
@@ -265,15 +196,5 @@ void* GLSurfacelessQtEGL::GetShareHandle()
return NULL;
}
-std::string DisplayExtensionsEGL::GetPlatformExtensions(EGLDisplay)
-{
- EGLDisplay display = GLContextHelper::getEGLDisplay();
- if (display == EGL_NO_DISPLAY)
- return "";
-
- const char* str = eglQueryString(display, EGL_EXTENSIONS);
- return str ? std::string(str) : "";
-}
-
} // namespace gl
#endif // !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_WIN)