SHARE
TWEET

Untitled

a guest Jun 16th, 2019 51 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <cairo.h>
  2. #include <cairo-pdf.h>
  3. #include <math.h>
  4.  
  5. int main(void)
  6. {
  7.     // Определяем поверхность для рисования
  8.     cairo_surface_t *surface;
  9.     // Определяем источник
  10.     cairo_t *cr;
  11.  
  12.     // Создаем поверхность для рисования в виде файла PDF
  13.     surface = cairo_pdf_surface_create("sample.pdf", 200, 200);
  14.     // Создаем источник
  15.     cr = cairo_create(surface);
  16.  
  17.     // Устанавливаем для источника синий цвет
  18.     cairo_set_source_rgb( cr, 0, 0, 65535);
  19.     // Рисуем окружность в качестве маски
  20.     cairo_arc (cr, 100, 100, 25, 0, 2*M_PI);
  21.     // Заполняем ее цветом источника
  22.     cairo_fill( cr );
  23.  
  24.     // Удаляем источник
  25.     cairo_destroy(cr);
  26.     // Удаляем поверхность
  27.     cairo_surface_destroy(surface);
  28.  
  29.     return 0;
  30. }
  31.      
  32. #include <cairo.h>
  33. #include <cairo-pdf.h>
  34. #include <math.h>
  35. #include<gtk/gtk.h>
  36. static void
  37. draw_gtk (GtkWindow      *widget,
  38.           GdkEventExpose *eev,
  39.           gpointer        data)
  40. {
  41.   cairo_t *cr;
  42.   cr = gdk_cairo_create (widget->window);
  43.   travel_path (cr);
  44.   cairo_destroy (cr);
  45. }
  46.  
  47. int main(void)
  48. {
  49.     cairo_surface_t *surface;
  50.       cairo_t *cr;
  51.  
  52.        surface = cairo_pdf_surface_create("sample.pdf", 200, 200);
  53.        cr = cairo_create(surface);
  54.  
  55.        cairo_set_source_rgb( cr, 0, 0, 65535);
  56.        cairo_arc (cr, 100, 100, 25, 0, 2*M_PI);
  57.       cairo_fill( cr );
  58.  gtk_init (NULL, NULL);        /* Fire up GTK!       */
  59.     GtkWidget *mainwin;           /* Make a new windows */
  60.     GtkWidget *canvas = NULL;     /* Make a new canvas  */
  61.  
  62.     mainwin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  63.     canvas = gtk_drawing_area_new ();
  64.     gtk_widget_set_size_request (canvas, 500, 500);    
  65.  
  66.     gtk_container_add (GTK_CONTAINER (mainwin), canvas); /* Place the canvas in the window */
  67.  
  68.     g_signal_connect (mainwin, "destroy", G_CALLBACK (gtk_main_quit), NULL); /* Quit graphically */
  69.  
  70.     /* Instead of drawing like usual, we connect the expose event to do the drawing! */
  71.     g_signal_connect (G_OBJECT (canvas), "expose-event",
  72.                       G_CALLBACK (draw_gtk), NULL);
  73.  
  74.     gtk_widget_show_all (mainwin); /* Show the window on the screen */
  75.     gtk_main ();
  76.  
  77.     cairo_destroy(cr);
  78.  
  79.     cairo_surface_destroy(surface);
  80.  
  81.     return 0;
  82. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top