2011-01-18 Anders Carlsson <andersca@apple.com>
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 18 Jan 2011 23:08:18 +0000 (23:08 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 18 Jan 2011 23:08:18 +0000 (23:08 +0000)
        Reviewed by Darin Adler.

        Factor code to create the backing store bitmap context out into a new function
        https://bugs.webkit.org/show_bug.cgi?id=52670

        * UIProcess/BackingStore.h:
        * UIProcess/mac/BackingStoreMac.mm:
        (WebKit::BackingStore::backingStoreContext):
        Create the backing store context.

        (WebKit::BackingStore::incorporateUpdate):
        Call backingStoreContext.

        (WebKit::BackingStore::scroll):
        Assert that the context is not null.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@76072 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/BackingStore.h
Source/WebKit2/UIProcess/mac/BackingStoreMac.mm

index 7da0ffc4b2cf18aceab0f38cab0c45c7d88054c1..3d3bd87733398738e1091c959d6525523988af45 100644 (file)
@@ -1,3 +1,21 @@
+2011-01-18  Anders Carlsson  <andersca@apple.com>
+
+        Reviewed by Darin Adler.
+
+        Factor code to create the backing store bitmap context out into a new function
+        https://bugs.webkit.org/show_bug.cgi?id=52670
+
+        * UIProcess/BackingStore.h:
+        * UIProcess/mac/BackingStoreMac.mm:
+        (WebKit::BackingStore::backingStoreContext):
+        Create the backing store context.
+
+        (WebKit::BackingStore::incorporateUpdate):
+        Call backingStoreContext.
+
+        (WebKit::BackingStore::scroll):
+        Assert that the context is not null.
+
 2011-01-18  Anders Carlsson  <andersca@apple.com>
 
         Reviewed by Dan Bernstein.
index de8c4a30a98ddb915a85d23b2f17561fb69ee90e..de9152ade5893ca42d891d31716aa0d852cb714e 100644 (file)
@@ -65,6 +65,8 @@ private:
     WebCore::IntSize m_size;
 
 #if PLATFORM(MAC)
+    CGContextRef backingStoreContext();
+
     RetainPtr<CGContextRef> m_bitmapContext;
 #endif
 };
index 1c3c07c0b8f44a705ae5f43ae46f7a0a176b663e..db06e79411e71ef1ea6925c1eb396cbfea5bb90b 100644 (file)
@@ -41,14 +41,8 @@ void BackingStore::paint(PlatformGraphicsContext context, const IntRect& rect)
     paintBitmapContext(context, m_bitmapContext.get(), rect.location(), rect);
 }
 
-void BackingStore::incorporateUpdate(const UpdateInfo& updateInfo)
+CGContextRef BackingStore::backingStoreContext()
 {
-    ASSERT(m_size == updateInfo.viewSize);
-
-    RefPtr<ShareableBitmap> bitmap = ShareableBitmap::create(updateInfo.updateRectBounds.size(), updateInfo.bitmapHandle);
-    if (!bitmap)
-        return;
-
     if (!m_bitmapContext) {
         RetainPtr<CGColorSpaceRef> colorSpace(AdoptCF, CGColorSpaceCreateDeviceRGB());
         
@@ -59,11 +53,24 @@ void BackingStore::incorporateUpdate(const UpdateInfo& updateInfo)
         CGContextScaleCTM(m_bitmapContext.get(), 1, -1);
     }
 
+    return m_bitmapContext.get();
+}
+
+void BackingStore::incorporateUpdate(const UpdateInfo& updateInfo)
+{
+    ASSERT(m_size == updateInfo.viewSize);
+
+    RefPtr<ShareableBitmap> bitmap = ShareableBitmap::create(updateInfo.updateRectBounds.size(), updateInfo.bitmapHandle);
+    if (!bitmap)
+        return;
+
+    CGContextRef context = backingStoreContext();
+
     scroll(updateInfo.scrollRect, updateInfo.scrollOffset);
 
     IntPoint updateRectLocation = updateInfo.updateRectBounds.location();
 
-    GraphicsContext graphicsContext(m_bitmapContext.get());
+    GraphicsContext graphicsContext(context);
 
     // Paint all update rects.
     for (size_t i = 0; i < updateInfo.updateRects.size(); ++i) {
@@ -80,6 +87,8 @@ void BackingStore::scroll(const IntRect& scrollRect, const IntSize& scrollOffset
     if (scrollOffset.isZero())
         return;
 
+    ASSERT(m_bitmapContext);
+
     CGContextSaveGState(m_bitmapContext.get());
 
     CGContextClipToRect(m_bitmapContext.get(), scrollRect);