Bug 215300

Summary: Address additional review feedback from r265360
Product: WebKit Reporter: Kenneth Russell <kbr>
Component: CanvasAssignee: Kenneth Russell <kbr>
Status: ASSIGNED    
Severity: Normal CC: dino, jdarpinian, sabouhallawa, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 183438    
Bug Blocks:    

Kenneth Russell
Reported 2020-08-07 16:26:24 PDT
From Bug 183438: - Refactor copyPremultipliedToPremultiplied and copyUnpremultipliedToUnpremultiplied in Source/WebCore/platform/graphics/ImageBufferBackend.cpp . - Remove comment which was added in place of the previous assert in copyImagePixelsAccelerated in Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp .
Attachments
Said Abou-Hallawa
Comment 1 2020-08-10 16:30:41 PDT
Also - The members: m_originClean, m_premultiplyAlpha and m_forciblyPremultiplyAlpha of ImageBitmap can be replaced by ImageBuffer::SerializationState. This will eliminate the need to sync the members of ImageBitmap and ImageBuffer::SerializationState. Also the whole struct can be copied in many places from std::pair<std::unique_ptr<ImageBuffer>, ImageBuffer::SerializationState> to ImageBitmap and vice versa.
Said Abou-Hallawa
Comment 2 2020-08-12 10:19:13 PDT
Another approach is to make SerializationState enum class type and have an OptionSet< SerializationState> be stored in ImageBitmap: enum class SerializationState { OriginClean = 1 << 0, PremultiplyAlpha = 1 << 1, ForciblyPremultiplyAlpha = 1 << 2, }; class ImageBitmap { public: bool originClean() const { return m_serializationState.contains(SerializationState::OriginClean); } private: OptionSet<SerializationState> m_serializationState; };
Radar WebKit Bug Importer
Comment 3 2020-08-14 16:27:40 PDT
Note You need to log in before you can comment on or make changes to this bug.