Julian,

Thanks for the quick response.  I have tried the scale factor with 0 and 
1, actually forgot to change it when sending the snippet.  Same result.

I have used the code in example3 successfully, but the rendering isn't 
as sharp as what I get with cairo.  I am converting some code over that 
used another incomplete gerber parsing library and cairo gives me really 
nice control of the final output.

I know the surface is declared properly and works because I can write 
directly to it, example:

        cairo_set_source_rgba (cr, 0,0,0, 1);
        cairo_paint (cr);

if I change the RBG values, I get a different color background.  What 
doesn't seem to be working is the routine:

gerbv_render_layer_to_cairo_target (cr, mainProject->file[i], 
&screenRenderInfo);

OR

gerbv_render_all_layers_to_cairo_target (mainProject, cr, 
&screenRenderInfo);

Again, any pointers would be helpful.  Perhaps I'm not delcaring 
something else I need to in screenRenderInfo?

Curtis


On 4/1/2011 11:34 AM, Julian Lamb wrote:
> Curtis,
>     A couple things....first, you have scale factors set to 0 in your 
> snippet.  They will need to be non-zero to show anything (1 is the 
> default).
>     Have you looked at using the 
> "gerbv_export_png_file_from_project_autoscaled" function?  It's 
> probably the preferred method of outputting a PNG file, since it will 
> handle scaling the board to fit your PNG resolution.  Look at 
> example3.c in the doc/example-code directory within the git tree.  You 
> can avoid ever having to deal with raw cairo surfaces using this 
> function.  Hope this helps.
>
> Cheers--
> Julian
>
> On 04/01/2011 11:26 AM, Curtis C. Pope wrote:
>> Does anyone have a working example of using Cairo Rendering to a PNG
>> file?  I am converting some existing cairo code and can't seem to get it
>> to work.  I get it to create the surface and write the file, but none of
>> the layer info is there.  I'm sure its something simple I am missing
>> with libgerbv but can't figure it out.
>>
>> Here is a code snippet:
>>
>> #include "gerbv.h"
>>
>> int
>> main(int argc, char *argv[]) {
>>       /* create a top level libgerbv structure */
>>       gerbv_project_t *mainProject = gerbv_create_project();
>>       gerbv_render_info_t screenRenderInfo;
>>           screenRenderInfo.renderType = 
>> GERBV_RENDER_TYPE_CAIRO_HIGH_QUALITY;
>>       screenRenderInfo.displayWidth = 1024;
>>       screenRenderInfo.displayHeight = 768;
>>       screenRenderInfo.scaleFactorX = 0;
>>       screenRenderInfo.scaleFactorY = 0;
>>
>>
>>       /* parse my Gerber Files */
>>
>>       gerbv_open_layer_from_filename (mainProject, "Nixie Tube
>> Breakout.GTO");
>>       gerbv_open_layer_from_filename (mainProject, "Nixie Tube
>> Breakout.GTS");
>>       gerbv_open_layer_from_filename (mainProject, "Nixie Tube
>> Breakout.TXT");
>>       gerbv_open_layer_from_filename (mainProject, "Nixie Tube
>> Breakout.GTL");
>>
>>       /* Invert the Solder Mask Layer */
>>       mainProject->file[1]->transform.inverted = TRUE;
>>
>>       /* Create the Cairo Surface */
>>       cairo_surface_t *surface;
>>       surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 
>> 1024, 768);
>>          cairo_t *cr = cairo_create (surface);
>>
>>          /* render all layers using the simple method */
>>           gerbv_render_all_layers_to_cairo_target (mainProject, cr,
>> &screenRenderInfo);
>>
>>       /* Write the service to file */
>>       cairo_surface_write_to_png(surface, "test.png");
>>
>>
>>          cairo_destroy (cr);
>>
>>       return 0;
>> }
>>
>> Thanks!
>>
>>
>> ------------------------------------------------------------------------------
>>  
>>
>> Create and publish websites with WebMatrix
>> Use the most popular FREE web apps or write code yourself;
>> WebMatrix provides all the features you need to develop and
>> publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
>> _______________________________________________
>> Gerbv-devel mailing list
>> Gerbv-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/gerbv-devel
>
>


------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself; 
WebMatrix provides all the features you need to develop and 
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
Gerbv-devel mailing list
Gerbv-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gerbv-devel

Reply via email to