Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement