Changeset 181847 in webkit


Ignore:
Timestamp:
Mar 23, 2015 1:06:02 AM (9 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK] Add a configure option to build without Redirected XComposite Window
https://bugs.webkit.org/show_bug.cgi?id=142865

Reviewed by Žan Doberšek.

.:

The Redirected XComposite Window was added to support some
features like GtkOverlay, but in cases where we don't need such
features, it's more efficient to use the XID of the WebKitWebView
window as the native surface handle for the accelerated
compositing. This patch adds USE_REDIRECTED_XCOMPOSITE_WINDOW,
that is enabled by default for X11 target when OpenGL is enabled.

  • Source/cmake/OptionsGTK.cmake:

Source/WebKit2:

Use USE(REDIRECTED_XCOMPOSITE_WINDOW) instead of
USE(TEXTURE_MAPPER_GL) && PLATFORM(X11).

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseRealize): Use the XID of the WebKitWebView
window as native surface handle when REDIRECTED_XCOMPOSITE_WINDOW
is disabled.
(webkitWebViewRenderAcceleratedCompositingResults):
(resizeWebKitWebViewBaseFromAllocation):
(webkitWebViewBaseEnterAcceleratedCompositingMode):
(webkitWebViewBaseExitAcceleratedCompositingMode):

  • UIProcess/gtk/RedirectedXCompositeWindow.cpp:
  • UIProcess/gtk/RedirectedXCompositeWindow.h:
Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/ChangeLog

    r181793 r181847  
     12015-03-23  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Add a configure option to build without Redirected XComposite Window
     4        https://bugs.webkit.org/show_bug.cgi?id=142865
     5
     6        Reviewed by Žan Doberšek.
     7
     8        The Redirected XComposite Window was added to support some
     9        features like GtkOverlay, but in cases where we don't need such
     10        features, it's more efficient to use the XID of the WebKitWebView
     11        window as the native surface handle for the accelerated
     12        compositing. This patch adds USE_REDIRECTED_XCOMPOSITE_WINDOW,
     13        that is enabled by default for X11 target when OpenGL is enabled.
     14
     15        * Source/cmake/OptionsGTK.cmake:
     16
    1172015-03-20  Zan Dobersek  <zdobersek@igalia.com>
    218
  • trunk/Source/WebKit2/ChangeLog

    r181838 r181847  
     12015-03-23  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Add a configure option to build without Redirected XComposite Window
     4        https://bugs.webkit.org/show_bug.cgi?id=142865
     5
     6        Reviewed by Žan Doberšek.
     7
     8        Use USE(REDIRECTED_XCOMPOSITE_WINDOW) instead of
     9        USE(TEXTURE_MAPPER_GL) && PLATFORM(X11).
     10
     11        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
     12        (webkitWebViewBaseRealize): Use the XID of the WebKitWebView
     13        window as native surface handle when REDIRECTED_XCOMPOSITE_WINDOW
     14        is disabled.
     15        (webkitWebViewRenderAcceleratedCompositingResults):
     16        (resizeWebKitWebViewBaseFromAllocation):
     17        (webkitWebViewBaseEnterAcceleratedCompositingMode):
     18        (webkitWebViewBaseExitAcceleratedCompositingMode):
     19        * UIProcess/gtk/RedirectedXCompositeWindow.cpp:
     20        * UIProcess/gtk/RedirectedXCompositeWindow.h:
     21
    1222015-03-22  Eric Carlson  <eric.carlson@apple.com>
    223
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp

    r181798 r181847  
    6868#endif
    6969
    70 #if PLATFORM(X11)
     70#if USE(REDIRECTED_XCOMPOSITE_WINDOW)
    7171#include <gdk/gdkx.h>
    7272#endif
     73
    7374#if PLATFORM(WAYLAND)
    7475#include <gdk/gdkwayland.h>
     
    185186#endif
    186187
    187 #if USE(TEXTURE_MAPPER_GL) && PLATFORM(X11)
     188#if USE(REDIRECTED_XCOMPOSITE_WINDOW)
    188189    std::unique_ptr<RedirectedXCompositeWindow> redirectedWindow;
    189190#endif
     
    319320    WebKitWebViewBasePrivate* priv = webView->priv;
    320321
    321 #if USE(TEXTURE_MAPPER_GL) && PLATFORM(X11)
     322#if USE(REDIRECTED_XCOMPOSITE_WINDOW)
    322323    GdkDisplay* display = gdk_display_manager_get_default_display(gdk_display_manager_get());
    323324    if (GDK_IS_X11_DISPLAY(display)) {
     
    370371    gdk_window_set_user_data(window, widget);
    371372
     373#if USE(TEXTURE_MAPPER_GL) && PLATFORM(X11) && !USE(REDIRECTED_XCOMPOSITE_WINDOW)
     374    DrawingAreaProxyImpl* drawingArea = static_cast<DrawingAreaProxyImpl*>(priv->pageProxy->drawingArea());
     375    drawingArea->setNativeSurfaceHandleForCompositing(GDK_WINDOW_XID(window));
     376#endif
     377
    372378    gtk_style_context_set_background(gtk_widget_get_style_context(widget), window);
    373379
     
    518524        return false;
    519525
    520 #if PLATFORM(X11)
     526#if USE(REDIRECTED_XCOMPOSITE_WINDOW)
    521527    // To avoid flashes when initializing accelerated compositing for the first
    522528    // time, we wait until we know there's a frame ready before rendering.
     
    631637    DrawingAreaProxyImpl* drawingArea = static_cast<DrawingAreaProxyImpl*>(priv->pageProxy->drawingArea());
    632638
    633 #if USE(TEXTURE_MAPPER_GL) && PLATFORM(X11)
     639#if USE(REDIRECTED_XCOMPOSITE_WINDOW)
    634640    if (sizeChanged && priv->redirectedWindow && drawingArea && drawingArea->isInAcceleratedCompositingMode())
    635641        priv->redirectedWindow->resize(viewRect.size());
     
    13241330void webkitWebViewBaseEnterAcceleratedCompositingMode(WebKitWebViewBase* webkitWebViewBase)
    13251331{
    1326 #if USE(TEXTURE_MAPPER_GL) && PLATFORM(X11)
     1332#if USE(REDIRECTED_XCOMPOSITE_WINDOW)
    13271333    WebKitWebViewBasePrivate* priv = webkitWebViewBase->priv;
    13281334    if (!priv->redirectedWindow)
     
    13421348void webkitWebViewBaseExitAcceleratedCompositingMode(WebKitWebViewBase* webkitWebViewBase)
    13431349{
    1344 #if USE(TEXTURE_MAPPER_GL) && PLATFORM(X11)
     1350#if USE(REDIRECTED_XCOMPOSITE_WINDOW)
    13451351    WebKitWebViewBasePrivate* priv = webkitWebViewBase->priv;
    13461352    if (priv->redirectedWindow)
  • trunk/Source/WebKit2/UIProcess/gtk/RedirectedXCompositeWindow.cpp

    r179397 r181847  
    2828#include "RedirectedXCompositeWindow.h"
    2929
    30 #if USE(TEXTURE_MAPPER_GL) && PLATFORM(X11)
     30#if USE(REDIRECTED_XCOMPOSITE_WINDOW)
    3131
    3232#include <X11/extensions/Xcomposite.h>
     
    283283} // namespace WebCore
    284284
    285 #endif // USE(TEXTURE_MAPPER_GL) && PLATFORM(X11)
     285#endif // USE(REDIRECTED_XCOMPOSITE_WINDOW)
  • trunk/Source/WebKit2/UIProcess/gtk/RedirectedXCompositeWindow.h

    r178413 r181847  
    2828#define  RedirectedXCompositeWindow_h
    2929
    30 #if USE(TEXTURE_MAPPER_GL) && PLATFORM(X11)
     30#if USE(REDIRECTED_XCOMPOSITE_WINDOW)
    3131
    3232#include <WebCore/IntSize.h>
     
    6565} // namespace WebKit
    6666
    67 #endif // USE(TEXTURE_MAPPER_GL) && PLATFORM(X11)
     67#endif // USE(REDIRECTED_XCOMPOSITE_WINDOW)
    6868
    6969#endif // RedirectedXCompositeWindow_h
  • trunk/Source/cmake/OptionsGTK.cmake

    r181793 r181847  
    8383WEBKIT_OPTION_BEGIN()
    8484WEBKIT_OPTION_DEFINE(ENABLE_PLUGIN_PROCESS_GTK2 "Whether to build WebKitPluginProcess2 to load GTK2 based plugins." ON)
     85WEBKIT_OPTION_DEFINE(USE_REDIRECTED_XCOMPOSITE_WINDOW "Whether to use a Redirected XComposite Window for accelerated compositing in X11." ON)
    8586
    8687if ((OPENGL_FOUND OR OPENGLES2_FOUND) AND (GLX_FOUND OR EGL_FOUND))
    8788    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL ON)
     89
     90    if (ENABLE_X11_TARGET)
     91        WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_REDIRECTED_XCOMPOSITE_WINDOW ON)
     92    else ()
     93        WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_REDIRECTED_XCOMPOSITE_WINDOW OFF)
     94    endif ()
    8895
    8996    if (OPENGL_FOUND)
     
    107114    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL OFF)
    108115    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCELERATED_2D_CANVAS OFF)
     116    WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_REDIRECTED_XCOMPOSITE_WINDOW OFF)
    109117endif ()
    110118
     
    361369    add_definitions(-DENABLE_3D_RENDERING=1)
    362370
     371    if (ENABLE_X11_TARGET AND USE_REDIRECTED_XCOMPOSITE_WINDOW)
     372        add_definitions(-DWTF_USE_REDIRECTED_XCOMPOSITE_WINDOW=1)
     373    endif ()
     374
    363375    if (OPENGLES2_FOUND)
    364376        set(WTF_USE_OPENGL_ES_2 1)
Note: See TracChangeset for help on using the changeset viewer.