Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cairo.h>
- #include <cairo-pdf.h>
- #include <math.h>
- int main(void)
- {
- // Определяем поверхность для рисования
- cairo_surface_t *surface;
- // Определяем источник
- cairo_t *cr;
- // Создаем поверхность для рисования в виде файла PDF
- surface = cairo_pdf_surface_create("sample.pdf", 200, 200);
- // Создаем источник
- cr = cairo_create(surface);
- // Устанавливаем для источника синий цвет
- cairo_set_source_rgb( cr, 0, 0, 65535);
- // Рисуем окружность в качестве маски
- cairo_arc (cr, 100, 100, 25, 0, 2*M_PI);
- // Заполняем ее цветом источника
- cairo_fill( cr );
- // Удаляем источник
- cairo_destroy(cr);
- // Удаляем поверхность
- cairo_surface_destroy(surface);
- return 0;
- }
- #include <cairo.h>
- #include <cairo-pdf.h>
- #include <math.h>
- #include<gtk/gtk.h>
- static void
- draw_gtk (GtkWindow *widget,
- GdkEventExpose *eev,
- gpointer data)
- {
- cairo_t *cr;
- cr = gdk_cairo_create (widget->window);
- travel_path (cr);
- cairo_destroy (cr);
- }
- int main(void)
- {
- cairo_surface_t *surface;
- cairo_t *cr;
- surface = cairo_pdf_surface_create("sample.pdf", 200, 200);
- cr = cairo_create(surface);
- cairo_set_source_rgb( cr, 0, 0, 65535);
- cairo_arc (cr, 100, 100, 25, 0, 2*M_PI);
- cairo_fill( cr );
- gtk_init (NULL, NULL); /* Fire up GTK! */
- GtkWidget *mainwin; /* Make a new windows */
- GtkWidget *canvas = NULL; /* Make a new canvas */
- mainwin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- canvas = gtk_drawing_area_new ();
- gtk_widget_set_size_request (canvas, 500, 500);
- gtk_container_add (GTK_CONTAINER (mainwin), canvas); /* Place the canvas in the window */
- g_signal_connect (mainwin, "destroy", G_CALLBACK (gtk_main_quit), NULL); /* Quit graphically */
- /* Instead of drawing like usual, we connect the expose event to do the drawing! */
- g_signal_connect (G_OBJECT (canvas), "expose-event",
- G_CALLBACK (draw_gtk), NULL);
- gtk_widget_show_all (mainwin); /* Show the window on the screen */
- gtk_main ();
- cairo_destroy(cr);
- cairo_surface_destroy(surface);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement