Title: [128231] trunk
Revision
128231
Author
[email protected]
Date
2012-09-11 15:32:24 -0700 (Tue, 11 Sep 2012)

Log Message

[Gtk] allow building with css-shaders
https://bugs.webkit.org/show_bug.cgi?id=95603

Patch by Arnaud Renevier <[email protected]> on 2012-09-11
Reviewed by Martin Robinson.

.:

if unstable features and accelerated compositing are turned on, and
acceleration backend is opengl, then build CSS Shaders and CSS
Filters.

* configure.ac:

Source/WebCore:

Add support for css filters and shaders in GNUmakefile.am and include
Texture.cpp, Texture.h, TilingData.cpp and TilingData.h in
webcore_sources

No functional change, so no new tests.

* GNUmakefile.am:
* GNUmakefile.list.am:

Source/WebKit/gtk:

Add enable-css-shaders property to WebKit WebSettings, and connects it
to WebCore settings setCSSCustomFilterEnabled.

* webkit/webkitwebsettings.cpp:
(webkit_web_settings_class_init):
(webkit_web_settings_set_property):
(webkit_web_settings_get_property):
* webkit/webkitwebsettingsprivate.h:
* webkit/webkitwebview.cpp:
(webkit_web_view_update_settings):
(webkit_web_view_settings_notify):

Modified Paths

Diff

Modified: trunk/ChangeLog (128230 => 128231)


--- trunk/ChangeLog	2012-09-11 22:25:29 UTC (rev 128230)
+++ trunk/ChangeLog	2012-09-11 22:32:24 UTC (rev 128231)
@@ -1,3 +1,16 @@
+2012-09-11  Arnaud Renevier  <[email protected]>
+
+        [Gtk] allow building with css-shaders
+        https://bugs.webkit.org/show_bug.cgi?id=95603
+
+        Reviewed by Martin Robinson.
+
+        if unstable features and accelerated compositing are turned on, and
+        acceleration backend is opengl, then build CSS Shaders and CSS
+        Filters.
+
+        * configure.ac:
+
 2012-09-11  Marcelo Lira  <[email protected]>
 
         Restore original value of mock scrollbars enabled in InternalSettings

Modified: trunk/Source/WebCore/ChangeLog (128230 => 128231)


--- trunk/Source/WebCore/ChangeLog	2012-09-11 22:25:29 UTC (rev 128230)
+++ trunk/Source/WebCore/ChangeLog	2012-09-11 22:32:24 UTC (rev 128231)
@@ -1,3 +1,19 @@
+2012-09-11  Arnaud Renevier  <[email protected]>
+
+        [Gtk] allow building with css-shaders
+        https://bugs.webkit.org/show_bug.cgi?id=95603
+
+        Reviewed by Martin Robinson.
+
+        Add support for css filters and shaders in GNUmakefile.am and include
+        Texture.cpp, Texture.h, TilingData.cpp and TilingData.h in
+        webcore_sources
+
+        No functional change, so no new tests.
+
+        * GNUmakefile.am:
+        * GNUmakefile.list.am:
+
 2012-09-11  Dimitri Glazkov  <[email protected]>
 
         Remove StyleResolver::setStyle, because it's no longer used.

Modified: trunk/Source/WebCore/GNUmakefile.am (128230 => 128231)


--- trunk/Source/WebCore/GNUmakefile.am	2012-09-11 22:25:29 UTC (rev 128230)
+++ trunk/Source/WebCore/GNUmakefile.am	2012-09-11 22:32:24 UTC (rev 128231)
@@ -254,6 +254,15 @@
 endif # END ENABLE_FULLSCREEN_API
 
 # ----
+# Filters
+# ----
+if ENABLE_CSS_FILTERS
+feature_defines_overrides += ENABLE_CSS_FILTERS=1
+else
+feature_defines_overrides += ENABLE_CSS_FILTERS=0
+endif # END ENABLE_CSS_FILTERS
+
+# ----
 # Track Support
 # ----
 if ENABLE_VIDEO_TRACK
@@ -357,7 +366,15 @@
 feature_defines_overrides += ENABLE_CSS_EXCLUSIONS=0
 endif # END ENABLE_CSS_EXCLUSIONS
 
+# Shaders
 # ----
+if ENABLE_CSS_SHADERS
+feature_defines_overrides += ENABLE_CSS_SHADERS=1
+else
+feature_defines_overrides += ENABLE_CSS_SHADERS=0
+endif # END ENABLE_CSS_SHADERS
+
+# ----
 # Geolocation
 # ----
 if ENABLE_GEOLOCATION

Modified: trunk/Source/WebCore/GNUmakefile.list.am (128230 => 128231)


--- trunk/Source/WebCore/GNUmakefile.list.am	2012-09-11 22:25:29 UTC (rev 128230)
+++ trunk/Source/WebCore/GNUmakefile.list.am	2012-09-11 22:32:24 UTC (rev 128231)
@@ -4384,6 +4384,10 @@
 	Source/WebCore/platform/graphics/GlyphPageTreeNode.h \
 	Source/WebCore/platform/graphics/gpu/DrawingBuffer.cpp \
 	Source/WebCore/platform/graphics/gpu/DrawingBuffer.h \
+	Source/WebCore/platform/graphics/gpu/Texture.cpp \
+	Source/WebCore/platform/graphics/gpu/Texture.h \
+	Source/WebCore/platform/graphics/gpu/TilingData.cpp \
+	Source/WebCore/platform/graphics/gpu/TilingData.h \
 	Source/WebCore/platform/graphics/Gradient.cpp \
 	Source/WebCore/platform/graphics/Gradient.h \
 	Source/WebCore/platform/graphics/GraphicsContext.cpp \

Modified: trunk/Source/WebKit/gtk/ChangeLog (128230 => 128231)


--- trunk/Source/WebKit/gtk/ChangeLog	2012-09-11 22:25:29 UTC (rev 128230)
+++ trunk/Source/WebKit/gtk/ChangeLog	2012-09-11 22:32:24 UTC (rev 128231)
@@ -1,3 +1,22 @@
+2012-09-11  Arnaud Renevier  <[email protected]>
+
+        [Gtk] allow building with css-shaders
+        https://bugs.webkit.org/show_bug.cgi?id=95603
+
+        Reviewed by Martin Robinson.
+
+        Add enable-css-shaders property to WebKit WebSettings, and connects it
+        to WebCore settings setCSSCustomFilterEnabled.
+
+        * webkit/webkitwebsettings.cpp:
+        (webkit_web_settings_class_init):
+        (webkit_web_settings_set_property):
+        (webkit_web_settings_get_property):
+        * webkit/webkitwebsettingsprivate.h:
+        * webkit/webkitwebview.cpp:
+        (webkit_web_view_update_settings):
+        (webkit_web_view_settings_notify):
+
 2012-09-09  Emil A Eklund  <[email protected]>
 
         Rename Node::getRect/getPixelSnappedRect and remove ContainerNode::getRect

Modified: trunk/Source/WebKit/gtk/webkit/webkitwebsettings.cpp (128230 => 128231)


--- trunk/Source/WebKit/gtk/webkit/webkitwebsettings.cpp	2012-09-11 22:25:29 UTC (rev 128230)
+++ trunk/Source/WebKit/gtk/webkit/webkitwebsettings.cpp	2012-09-11 22:32:24 UTC (rev 128231)
@@ -118,7 +118,8 @@
     PROP_ENABLE_ACCELERATED_COMPOSITING,
     PROP_ENABLE_SMOOTH_SCROLLING,
     PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE,
-    PROP_MEDIA_PLAYBACK_ALLOWS_INLINE
+    PROP_MEDIA_PLAYBACK_ALLOWS_INLINE,
+    PROP_ENABLE_CSS_SHADERS
 };
 
 static void webkit_web_settings_finalize(GObject* object);
@@ -941,6 +942,25 @@
                                                          TRUE,
                                                          flags));
 
+    /**
+    * WebKitWebSettings:enable-css-shaders
+    *
+    * Enable or disable support for css shaders (css custom filters).
+    * Accelerated compositing needs to be enabled at compile time, but needs
+    * not be enabled at runtime.
+    *
+    * See also https://dvcs.w3.org/hg/FXTF/raw-file/tip/custom/index.html
+    *
+    * Since: 2.0
+    */
+    g_object_class_install_property(gobject_class,
+                                    PROP_ENABLE_CSS_SHADERS,
+                                    g_param_spec_boolean("enable-css-shaders",
+                                                         _("Enable CSS shaders"),
+                                                         _("Whether to enable css shaders"),
+                                                         FALSE,
+                                                         flags));
+
 }
 
 static void webkit_web_settings_init(WebKitWebSettings* web_settings)
@@ -1119,6 +1139,9 @@
     case PROP_ENABLE_SMOOTH_SCROLLING:
         priv->enableSmoothScrolling = g_value_get_boolean(value);
         break;
+    case PROP_ENABLE_CSS_SHADERS:
+        priv->enableCSSShaders = g_value_get_boolean(value);
+        break;
     case PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE:
         priv->mediaPlaybackRequiresUserGesture = g_value_get_boolean(value);
         break;
@@ -1293,6 +1316,9 @@
     case PROP_ENABLE_SMOOTH_SCROLLING:
         g_value_set_boolean(value, priv->enableSmoothScrolling);
         break;
+    case PROP_ENABLE_CSS_SHADERS:
+        g_value_set_boolean(value, priv->enableCSSShaders);
+        break;
     case PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE:
         g_value_set_boolean(value, priv->mediaPlaybackRequiresUserGesture);
         break;

Modified: trunk/Source/WebKit/gtk/webkit/webkitwebsettingsprivate.h (128230 => 128231)


--- trunk/Source/WebKit/gtk/webkit/webkitwebsettingsprivate.h	2012-09-11 22:25:29 UTC (rev 128230)
+++ trunk/Source/WebKit/gtk/webkit/webkitwebsettingsprivate.h	2012-09-11 22:32:24 UTC (rev 128231)
@@ -81,6 +81,7 @@
     gboolean enableWebAudio;
     gboolean enableAcceleratedCompositing;
     gboolean enableSmoothScrolling;
+    gboolean enableCSSShaders;
     gboolean mediaPlaybackRequiresUserGesture;
     gboolean mediaPlaybackAllowsInline;
 };

Modified: trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp (128230 => 128231)


--- trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp	2012-09-11 22:25:29 UTC (rev 128230)
+++ trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp	2012-09-11 22:32:24 UTC (rev 128231)
@@ -3444,6 +3444,10 @@
     coreSettings->setEnableScrollAnimator(settingsPrivate->enableSmoothScrolling);
 #endif
 
+#if ENABLE(CSS_SHADERS)
+    coreSettings->setCSSCustomFilterEnabled(settingsPrivate->enableCSSShaders);
+#endif
+
     // Use mock scrollbars if in DumpRenderTree mode (i.e. testing layout tests).
     coreSettings->setMockScrollbarsEnabled(DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled());
 
@@ -3585,6 +3589,11 @@
         settings->setEnableScrollAnimator(g_value_get_boolean(&value));
 #endif
 
+#if ENABLE(CSS_SHADERS)
+    else if (name == g_intern_string("enable-css-shaders"))
+        settings->setCSSCustomFilterEnabled(g_value_get_boolean(&value));
+#endif
+
     else if (!g_object_class_find_property(G_OBJECT_GET_CLASS(webSettings), name))
         g_warning("Unexpected setting '%s'", name);
     g_value_unset(&value);

Modified: trunk/configure.ac (128230 => 128231)


--- trunk/configure.ac	2012-09-11 22:25:29 UTC (rev 128230)
+++ trunk/configure.ac	2012-09-11 22:32:24 UTC (rev 128231)
@@ -964,6 +964,16 @@
               [],[enable_css_regions="yes"])
 AC_MSG_RESULT([$enable_css_regions])
 
+# Enable css shaders if unstable_features, css_filters and
+# accelerated_compositing are turned on.
+AC_MSG_CHECKING([whether to enable CSS Shaders])
+if test "$enable_unstable_features" = "yes" && test "$enable_accelerated_compositing" = "yes" && test "$with_acceleration_backend" = "opengl"; then
+    enable_css_shaders=yes;
+    enable_css_filters=yes;
+fi
+AC_MSG_RESULT([$enable_css_filters])
+AC_MSG_RESULT([$enable_css_shaders])
+
 G_IR_SCANNER=
 G_IR_COMPILER=
 G_IR_GENERATE=
@@ -1276,6 +1286,8 @@
 AM_CONDITIONAL([ENABLE_IFRAME_SEAMLESS],[test "$enable_iframe_seamless" = "yes"])
 AM_CONDITIONAL([ENABLE_CSS_EXCLUSIONS],[test "$enable_css_exclusions" = "yes"])
 AM_CONDITIONAL([ENABLE_CSS_REGIONS],[test "$enable_css_regions" = "yes"])
+AM_CONDITIONAL([ENABLE_CSS_FILTERS],[test "$enable_css_filters" = "yes"])
+AM_CONDITIONAL([ENABLE_CSS_SHADERS],[test "$enable_css_shaders" = "yes"])
 
 # Gtk conditionals
 AM_CONDITIONAL([ENABLE_INTROSPECTION],[test "$enable_introspection" = "yes"])
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to