Hi Thomas,<br><br>Yes it looks like a big effort indeed.<br>Would it be up to the renderer how their image representation is stored internally? It seems like the various renderers would use different parameretes in imageObj, so would it somewhat to be represented as an untyped parameter (void* for example) or we expect all of those would represent the images as raw RGBA rasters? Or they should provide their I/O operations between&nbsp; their internal representation and the RGBA efficiently? <br>
I guess not all of the renderers would have builtin support for outputting png or jpeg images therefore this option should be pulled outside of the scope of the renderers in addition.<br><br><br>Best regards,<br><br>Tamas<br>
<br><br><br><br><br><div class="gmail_quote">2009/2/5 thomas bonfort <span dir="ltr">&lt;<a href="mailto:thomas.bonfort@gmail.com">thomas.bonfort@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Tamas,<br>
the effort is deeper than just having a vtable mimicking the<br>
DrawMarkerSymbol/msDrawMarkerSymbolGD/msDrawMarkerSymbolAGG , as this<br>
leaves the same amount of code duplication as now.<br>
the aim will be to define a fine-grained rendering api, in the case of<br>
your email, down to drawEllipse(width,height,angle,color, ...)<br>
<br>
more detail at <a href="http://trac.osgeo.org/mapserver/wiki/UnifyingTheRenderingInterfaces" target="_blank">http://trac.osgeo.org/mapserver/wiki/UnifyingTheRenderingInterfaces</a><br>
(rather outdated), or the initial implementation in the graphics<br>
sandbox (<a href="http://trac.osgeo.org/mapserver/browser/sandbox/graphics/maprendering.c#L435" target="_blank">http://trac.osgeo.org/mapserver/browser/sandbox/graphics/maprendering.c#L435</a>)<br>
<br>
I&#39;d be very happy to get your feedback on this,<br>
<font color="#888888"><br>
thomas<br>
</font><div><div></div><div class="Wj3C7c"><br>
On Thu, Feb 5, 2009 at 16:09, Tamas Szekeres &lt;<a href="mailto:szekerest@gmail.com">szekerest@gmail.com</a>&gt; wrote:<br>
&gt; Hi Thomas,<br>
&gt;<br>
&gt; I&#39;d be curious to know what level of detail will be chosen when selecting<br>
&gt; the functions to be exposed in the vtable. I thought we&#39;ll probably select<br>
&gt; those functions/operatons which are currently provide the branching between<br>
&gt; the renderers.<br>
&gt; In this particular case we would probably add a DrawMarkerSymbol to<br>
&gt; represent the renderer specific msDrawMarkerSymbolGD / msDrawMarkerSymbolAGG<br>
&gt; etc, variations.<br>
&gt; In this regard it remains up to the renderer how the default symbol is drawn<br>
&gt; in effect.<br>
&gt;<br>
&gt; Would you describe in more details what you have in your mind about the<br>
&gt; desired vtable architecture, I&#39;m really interested in.<br>
&gt;<br>
&gt; Best regards,<br>
&gt;<br>
&gt; Tamas<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; 2009/2/5 thomas bonfort &lt;<a href="mailto:thomas.bonfort@gmail.com">thomas.bonfort@gmail.com</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt; Tamas,<br>
&gt;&gt; those kind of inconsistencies (as there are quite a few others) will<br>
&gt;&gt; hopefully be a thing of the past once we switch to the vtable<br>
&gt;&gt; rendering architecture. I&#39;d favor leaving things as they are for 5.4<br>
&gt;&gt; and wait for 6.0 for introducing and documenting these changes.<br>
&gt;&gt;<br>
&gt;&gt; best regards,<br>
&gt;&gt; thomas<br>
&gt;&gt;<br>
&gt;&gt; On Thu, Feb 5, 2009 at 01:19, Tamas Szekeres &lt;<a href="mailto:szekerest@gmail.com">szekerest@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt; Folks,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Currently the GD and AGG renderer behaves differently when drawing a<br>
&gt;&gt; &gt; point<br>
&gt;&gt; &gt; with no symbol specified. In the code I can see something like for AGG<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; if(style-&gt;symbol == 0) { // simply draw a circle of the specified color<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; ren-&gt;renderEllipse(p-&gt;x+ox,p-&gt;y+oy,size,size,0,agg_color,agg_ocolor,width);<br>
&gt;&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; return;<br>
&gt;&gt; &gt; &nbsp; &nbsp; }<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; The corresponding code for GD looks like:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; if(style-&gt;symbol == 0 &amp;&amp; fc &gt;= 0) { /* simply draw a single pixel of the<br>
&gt;&gt; &gt; specified color */<br>
&gt;&gt; &gt; &nbsp; &nbsp; gdImageSetPixel(img, (int)(p-&gt;x + ox), (int)(p-&gt;y + oy), fc);<br>
&gt;&gt; &gt; &nbsp; &nbsp; return;<br>
&gt;&gt; &gt; &nbsp; }<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Wouldn&#39;t it be reasonable to use the same approach for the different<br>
&gt;&gt; &gt; renderers? I would prefer the AGG version to be followed.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Best regards,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Tamas<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; mapserver-dev mailing list<br>
&gt;&gt; &gt; <a href="mailto:mapserver-dev@lists.osgeo.org">mapserver-dev@lists.osgeo.org</a><br>
&gt;&gt; &gt; <a href="http://lists.osgeo.org/mailman/listinfo/mapserver-dev" target="_blank">http://lists.osgeo.org/mailman/listinfo/mapserver-dev</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>