[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 12:27:31 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 6ae01a01ea000dc060941cfe2314bd1389bffbba
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Aug 24 03:04:18 2010 +0000

    2010-08-23  Patrick Gansterer  <paroga at paroga.com>
    
            Reviewed by Adam Roben.
    
            Support all available biBitCount values in BitmapInfo
            https://bugs.webkit.org/show_bug.cgi?id=43724
    
            Add an enum with all possible values for biBitCount.
            Also remove explicit initialization of bmiHeader members,
            because that is already done in the constructor.
    
            * platform/win/BitmapInfo.cpp: Added property svn:eol-style.
            (WebCore::bitmapInfoForSize):
            (WebCore::BitmapInfo::create):
            (WebCore::BitmapInfo::createBottomUp):
            * platform/win/BitmapInfo.h: Added property svn:eol-style.
            (WebCore::BitmapInfo::):
            (WebCore::BitmapInfo::bytesPerLine):
            (WebCore::BitmapInfo::paddedBytesPerLine):
            (WebCore::BitmapInfo::paddedWidth):
            * platform/win/PopupMenuWin.cpp:
            (WebCore::PopupMenuWin::paint):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@65857 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index a17ce52..98fcbbb 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,26 @@
+2010-08-23  Patrick Gansterer  <paroga at paroga.com>
+
+        Reviewed by Adam Roben.
+
+        Support all available biBitCount values in BitmapInfo
+        https://bugs.webkit.org/show_bug.cgi?id=43724
+
+        Add an enum with all possible values for biBitCount.
+        Also remove explicit initialization of bmiHeader members,
+        because that is already done in the constructor.
+
+        * platform/win/BitmapInfo.cpp: Added property svn:eol-style.
+        (WebCore::bitmapInfoForSize):
+        (WebCore::BitmapInfo::create):
+        (WebCore::BitmapInfo::createBottomUp):
+        * platform/win/BitmapInfo.h: Added property svn:eol-style.
+        (WebCore::BitmapInfo::):
+        (WebCore::BitmapInfo::bytesPerLine):
+        (WebCore::BitmapInfo::paddedBytesPerLine):
+        (WebCore::BitmapInfo::paddedWidth):
+        * platform/win/PopupMenuWin.cpp:
+        (WebCore::PopupMenuWin::paint):
+
 2010-08-23  Kent Tamura  <tkent at chromium.org>
 
         Unreviewed, build fix for r65852.
@@ -21588,11 +21611,11 @@
 
         Set bmiHeader.biSize only at constructor.
 
-        * platform/win/BitmapInfo.cpp: Added property svn:eol-style.
+        * platform/win/BitmapInfo.cpp:
         (WebCore::bitmapInfoForSize):
         (WebCore::BitmapInfo::create):
         (WebCore::BitmapInfo::createBottomUp):
-        * platform/win/BitmapInfo.h: Added property svn:eol-style.
+        * platform/win/BitmapInfo.h:
         (WebCore::BitmapInfo::is16bit):
         (WebCore::BitmapInfo::is32bit):
         (WebCore::BitmapInfo::width):
diff --git a/WebCore/platform/win/BitmapInfo.cpp b/WebCore/platform/win/BitmapInfo.cpp
index 514f722..610a27e 100644
--- a/WebCore/platform/win/BitmapInfo.cpp
+++ b/WebCore/platform/win/BitmapInfo.cpp
@@ -33,21 +33,14 @@
 
 namespace WebCore {
 
-BitmapInfo bitmapInfoForSize(int width, int height, WORD bitCount)
+BitmapInfo bitmapInfoForSize(int width, int height, BitmapInfo::BitCount bitCount)
 {
-    ASSERT_ARG(bitCount, bitCount == 16 || bitCount == 32);
-
     BitmapInfo bitmapInfo;
     bitmapInfo.bmiHeader.biWidth         = width;
     bitmapInfo.bmiHeader.biHeight        = height;
     bitmapInfo.bmiHeader.biPlanes        = 1;
     bitmapInfo.bmiHeader.biBitCount      = bitCount;
     bitmapInfo.bmiHeader.biCompression   = BI_RGB;
-    bitmapInfo.bmiHeader.biSizeImage     = 0;
-    bitmapInfo.bmiHeader.biXPelsPerMeter = 0;
-    bitmapInfo.bmiHeader.biYPelsPerMeter = 0;
-    bitmapInfo.bmiHeader.biClrUsed       = 0;
-    bitmapInfo.bmiHeader.biClrImportant  = 0;
 
     return bitmapInfo;
 }
@@ -58,12 +51,12 @@ BitmapInfo::BitmapInfo()
     bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
 }
 
-BitmapInfo BitmapInfo::create(const IntSize& size, WORD bitCount)
+BitmapInfo BitmapInfo::create(const IntSize& size, BitCount bitCount)
 {
     return bitmapInfoForSize(size.width(), size.height(), bitCount);
 }
 
-BitmapInfo BitmapInfo::createBottomUp(const IntSize& size, WORD bitCount)
+BitmapInfo BitmapInfo::createBottomUp(const IntSize& size, BitCount bitCount)
 {
     return bitmapInfoForSize(size.width(), -size.height(), bitCount);
 }
diff --git a/WebCore/platform/win/BitmapInfo.h b/WebCore/platform/win/BitmapInfo.h
index d1c3319..caf1b31 100644
--- a/WebCore/platform/win/BitmapInfo.h
+++ b/WebCore/platform/win/BitmapInfo.h
@@ -35,19 +35,30 @@
 namespace WebCore {
 
 struct BitmapInfo : public BITMAPINFO {
+    enum BitCount {
+        BitCount1 = 1,
+        BitCount4 = 4,
+        BitCount8 = 8,
+        BitCount16 = 16,
+        BitCount24 = 24,
+        BitCount32 = 32
+    };
+
     BitmapInfo();
-    static BitmapInfo create(const IntSize&, WORD bitCount = 32);
-    static BitmapInfo createBottomUp(const IntSize&, WORD bitCount = 32);
+    static BitmapInfo create(const IntSize&, BitCount bitCount = BitCount32);
+    static BitmapInfo createBottomUp(const IntSize&, BitCount bitCount = BitCount32);
 
     bool is16bit() const { return bmiHeader.biBitCount == 16; }
     bool is32bit() const { return bmiHeader.biBitCount == 32; }
     unsigned width() const { return abs(bmiHeader.biWidth); }
     unsigned height() const { return abs(bmiHeader.biHeight); }
     IntSize size() const { return IntSize(width(), height()); }
-    unsigned paddedWidth() const { return is16bit() ? (width() + 1) & ~0x1 : width(); }
+    unsigned bytesPerLine() const { return (width() * bmiHeader.biBitCount + 7) / 8; }
+    unsigned paddedBytesPerLine() const { return (bytesPerLine() + 3) & ~0x3; }
+    unsigned paddedWidth() const { return paddedBytesPerLine() * 8 / bmiHeader.biBitCount; }
     unsigned numPixels() const { return paddedWidth() * height(); }
-    unsigned paddedBytesPerLine() const { return is16bit() ? paddedWidth() * 2 : width() * 4; }
-    unsigned bytesPerLine() const { return width() * bmiHeader.biBitCount / 8; }};
+};
+
 } // namespace WebCore
 
 #endif // BitmapInfo_h
diff --git a/WebCore/platform/win/PopupMenuWin.cpp b/WebCore/platform/win/PopupMenuWin.cpp
index aaadc53..6e22024 100644
--- a/WebCore/platform/win/PopupMenuWin.cpp
+++ b/WebCore/platform/win/PopupMenuWin.cpp
@@ -581,7 +581,7 @@ void PopupMenuWin::paint(const IntRect& damageRect, HDC hdc)
     }
     if (!m_bmp) {
 #if OS(WINCE)
-        BitmapInfo bitmapInfo = BitmapInfo::createBottomUp(clientRect().size(), 16);
+        BitmapInfo bitmapInfo = BitmapInfo::createBottomUp(clientRect().size(), BitmapInfo::BitCount16);
 #else
         BitmapInfo bitmapInfo = BitmapInfo::createBottomUp(clientRect().size());
 #endif

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list