Changeset 134743 in webkit
- Timestamp:
- Nov 14, 2012 10:44:33 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/efl/ChangeLog
r134694 r134743 1 2012-11-14 Ryuan Choi <ryuan.choi@gmail.com> 2 3 [EFL] Port tiled backing store 4 https://bugs.webkit.org/show_bug.cgi?id=71352 5 6 Reviewed by Gyuyoung Kim. 7 8 Added ewk_view_setting_tiled_backing_store_enabled_{get|set} to give possibility 9 to use WebCore's tiled backing store in WebKit/Efl port. This makes WebKit/Efl 10 compliant with WebKit's generic solution of tiled backing store. 11 12 * WebCoreSupport/ChromeClientEfl.cpp: 13 (WebCore::ChromeClientEfl::invalidateRootView): 14 (WebCore): 15 (WebCore::ChromeClientEfl::visibleRectForTiledBackingStore): 16 * WebCoreSupport/ChromeClientEfl.h: 17 (ChromeClientEfl): 18 * ewk/ewk_frame_private.h: 19 Declared missing classes which used in this file. 20 * ewk/ewk_paint_context.cpp: 21 (ewk_paint_context_paint): Implemented to paint tiled backing store 22 * ewk/ewk_view.cpp: 23 (ewk_view_setting_tiled_backing_store_enabled_set): 24 Added API to enable/disable the WebCore's tiled backing store. 25 (ewk_view_setting_tiled_backing_store_enabled_get): 26 Added API to query if the WebCore's tiled backing store is enabled. 27 (ewk_view_tiled_backing_store_invalidate): 28 * ewk/ewk_view.h: 29 * ewk/ewk_view_private.h: 30 * ewk/ewk_view_single.cpp: 31 (_ewk_view_single_smart_repaints_process): 32 Implemented to update visible area of tiled backing store. 33 * tests/test_ewk_view.cpp: Added test case of ewk_view_setting_tiled_backing_store. 34 (TEST_F): 35 1 36 2012-11-14 Ryuan Choi <ryuan.choi@gmail.com> 2 37 -
trunk/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
r132615 r134743 516 516 } 517 517 518 void ChromeClientEfl::invalidateRootView(const IntRect& /*updateRect*/, bool /*immediate*/) 519 { 520 notImplemented(); 518 void ChromeClientEfl::invalidateRootView(const IntRect& updateRect, bool /*immediate*/) 519 { 520 #if USE(TILED_BACKING_STORE) 521 ewk_view_tiled_backing_store_invalidate(m_view, updateRect); 522 #else 523 UNUSED_PARAM(updateRect); 524 notImplemented(); 525 #endif 521 526 } 522 527 … … 654 659 notImplemented(); 655 660 } 656 #endif 657 658 } 661 662 IntRect ChromeClientEfl::visibleRectForTiledBackingStore() const 663 { 664 WebCore::FloatRect rect = ewk_view_page_rect_get(m_view); 665 const Evas_Object* frame = ewk_view_frame_main_get(m_view); 666 667 int x, y; 668 ewk_frame_scroll_pos_get(frame, &x, &y); 669 return IntRect(x, y, rect.width(), rect.height()); 670 } 671 #endif 672 673 } -
trunk/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h
r130400 r134743 183 183 #if USE(TILED_BACKING_STORE) 184 184 virtual void delegatedScrollRequested(const IntPoint& scrollPoint); 185 virtual IntRect visibleRectForTiledBackingStore() const; 185 186 #endif 186 187 -
trunk/Source/WebKit/efl/ewk/ewk_frame_private.h
r119243 r134743 29 29 30 30 namespace WebCore { 31 class HistoryItem; 32 class HTMLPlugInElement; 33 class KURL; 34 class Frame; 31 35 class Widget; 32 class Frame;33 36 } 34 37 -
trunk/Source/WebKit/efl/ewk/ewk_paint_context.cpp
r123831 r134743 21 21 #include "config.h" 22 22 23 #include "TiledBackingStore.h" 23 24 #include "ewk_paint_context_private.h" 24 25 #include "ewk_private.h" … … 159 160 WebCore::IntRect paintArea(*area); 160 161 162 #if USE(TILED_BACKING_STORE) 163 if (view->frame()->tiledBackingStore()) { 164 int scrollX = view->scrollX(); 165 int scrollY = view->scrollY(); 166 167 context->graphicContext->translate(-scrollX, -scrollY); 168 169 paintArea.move(scrollX, scrollY); 170 171 view->frame()->tiledBackingStore()->paint(context->graphicContext.get(), paintArea); 172 return; 173 } 174 #endif 175 161 176 if (view->isTransparent()) 162 177 context->graphicContext->clearRect(paintArea); -
trunk/Source/WebKit/efl/ewk/ewk_view.cpp
r133788 r134743 37 37 #include "EventHandler.h" 38 38 #include "FocusController.h" 39 #include "Frame.h" 39 40 #include "FrameLoaderClientEfl.h" 40 41 #include "FrameView.h" … … 58 59 #include "ResourceHandle.h" 59 60 #include "Settings.h" 61 #include "TiledBackingStore.h" 60 62 #include "c_instance.h" 61 63 #include "ewk_contextmenu_private.h" … … 4755 4757 } 4756 4758 4759 Eina_Bool ewk_view_setting_tiled_backing_store_enabled_set(Evas_Object* ewkView, Eina_Bool enable) 4760 { 4761 #if USE(TILED_BACKING_STORE) 4762 EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false); 4763 EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false); 4764 4765 priv->pageSettings->setTiledBackingStoreEnabled(enable); 4766 4767 return true; 4768 #else 4769 UNUSED_PARAM(ewkView); 4770 UNUSED_PARAM(enable); 4771 return false; 4772 #endif 4773 } 4774 4775 Eina_Bool ewk_view_setting_tiled_backing_store_enabled_get(Evas_Object* ewkView) 4776 { 4777 #if USE(TILED_BACKING_STORE) 4778 EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false); 4779 EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false); 4780 4781 return priv->pageSettings->tiledBackingStoreEnabled(); 4782 #else 4783 UNUSED_PARAM(ewkView); 4784 return false; 4785 #endif 4786 } 4787 4788 #if USE(TILED_BACKING_STORE) 4789 /** 4790 * @internal 4791 * Invalidate given area to repaint. The backing store will mark tiles that are 4792 * in the area as dirty. 4793 * 4794 * @param ewkView View. 4795 * @param area Area to invalidate 4796 */ 4797 void ewk_view_tiled_backing_store_invalidate(Evas_Object* ewkView, const WebCore::IntRect& area) 4798 { 4799 EINA_SAFETY_ON_NULL_RETURN(ewkView); 4800 EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData); 4801 EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv); 4802 4803 if (priv->mainFrame->tiledBackingStore()) 4804 priv->mainFrame->tiledBackingStore()->invalidate(area); 4805 } 4806 #endif 4807 4757 4808 namespace EWKPrivate { 4758 4809 -
trunk/Source/WebKit/efl/ewk/ewk_view.h
r133000 r134743 2778 2778 2779 2779 /** 2780 * Enables/disables the WebCore's tiled backing store. 2781 * 2782 * @param o view object 2783 * @oaram enable Enable or Disable WebCore's tiled backing store for given View 2784 * 2785 * @return true on success, or false on failure 2786 * 2787 * @note this is not for general use. It should be used for single view only. 2788 */ 2789 EAPI Eina_Bool ewk_view_setting_tiled_backing_store_enabled_set(Evas_Object *o, Eina_Bool enable); 2790 2791 /** 2792 * Queries if the WebCore's tiled backing store is enabled. 2793 * 2794 * @param o view object to query 2795 * 2796 * @return @c EINA_TRUE if the WebCore's tiled backing store is enabled 2797 * @c EINA_FALSE if not or on failure 2798 */ 2799 EAPI Eina_Bool ewk_view_setting_tiled_backing_store_enabled_get(Evas_Object *o); 2800 2801 /** 2780 2802 * Gets the context menu object. 2781 2803 * @param o The view that contains context menu. -
trunk/Source/WebKit/efl/ewk/ewk_view_private.h
r132615 r134743 135 135 #endif 136 136 137 #if USE(TILED_BACKING_STORE) 138 void ewk_view_tiled_backing_store_invalidate(Evas_Object* ewkView, const WebCore::IntRect& area); 139 #endif 140 137 141 #if ENABLE(TOUCH_EVENTS) 138 142 void ewk_view_need_touch_events_set(Evas_Object*, bool needed); -
trunk/Source/WebKit/efl/ewk/ewk_view_single.cpp
r132987 r134743 22 22 #include "ewk_view.h" 23 23 24 #include "ewk_frame.h" 24 #include "TiledBackingStore.h" 25 #include "ewk_frame_private.h" 25 26 #include "ewk_private.h" 26 27 #include "ewk_view_private.h" … … 263 264 } 264 265 266 #if USE(TILED_BACKING_STORE) 267 WebCore::Frame* mainFrame = EWKPrivate::coreFrame(smartData->main_frame); 268 if (mainFrame && mainFrame->tiledBackingStore()) 269 mainFrame->tiledBackingStore()->coverWithTilesIfNeeded(); 270 #endif 271 265 272 Ewk_Paint_Context* context = ewk_paint_context_from_image_new(smartData->backing_store); 266 273 ewk_paint_context_save(context); -
trunk/Source/WebKit/efl/tests/test_ewk_view.cpp
r133000 r134743 73 73 74 74 /** 75 * @brief Checking whether function properly get/set fullscreen setting value. 76 */ 77 TEST_F(EWKTestBase, ewk_view_setting_tiled_backing_store) 78 { 79 loadUrl(); 80 ASSERT_FALSE(ewk_view_setting_tiled_backing_store_enabled_get(webView())); 81 82 #if USE(TILED_BACKING_STORE) 83 ASSERT_TRUE(ewk_view_setting_tiled_backing_store_enabled_set(webView(), true)); 84 ASSERT_TRUE(ewk_view_setting_tiled_backing_store_enabled_get(webView())); 85 86 ASSERT_TRUE(ewk_view_setting_tiled_backing_store_enabled_set(webView(), false)); 87 ASSERT_FALSE(ewk_view_setting_tiled_backing_store_enabled_get(webView())); 88 #else 89 ASSERT_FALSE(ewk_view_setting_tiled_backing_store_enabled_set(webView(), true)); 90 ASSERT_FALSE(ewk_view_setting_tiled_backing_store_enabled_get(webView())); 91 92 ASSERT_FALSE(ewk_view_setting_tiled_backing_store_enabled_set(webView(), false)); 93 ASSERT_FALSE(ewk_view_setting_tiled_backing_store_enabled_get(webView())); 94 #endif 95 } 96 97 /** 75 98 * @brief Checking whether function returns proper context menu structure. 76 99 * -
trunk/Tools/ChangeLog
r134717 r134743 1 2012-11-14 Ryuan Choi <ryuan.choi@gmail.com> 2 3 [EFL] Port tiled backing store 4 https://bugs.webkit.org/show_bug.cgi?id=71352 5 6 Reviewed by Gyuyoung Kim. 7 8 * EWebLauncher/main.c: Added option to test the WebCore's tiled backing store. 9 (_User_Arguments): 10 (windowCreate): 11 (parseUserArguments): 12 1 13 2012-11-14 Andy Estes <aestes@apple.com> 2 14 -
trunk/Tools/EWebLauncher/main.c
r133714 r134743 127 127 ECORE_GETOPT_STORE_STR 128 128 ('t', "theme", "path to read the theme file from."), 129 ECORE_GETOPT_STORE_DEF_BOOL 130 ('T', "tiled-backing-store", "enable/disable WebCore's tiled backingstore(ewk_view_single only)", 0), 129 131 ECORE_GETOPT_STORE_STR 130 132 ('U', "user-agent", "custom user agent string to use."), … … 148 150 char *backingStore; 149 151 Eina_Bool enableEncodingDetector; 152 Eina_Bool enableTiledBackingStore; 150 153 Eina_Bool isFlattening; 151 154 Eina_Bool isFullscreen; … … 848 851 app->browser = ewk_view_single_add(app->evas); 849 852 info("backing store: single\n"); 853 854 ewk_view_setting_tiled_backing_store_enabled_set(app->browser, userArgs->enableTiledBackingStore); 850 855 } 851 856 … … 933 938 userArgs->backingStore = (char *)backingStores[1]; 934 939 userArgs->enableEncodingDetector = EINA_FALSE; 940 userArgs->enableTiledBackingStore = EINA_FALSE; 935 941 userArgs->isFlattening = EINA_FALSE; 936 942 userArgs->isFullscreen = EINA_FALSE; … … 951 957 ECORE_GETOPT_VALUE_PTR_CAST(userArgs->geometry), 952 958 ECORE_GETOPT_VALUE_STR(userArgs->theme), 959 ECORE_GETOPT_VALUE_BOOL(userArgs->enableTiledBackingStore), 953 960 ECORE_GETOPT_VALUE_STR(userArgs->userAgent), 954 961 ECORE_GETOPT_VALUE_INT(verbose),
Note: See TracChangeset
for help on using the changeset viewer.