Bug 11436

Summary: KCanvas rework - Part I
Product: WebKit Reporter: Nikolas Zimmermann <zimmermann>
Component: SVGAssignee: Nikolas Zimmermann <zimmermann>
Status: RESOLVED FIXED    
Severity: Normal CC: eric, mjs
Priority: P2    
Version: 420+   
Hardware: Mac   
OS: OS X 10.4   
Attachments:
Description Flags
Chunk #1: kcanvas-changes.diff, Initial patch
oliver: review+
Chunk #2: kcanvas-qt-changes.diff, Initial patch
oliver: review+
Chunk #3: kcanvas-quartz-changes.diff, Initial patch
oliver: review+
Chunk #4: platform-changes.diff, Initial patch
oliver: review+
Chunk #5: platform-qt-changes.diff, Initial patch
oliver: review+
Chunk #6: platform-quartz-changes.diff, Initial patch
oliver: review+
Chunk #7: ksvg-changes.diff, Initial patch
oliver: review+
Chunk #8: rendering-changes.diff, Initial patch
oliver: review+
Chunk #9: build-system-changes.diff, Initial patch
aroben: review-
Final patch including ChangeLogs
none
Updated final patch oliver: review+

Nikolas Zimmermann
Reported 2006-10-27 11:10:51 PDT
There is no need for KCanvas in WebKit anymore. As long-term solution it has to die, and the needed functionality should be merged into platform/ code. In this first patch chunk, I'll concentrate on moving resources from kcanvas/ into a new directory platform/graphics. Resources previously living in kcanvas/device/quartz are moved to platform/graphics/quartz (same for the Qt device). I tried to keep source-code differences low. For instance you'll notice the virtual createResource() function in the KRenderingDevice (Qt/Quartz) is not needed anymore, as in platform/graphics we don't have the class hierarchy "KCanvasMaskerQuartz inherits from KCanvasMasker" anymore, but instead have one single GraphicsResourceMasker file, which just leaves out implementations of certain functions (ie. applyMask()) and leaves that to the platform specific code. So this concept is identical to the rest of platform/ now. In an upcoming patch, these creation stuff will be cleaned up: - remove createResource() from KRenderingDevice, and just create the instances of the needed objects directly in the SVG* classes - adapt the last resource(s): KCanvasFilter to the new concept - split the dozen of classes up into pieces (the general one-file-by-class rule) The real aim is to kill KRenderingDevice/KRenderingDeviceContext and integrate within GraphicsContext - that will make SVG much more "integrated" into WebKit. Uploading patches soon, as it's quite large I'll split up into some parts. I am aware the general rule is to split up large patches into several seperated bug reports, though these chunks aren't meant to be commited so far. Once they are discussed/reviewed I'll create a final patch concating all the chunk patches, including ChangeLogs, which can be commited in one-shot. I hope this way is acceptable. Cheers, Niko
Attachments
Chunk #1: kcanvas-changes.diff, Initial patch (33.88 KB, patch)
2006-10-27 11:28 PDT, Nikolas Zimmermann
oliver: review+
Chunk #2: kcanvas-qt-changes.diff, Initial patch (10.30 KB, patch)
2006-10-27 11:30 PDT, Nikolas Zimmermann
oliver: review+
Chunk #3: kcanvas-quartz-changes.diff, Initial patch (23.62 KB, patch)
2006-10-27 11:31 PDT, Nikolas Zimmermann
oliver: review+
Chunk #4: platform-changes.diff, Initial patch (74.31 KB, patch)
2006-10-27 11:31 PDT, Nikolas Zimmermann
oliver: review+
Chunk #5: platform-qt-changes.diff, Initial patch (7.33 KB, patch)
2006-10-27 11:32 PDT, Nikolas Zimmermann
oliver: review+
Chunk #6: platform-quartz-changes.diff, Initial patch (11.99 KB, patch)
2006-10-27 11:33 PDT, Nikolas Zimmermann
oliver: review+
Chunk #7: ksvg-changes.diff, Initial patch (15.12 KB, patch)
2006-10-27 11:34 PDT, Nikolas Zimmermann
oliver: review+
Chunk #8: rendering-changes.diff, Initial patch (9.10 KB, patch)
2006-10-27 11:35 PDT, Nikolas Zimmermann
oliver: review+
Chunk #9: build-system-changes.diff, Initial patch (48.63 KB, patch)
2006-10-27 11:37 PDT, Nikolas Zimmermann
aroben: review-
Final patch including ChangeLogs (265.14 KB, patch)
2006-10-29 14:17 PST, Nikolas Zimmermann
no flags
Updated final patch (263.32 KB, patch)
2006-10-30 16:27 PST, Nikolas Zimmermann
oliver: review+
Nikolas Zimmermann
Comment 1 2006-10-27 11:28:42 PDT
Created attachment 11245 [details] Chunk #1: kcanvas-changes.diff, Initial patch
Nikolas Zimmermann
Comment 2 2006-10-27 11:30:16 PDT
Created attachment 11246 [details] Chunk #2: kcanvas-qt-changes.diff, Initial patch
Nikolas Zimmermann
Comment 3 2006-10-27 11:31:02 PDT
Created attachment 11247 [details] Chunk #3: kcanvas-quartz-changes.diff, Initial patch
Nikolas Zimmermann
Comment 4 2006-10-27 11:31:50 PDT
Created attachment 11248 [details] Chunk #4: platform-changes.diff, Initial patch
Nikolas Zimmermann
Comment 5 2006-10-27 11:32:39 PDT
Created attachment 11249 [details] Chunk #5: platform-qt-changes.diff, Initial patch
Nikolas Zimmermann
Comment 6 2006-10-27 11:33:23 PDT
Created attachment 11250 [details] Chunk #6: platform-quartz-changes.diff, Initial patch
Nikolas Zimmermann
Comment 7 2006-10-27 11:34:42 PDT
Created attachment 11251 [details] Chunk #7: ksvg-changes.diff, Initial patch
Nikolas Zimmermann
Comment 8 2006-10-27 11:35:44 PDT
Created attachment 11252 [details] Chunk #8: rendering-changes.diff, Initial patch
Nikolas Zimmermann
Comment 9 2006-10-27 11:37:19 PDT
Created attachment 11253 [details] Chunk #9: build-system-changes.diff, Initial patch
Nikolas Zimmermann
Comment 10 2006-10-27 11:38:30 PDT
Sorry for the patch flood, though I used a consisten naming scheme: Chunk #N - patch-name.diff, Initial Patch any new chunk will be named "Updated patch I" / "Updated patch II" etc.. :-) In case new patches are needed :-) Thanks a lot for looking into this. Niko
Nikolas Zimmermann
Comment 11 2006-10-29 14:17:13 PST
Created attachment 11277 [details] Final patch including ChangeLogs No LayoutTests broken. No new leaks introduced.
Adam Roben (:aroben)
Comment 12 2006-10-29 14:51:24 PST
Comment on attachment 11253 [details] Chunk #9: build-system-changes.diff, Initial patch If we're moving things out of platform and into graphics, we need to do it for all platforms. I'd also want Darin and/or Maciej to take a look at it before this gets landed.
Nikolas Zimmermann
Comment 13 2006-10-30 16:27:32 PST
Created attachment 11291 [details] Updated final patch Incorporated Darin's comments from private mail exchange. Location and file names changed.
Nikolas Zimmermann
Comment 14 2006-10-31 04:41:42 PST
Landed by Oliver in r17647.
Note You need to log in before you can comment on or make changes to this bug.