webkit2gtk3/webkit2gtk3-create-destroy-egl-image.patch
Dominique Leuenberger 12bef3091a Accepting request 1119870 from GNOME:Next
Resub with less whitespace

- Add webkit2gtk3-create-destroy-egl-image.patch: fix "No provider
  of EglDestroyImage Found" (boo#1216483).

OBS-URL: https://build.opensuse.org/request/show/1119870
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/webkit2gtk3?expand=0&rev=426
2023-10-25 12:14:38 +00:00

81 lines
3.4 KiB
Diff

From 855a2ca13f6a85b0aacb0576fbbc9a926e646b2e Mon Sep 17 00:00:00 2001
From: Carlos Garcia Campos <cgarcia@igalia.com>
Date: Thu, 31 Aug 2023 09:26:26 -0700
Subject: [PATCH] [GTK][WPE] Do not use epoxy
PlatformDisplay::create|destroyEGLImage
https://bugs.webkit.org/show_bug.cgi?id=260968
Reviewed by Michael Catanzaro.
libepoxy needs a current context to work, but creating EGL images
doesn't need any context, it's display API.
* Source/WebCore/platform/graphics/PlatformDisplay.cpp:
(WebCore::PlatformDisplay::createEGLImage const):
(WebCore::PlatformDisplay::destroyEGLImage const):
Canonical link: https://commits.webkit.org/267503@main
---
.../platform/graphics/PlatformDisplay.cpp | 16 ----------------
1 file changed, 16 deletions(-)
diff -urp webkitgtk-2.42.1.orig/Source/WebCore/platform/graphics/PlatformDisplay.cpp webkitgtk-2.42.1/Source/WebCore/platform/graphics/PlatformDisplay.cpp
--- webkitgtk-2.42.1.orig/Source/WebCore/platform/graphics/PlatformDisplay.cpp 2023-09-19 03:27:49.807693000 -0500
+++ webkitgtk-2.42.1/Source/WebCore/platform/graphics/PlatformDisplay.cpp 2023-10-23 13:09:55.996812760 -0500
@@ -374,14 +374,10 @@ void PlatformDisplay::terminateEGLDispla
EGLImage PlatformDisplay::createEGLImage(EGLContext context, EGLenum target, EGLClientBuffer clientBuffer, const Vector<EGLAttrib>& attributes) const
{
if (eglCheckVersion(1, 5)) {
-#if USE(LIBEPOXY)
- return eglCreateImage(m_eglDisplay, context, target, clientBuffer, attributes.isEmpty() ? nullptr : attributes.data());
-#else
static PFNEGLCREATEIMAGEPROC s_eglCreateImage = reinterpret_cast<PFNEGLCREATEIMAGEPROC>(eglGetProcAddress("eglCreateImage"));
if (s_eglCreateImage)
return s_eglCreateImage(m_eglDisplay, context, target, clientBuffer, attributes.isEmpty() ? nullptr : attributes.data());
return EGL_NO_IMAGE;
-#endif
}
if (!m_eglExtensions.KHR_image_base)
@@ -390,40 +386,28 @@ EGLImage PlatformDisplay::createEGLImage
Vector<EGLint> intAttributes = attributes.map<Vector<EGLint>>([] (EGLAttrib value) {
return value;
});
-#if USE(LIBEPOXY)
- return eglCreateImageKHR(m_eglDisplay, context, target, clientBuffer, intAttributes.isEmpty() ? nullptr : intAttributes.data());
-#else
static PFNEGLCREATEIMAGEKHRPROC s_eglCreateImageKHR = reinterpret_cast<PFNEGLCREATEIMAGEKHRPROC>(eglGetProcAddress("eglCreateImageKHR"));
if (s_eglCreateImageKHR)
return s_eglCreateImageKHR(m_eglDisplay, context, target, clientBuffer, intAttributes.isEmpty() ? nullptr : intAttributes.data());
return EGL_NO_IMAGE_KHR;
-#endif
}
bool PlatformDisplay::destroyEGLImage(EGLImage image) const
{
if (eglCheckVersion(1, 5)) {
-#if USE(LIBEPOXY)
- return eglDestroyImage(m_eglDisplay, image);
-#else
static PFNEGLDESTROYIMAGEPROC s_eglDestroyImage = reinterpret_cast<PFNEGLDESTROYIMAGEPROC>(eglGetProcAddress("eglDestroyImage"));
if (s_eglDestroyImage)
return s_eglDestroyImage(m_eglDisplay, image);
return false;
-#endif
}
if (!m_eglExtensions.KHR_image_base)
return false;
-#if USE(LIBEPOXY)
- return eglDestroyImageKHR(m_eglDisplay, image);
-#else
static PFNEGLDESTROYIMAGEKHRPROC s_eglDestroyImageKHR = reinterpret_cast<PFNEGLDESTROYIMAGEKHRPROC>(eglGetProcAddress("eglDestroyImageKHR"));
if (s_eglDestroyImageKHR)
return s_eglDestroyImageKHR(m_eglDisplay, image);
return false;
-#endif
}
#if USE(GBM)