Phil, I asked several times how to contribute back marlin to openjdk since may >> 2014... as pisces patches ? or as an alternative renderer ? >> >> > As I've asked for a long time, a webrev you create against openJDK is what > I'd like to see. > I can't assess what a delta it would be against pisces without that. >
Do you want me to send you asap a webrev between JDK9 pisces and latest marlin (0.4.5) to let you see that delta ? > But I would suppose its reached the point where its such a large delta that > side-by-side alternate renderer is the way to go for now. > Or as you proposed, do you prefer a webrev as a standalone renderer (sun.java2d.marlin) ? I propose to create for now a git branch "openjdk" to prepare the new "standalone renderer" variant. > If you grant me rights to push code into the graphics rasterizer project, >> I would push the marlin source code to let you study it and test it with >> all necessary test suites. >> >> > That is what Dalibor and others recommended and have been working to help > you with. This is in progress, thanks. > > Does it alter any behaviours or touch any code that does not involve >> > the marlin code path ? >> >> I modified the the sun.java2d.pipe.AAShapePipe classes (tile cache) and >> added the awt.geom.FastPath2d to trim and clone paths efficiently >> (createStrokedShape). >> These changes can be considered minor and trivial (may be optional). >> >> > FastPath2D would be public API. Perhaps that should be a separate > discussion > FastPath2D is only a improvement of the Path2D class to trim arrays in the clone() method but there is another solution: provide a new Path2D constructor with given data arrays. I agree it is another topic but really used by marlin to avoid too many array resizing. > Lets be clear. We'd love this stuff if its as good as we are told but we do > not have the time to be more proactive on this. > Great ! > Also we cannot legally "grab" this stuff anyway no matter how much you > say its OK. You need to contribute it into OpenJDK by creating the webrev > and submitting it. > Ok, I have to submit a webrev. There is two marlin variants: - marlin 0.4.5 - marlin 0.5.5 using Unsafe for array allocation and random access to store edge data as struct [float + int] Note: marlin 0.5.5 is 10% faster in my benchmarks. What variant do you prefer ? > So > 1. Work with Dalibor to get the rasteriser project have a forest at > http://hg.openjdk.java.net/ > 2. Integrate your marlin code there in way that co-exists with pisces and > does not > introduce any new APIs > 3. We will then be able to more easily create builds to ask SQE run tests > against it > and so forth. > 4. It then becomes much easier to see the path into putting it into the > main repo. > Ok, that plan looks good. I think step 2 will need some work (refactoring, code cleanup) in collaboration with you & clemens ... Cheers, Laurent