Bug 11436 - KCanvas rework - Part I
Summary: KCanvas rework - Part I
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: SVG (show other bugs)
Version: 420+
Hardware: Mac OS X 10.4
: P2 Normal
Assignee: Nikolas Zimmermann
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-10-27 11:10 PDT by Nikolas Zimmermann
Modified: 2006-10-31 04:41 PST (History)
2 users (show)

See Also:


Attachments
Chunk #1: kcanvas-changes.diff, Initial patch (33.88 KB, patch)
2006-10-27 11:28 PDT, Nikolas Zimmermann
oliver: review+
Details | Formatted Diff | Diff
Chunk #2: kcanvas-qt-changes.diff, Initial patch (10.30 KB, patch)
2006-10-27 11:30 PDT, Nikolas Zimmermann
oliver: review+
Details | Formatted Diff | Diff
Chunk #3: kcanvas-quartz-changes.diff, Initial patch (23.62 KB, patch)
2006-10-27 11:31 PDT, Nikolas Zimmermann
oliver: review+
Details | Formatted Diff | Diff
Chunk #4: platform-changes.diff, Initial patch (74.31 KB, patch)
2006-10-27 11:31 PDT, Nikolas Zimmermann
oliver: review+
Details | Formatted Diff | Diff
Chunk #5: platform-qt-changes.diff, Initial patch (7.33 KB, patch)
2006-10-27 11:32 PDT, Nikolas Zimmermann
oliver: review+
Details | Formatted Diff | Diff
Chunk #6: platform-quartz-changes.diff, Initial patch (11.99 KB, patch)
2006-10-27 11:33 PDT, Nikolas Zimmermann
oliver: review+
Details | Formatted Diff | Diff
Chunk #7: ksvg-changes.diff, Initial patch (15.12 KB, patch)
2006-10-27 11:34 PDT, Nikolas Zimmermann
oliver: review+
Details | Formatted Diff | Diff
Chunk #8: rendering-changes.diff, Initial patch (9.10 KB, patch)
2006-10-27 11:35 PDT, Nikolas Zimmermann
oliver: review+
Details | Formatted Diff | Diff
Chunk #9: build-system-changes.diff, Initial patch (48.63 KB, patch)
2006-10-27 11:37 PDT, Nikolas Zimmermann
aroben: review-
Details | Formatted Diff | Diff
Final patch including ChangeLogs (265.14 KB, patch)
2006-10-29 14:17 PST, Nikolas Zimmermann
no flags Details | Formatted Diff | Diff
Updated final patch (263.32 KB, patch)
2006-10-30 16:27 PST, Nikolas Zimmermann
oliver: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Nikolas Zimmermann 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
Comment 1 Nikolas Zimmermann 2006-10-27 11:28:42 PDT
Created attachment 11245 [details]
Chunk #1: kcanvas-changes.diff, Initial patch
Comment 2 Nikolas Zimmermann 2006-10-27 11:30:16 PDT
Created attachment 11246 [details]
Chunk #2: kcanvas-qt-changes.diff, Initial patch
Comment 3 Nikolas Zimmermann 2006-10-27 11:31:02 PDT
Created attachment 11247 [details]
Chunk #3: kcanvas-quartz-changes.diff, Initial patch
Comment 4 Nikolas Zimmermann 2006-10-27 11:31:50 PDT
Created attachment 11248 [details]
Chunk #4: platform-changes.diff, Initial patch
Comment 5 Nikolas Zimmermann 2006-10-27 11:32:39 PDT
Created attachment 11249 [details]
Chunk #5: platform-qt-changes.diff, Initial patch
Comment 6 Nikolas Zimmermann 2006-10-27 11:33:23 PDT
Created attachment 11250 [details]
Chunk #6: platform-quartz-changes.diff, Initial patch
Comment 7 Nikolas Zimmermann 2006-10-27 11:34:42 PDT
Created attachment 11251 [details]
Chunk #7: ksvg-changes.diff, Initial patch
Comment 8 Nikolas Zimmermann 2006-10-27 11:35:44 PDT
Created attachment 11252 [details]
Chunk #8: rendering-changes.diff, Initial patch
Comment 9 Nikolas Zimmermann 2006-10-27 11:37:19 PDT
Created attachment 11253 [details]
Chunk #9: build-system-changes.diff, Initial patch
Comment 10 Nikolas Zimmermann 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
Comment 11 Nikolas Zimmermann 2006-10-29 14:17:13 PST
Created attachment 11277 [details]
Final patch including ChangeLogs

No LayoutTests broken. No new leaks introduced.
Comment 12 Adam Roben (:aroben) 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.
Comment 13 Nikolas Zimmermann 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.
Comment 14 Nikolas Zimmermann 2006-10-31 04:41:42 PST
Landed by Oliver in r17647.