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 {
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))
#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 {
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);