diff options
author | Martin Stransky <stransky@redhat.com> | 2018-05-25 13:42:22 +0200 |
---|---|---|
committer | Martin Stransky <stransky@redhat.com> | 2018-05-25 13:42:22 +0200 |
commit | c8d5774d44147294988421e09823b013b5ecae83 (patch) | |
tree | a784b13aa5a0fb07ed8cc7c7f50ecdb3650c2e12 /rb244010.patch | |
parent | Merge branch 'master' into f27 (diff) | |
parent | Enable Wayland backend (diff) | |
download | librewolf-fedora-ff-c8d5774d44147294988421e09823b013b5ecae83.tar.gz librewolf-fedora-ff-c8d5774d44147294988421e09823b013b5ecae83.tar.bz2 librewolf-fedora-ff-c8d5774d44147294988421e09823b013b5ecae83.zip |
Merge branch 'master' into f27
Diffstat (limited to 'rb244010.patch')
-rw-r--r-- | rb244010.patch | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/rb244010.patch b/rb244010.patch new file mode 100644 index 0000000..0df8c3b --- /dev/null +++ b/rb244010.patch @@ -0,0 +1,149 @@ +diff --git a/gfx/gl/GLContextProviderWayland.cpp b/gfx/gl/GLContextProviderWayland.cpp +new file mode 100644 +--- /dev/null ++++ b/gfx/gl/GLContextProviderWayland.cpp +@@ -0,0 +1,99 @@ ++/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ ++/* This Source Code Form is subject to the terms of the Mozilla Public ++ * License, v. 2.0. If a copy of the MPL was not distributed with this ++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ ++ ++#ifdef MOZ_WIDGET_GTK ++#include <gdk/gdk.h> ++#include <gdk/gdkx.h> ++#endif ++ ++#include "GLContextProvider.h" ++ ++namespace mozilla { ++namespace gl { ++ ++using namespace mozilla::gfx; ++using namespace mozilla::widget; ++ ++static class GLContextProviderGLX sGLContextProviderGLX; ++static class GLContextProviderEGL sGLContextProviderEGL; ++ ++already_AddRefed<GLContext> ++GLContextProviderWayland::CreateWrappingExisting(void* aContext, void* aSurface) ++{ ++ if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) { ++ return sGLContextProviderGLX.CreateWrappingExisting(aContext, aSurface); ++ } else { ++ return sGLContextProviderEGL.CreateWrappingExisting(aContext, aSurface); ++ } ++} ++ ++already_AddRefed<GLContext> ++GLContextProviderWayland::CreateForCompositorWidget(CompositorWidget* aCompositorWidget, bool aForceAccelerated) ++{ ++ if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) { ++ return sGLContextProviderGLX.CreateForCompositorWidget(aCompositorWidget, aForceAccelerated); ++ } else { ++ return sGLContextProviderEGL.CreateForCompositorWidget(aCompositorWidget, aForceAccelerated); ++ } ++} ++ ++already_AddRefed<GLContext> ++GLContextProviderWayland::CreateForWindow(nsIWidget* aWidget, ++ bool aWebRender, ++ bool aForceAccelerated) ++{ ++ if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) { ++ return sGLContextProviderGLX.CreateForWindow(aWidget, aWebRender, aForceAccelerated); ++ } else { ++ return sGLContextProviderEGL.CreateForWindow(aWidget, aWebRender, aForceAccelerated); ++ } ++} ++ ++/*static*/ already_AddRefed<GLContext> ++GLContextProviderWayland::CreateHeadless(CreateContextFlags flags, ++ nsACString* const out_failureId) ++{ ++ if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) { ++ return sGLContextProviderGLX.CreateHeadless(flags, out_failureId); ++ } else { ++ return sGLContextProviderEGL.CreateHeadless(flags, out_failureId); ++ } ++} ++ ++/*static*/ already_AddRefed<GLContext> ++GLContextProviderWayland::CreateOffscreen(const IntSize& size, ++ const SurfaceCaps& minCaps, ++ CreateContextFlags flags, ++ nsACString* const out_failureId) ++{ ++ if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) { ++ return sGLContextProviderGLX.CreateOffscreen(size, minCaps, flags, out_failureId); ++ } else { ++ return sGLContextProviderEGL.CreateOffscreen(size, minCaps, flags, out_failureId); ++ } ++} ++ ++/*static*/ GLContext* ++GLContextProviderWayland::GetGlobalContext() ++{ ++ if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) { ++ return sGLContextProviderGLX.GetGlobalContext(); ++ } else { ++ return sGLContextProviderEGL.GetGlobalContext(); ++ } ++} ++ ++/*static*/ void ++GLContextProviderWayland::Shutdown() ++{ ++ if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) { ++ sGLContextProviderGLX.Shutdown(); ++ } else { ++ sGLContextProviderEGL.Shutdown(); ++ } ++} ++ ++} /* namespace gl */ ++} /* namespace mozilla */ +diff --git a/gfx/gl/moz.build b/gfx/gl/moz.build +--- a/gfx/gl/moz.build ++++ b/gfx/gl/moz.build +@@ -8,17 +8,17 @@ gl_provider = 'Null' + + if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows': + gl_provider = 'WGL' + elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa': + gl_provider = 'CGL' + elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit': + gl_provider = 'EAGL' + elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']: +- if CONFIG['MOZ_EGL_XRENDER_COMPOSITE'] or CONFIG['MOZ_WAYLAND']: ++ if CONFIG['MOZ_EGL_XRENDER_COMPOSITE']: + gl_provider = 'EGL' + else: + gl_provider = 'GLX' + elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android': + gl_provider = 'EGL' + + if CONFIG['MOZ_GL_PROVIDER']: + gl_provider = CONFIG['MOZ_GL_PROVIDER'] +@@ -114,16 +114,21 @@ elif gl_provider == 'GLX': + SOURCES += [ + 'GLContextProviderGLX.cpp', + 'SharedSurfaceGLX.cpp' + ] + EXPORTS += [ + 'SharedSurfaceGLX.h' + ] + ++if CONFIG['MOZ_WAYLAND']: ++ SOURCES += [ ++ 'GLContextProviderWayland.cpp', ++ ] ++ + UNIFIED_SOURCES += [ + 'AndroidSurfaceTexture.cpp', + 'DecomposeIntoNoRepeatTriangles.cpp', + 'EGLUtils.cpp', + 'GfxTexturesReporter.cpp', + 'GLBlitHelper.cpp', + 'GLContext.cpp', + 'GLContextFeatures.cpp', + |