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