Changeset 136234 in webkit
- Timestamp:
- Nov 30, 2012 6:20:37 AM (11 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r136231 r136234 1 2012-11-30 Joone Hur <joone.hur@intel.com> 2 3 [EFL]Drawing artifacts while resizing the view 4 https://bugs.webkit.org/show_bug.cgi?id=101288 5 6 Reviewed by Kenneth Rohde Christiansen. 7 8 An Evas GL surface is recreated when the window is resized, but the update of the surface is 9 asynchronously done, which gives Evas a chance of painting the empty surface on the screen. 10 As a result, the flickering problem happens while resizing the view. 11 So this patch allows to create an Evas GL surface synchronously with the update of the surface. 12 13 * UIProcess/API/efl/EwkViewImpl.cpp: 14 (EwkViewImpl::EwkViewImpl): Set m_pendingSurfaceResize to false. 15 (EwkViewImpl::displayTimerFired): Create an Evas GL surface. 16 * UIProcess/API/efl/EwkViewImpl.h: 17 (EwkViewImpl::setNeedsSurfaceResize): Added. 18 (EwkViewImpl): 19 * UIProcess/API/efl/ewk_view.cpp: 20 (_ewk_view_smart_calculate): Set m_pendingSurfaceResize to true. 21 1 22 2012-11-30 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> 2 23 -
trunk/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp
r136000 r136234 115 115 : m_view(view) 116 116 , m_context(context) 117 #if USE(ACCELERATED_COMPOSITING) 118 , m_pendingSurfaceResize(false) 119 #endif 117 120 , m_pageClient(behavior == DefaultBehavior ? PageClientDefaultImpl::create(this) : PageClientLegacyImpl::create(this)) 118 121 , m_pageProxy(m_context->webContext()->createWebPage(m_pageClient.get(), pageGroup.get())) … … 362 365 Ewk_View_Smart_Data* sd = smartData(); 363 366 364 evas_gl_make_current(m_evasGL.get(), evasGLSurface(), evasGLContext()); 367 if (m_pendingSurfaceResize) { 368 // Create a GL surface here so that Evas has no chance of painting to an empty GL surface. 369 createGLSurface(IntSize(sd->view.w, sd->view.h)); 370 m_pendingSurfaceResize = false; 371 } else 372 evas_gl_make_current(m_evasGL.get(), evasGLSurface(), evasGLContext()); 365 373 366 374 // We are supposed to clip to the actual viewport, nothing less. -
trunk/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.h
r136000 r136234 162 162 bool enterAcceleratedCompositingMode(); 163 163 bool exitAcceleratedCompositingMode(); 164 void setNeedsSurfaceResize() { m_pendingSurfaceResize = true; } 164 165 #endif 165 166 … … 247 248 OwnPtr<WebKit::EvasGLContext> m_evasGLContext; 248 249 OwnPtr<WebKit::EvasGLSurface> m_evasGLSurface; 250 bool m_pendingSurfaceResize; 249 251 #endif 250 252 OwnPtr<WebKit::PageClientBase> m_pageClient; -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp
r136102 r136234 388 388 389 389 #if USE(ACCELERATED_COMPOSITING) 390 if (width && height) 391 impl->createGLSurface(IntSize(width, height)); 390 impl->setNeedsSurfaceResize(); 392 391 #endif 393 392 #if USE(TILED_BACKING_STORE)
Note: See TracChangeset
for help on using the changeset viewer.