[cairo] Newbie - simple program doesn't work
Fabien Costantini
fab672000 at yahoo.fr
Mon Jul 10 02:57:01 PDT 2006
This is probably because cairo_fill() doesn't know what to fill in your code.
you should add before your cairo_fill() call, something like :
cairo_rectangle(cr,0,0,WIDTH,HEIGHT);
so that cairo_fill() knows that the closed path on which to apply the fill is your whole surface.
Fabien
----- Message d'origine ----
De : Baptiste Gaillard <b_gaillard at hotmail.com>
À : cairo at cairographics.org
Envoyé le : Lundi, 10 Juillet 2006, 11h34mn 47s
Objet : [cairo] Newbie - simple program doesn't work
Hello, I'm begining with cairo with a very simple program that doesn't work, but I don't understand why !!!
Here is the code:
#include <cairo-win32.h>
#define WIDTH 10000
#define HEIGHT 10000
void display_status(cairo_status_t status) {
switch(status) {
case CAIRO_STATUS_SUCCESS:
cout << "CAIRO_STATUS_SUCCESS" << endl;
break;
case CAIRO_STATUS_NULL_POINTER:
cout << "CAIRO_STATUS_NULL_POINTER" << endl;
break;
case CAIRO_STATUS_NO_MEMORY:
cout << "CAIRO_STATUS_NO_MEMORY" << endl;
break;
case CAIRO_STATUS_READ_ERROR:
cout << "CAIRO_STATUS_READ_ERROR" << endl;
break;
case CAIRO_STATUS_INVALID_CONTENT:
cout << "CAIRO_STATUS_INVALID_CONTENT" << endl;
break;
case CAIRO_STATUS_INVALID_FORMAT:
cout << "CAIRO_STATUS_INVALID_FORMAT" << endl;
break;
case CAIRO_STATUS_INVALID_VISUAL:
cout << "CAIRO_STATUS_INVALID_VISUAL" << endl;
break;
}
}
int main(int argc, char** argv) {
cairo_surface_t *surface;
cairo_t *cr;
surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, WIDTH, HEIGHT);
display_status(cairo_surface_status (surface));
cr = cairo_create (surface);
display_status(cairo_surface_status (surface));
cairo_set_source_rgb(cr, 1,1,1);
cairo_fill(cr);
display_status(cairo_surface_status (surface));
cairo_surface_write_to_png (surface, "test.png");
display_status(cairo_surface_status (surface));
cairo_destroy (cr);
cairo_surface_destroy (surface);
return 0;
}
The program create a png image, but it's filled in black whereas it should be white. I tried to draw paths and other forms but it seems that the image buffer isn't
modified. I'm working on Windows with DevC++ and use the cairo library provided with the GTK+ package for windows as indicated on the Cairo web site.
So, do you know why this code doesn't work ?
Thanks
PS: sorry for my English, I'm french :-)
_______________________________________________
cairo mailing list
cairo at cairographics.org
http://cairographics.org/cgi-bin/mailman/listinfo/cairo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freedesktop.org/archives/cairo/attachments/20060710/4298b430/attachment.htm
More information about the cairo
mailing list