OSDN Git Service

Merge WebKit at r84325: Initial merge by git.
[android-x86/external-webkit.git] / Source / WebCore / platform / graphics / BitmapImage.h
index c8cf0ab..8d9cd94 100644 (file)
@@ -53,11 +53,11 @@ namespace WebCore {
     struct FrameData;
 }
 
-// This complicated-looking declaration tells the FrameData Vector that it should copy without
-// invoking our constructor or destructor. This allows us to have a vector even for a struct
-// that's not copyable.
 namespace WTF {
-    template<> struct VectorTraits<WebCore::FrameData> : public SimpleClassVectorTraits {};
+    // FIXME: This declaration gives FrameData a default constructor that zeroes
+    // all its data members, even though FrameData's default constructor defined
+    // below does not zero all its data members. One of these must be wrong!
+    template<> struct VectorTraits<WebCore::FrameData> : public SimpleClassVectorTraits { };
 }
 
 namespace WebCore {
@@ -139,8 +139,9 @@ public:
     virtual CFDataRef getTIFFRepresentation();
 #endif
     
-#if PLATFORM(CG)
+#if USE(CG)
     virtual CGImageRef getCGImageRef();
+    virtual CGImageRef getFirstCGImageRefOfSize(const IntSize&);
 #endif
 
 #if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS))
@@ -160,6 +161,14 @@ public:
 #endif
 
     virtual NativeImagePtr nativeImageForCurrentFrame() { return frameAtIndex(currentFrame()); }
+    bool frameHasAlphaAtIndex(size_t); 
+
+#if !ASSERT_DISABLED
+    bool notSolidColor()
+    {
+        return size().width() != 1 || size().height() != 1 || frameCount() > 1;
+    }
+#endif
 
 protected:
     enum RepetitionCountStatus {
@@ -190,7 +199,6 @@ protected:
     NativeImagePtr frameAtIndex(size_t);
     bool frameIsCompleteAtIndex(size_t);
     float frameDurationAtIndex(size_t);
-    bool frameHasAlphaAtIndex(size_t); 
 
     // Decodes and caches a frame. Never accessed except internally.
     void cacheFrame(size_t index);