1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100
|
//
// Cairo.cs - a simplistic binding of the Cairo API to C#.
//
// Authors: Duncan Mak (duncan@ximian.com)
// Hisham Mardam Bey (hisham.mardambey@gmail.com)
// John Luke (john.luke@gmail.com)
// Alp Toker (alp@atoker.com)
//
// (C) Ximian, Inc. 2003
// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
// Copyright (C) 2005 John Luke
// Copyright (C) 2006 Alp Toker
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
using System.Runtime.InteropServices;
namespace Cairo
{
// sort the functions like in the following page so it is easier to find what is missing
// http://cairographics.org/manual/index-all.html
internal static class NativeMethods
{
const string cairo = "libcairo-2.dll";
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_append_path (IntPtr cr, IntPtr path);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_arc (IntPtr cr, double xc, double yc, double radius, double angle1, double angle2);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_arc_negative (IntPtr cr, double xc, double yc, double radius, double angle1, double angle2);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_atsui_font_face_create_for_atsu_font_id (IntPtr font_id);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_clip (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_clip_extents (IntPtr cr, out double x1, out double y1, out double x2, out double y2);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_clip_preserve (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_close_path (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_copy_clip_rectangle_list (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_copy_page (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_copy_path (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_copy_path_flat (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_create (IntPtr target);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_curve_to (IntPtr cr, double x1, double y1, double x2, double y2, double x3, double y3);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_debug_reset_static_data ();
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_destroy (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_device_acquire (IntPtr device);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_device_destroy (IntPtr device);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_device_finish (IntPtr device);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_device_flush (IntPtr device);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern uint cairo_device_get_reference_count (IntPtr device);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern DeviceType cairo_device_get_type (IntPtr device);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_device_get_user_data (IntPtr device, IntPtr key);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_device_reference (IntPtr device);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_device_release (IntPtr device);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern int cairo_device_set_user_data (IntPtr device, IntPtr key, IntPtr user_data, IntPtr destroy);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_device_status (IntPtr device);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_device_to_user (IntPtr cr, ref double x, ref double y);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_device_to_user_distance (IntPtr cr, ref double dx, ref double dy);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_fill (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_fill_extents (IntPtr cr, out double x1, out double y1, out double x2, out double y2);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_fill_preserve (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_font_extents (IntPtr cr, out FontExtents extents);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_font_face_destroy (IntPtr font_face);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern uint cairo_font_face_get_reference_count (IntPtr font_face);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern FontType cairo_font_face_get_type (IntPtr font_face);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_font_face_get_user_data (IntPtr font_face, IntPtr key);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_font_face_reference (IntPtr font_face);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern Status cairo_font_face_set_user_data (IntPtr font_face, IntPtr key, IntPtr user_data, DestroyFunc destroy);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_font_face_status (IntPtr font_face);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_font_options_copy (IntPtr original);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_font_options_create ();
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_font_options_destroy (IntPtr options);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
[return: MarshalAs (UnmanagedType.U1)]
internal static extern bool cairo_font_options_equal (IntPtr options, IntPtr other);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Antialias cairo_font_options_get_antialias (IntPtr options);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern HintMetrics cairo_font_options_get_hint_metrics (IntPtr options);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern HintStyle cairo_font_options_get_hint_style (IntPtr options);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern SubpixelOrder cairo_font_options_get_subpixel_order (IntPtr options);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern long cairo_font_options_hash (IntPtr options);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_font_options_merge (IntPtr options, IntPtr other);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_font_options_set_antialias (IntPtr options, Antialias aa);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_font_options_set_hint_metrics (IntPtr options, HintMetrics metrics);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_font_options_set_hint_style (IntPtr options, HintStyle style);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_font_options_set_subpixel_order (IntPtr options, SubpixelOrder order);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_font_options_status (IntPtr options);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern int cairo_format_stride_for_width (Format format, int width);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_ft_font_face_create_for_ft_face (IntPtr face, int load_flags);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_ft_font_face_create_for_pattern (IntPtr fc_pattern);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_ft_font_options_substitute (FontOptions options, IntPtr pattern);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_ft_scaled_font_lock_face (IntPtr scaled_font);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_ft_scaled_font_unlock_face (IntPtr scaled_font);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Antialias cairo_get_antialias (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_get_current_point (IntPtr cr, out double x, out double y);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_get_dash (IntPtr cr, IntPtr dashes, out double offset);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern int cairo_get_dash_count (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern FillRule cairo_get_fill_rule (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_get_font_face (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_get_font_matrix (IntPtr cr, out Matrix matrix);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_get_font_options (IntPtr cr, IntPtr options);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_get_group_target (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern LineCap cairo_get_line_cap (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern LineJoin cairo_get_line_join (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern double cairo_get_line_width (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_get_matrix (IntPtr cr, Matrix matrix);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern double cairo_get_miter_limit (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Operator cairo_get_operator (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern uint cairo_get_reference_count (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_get_scaled_font (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_get_source (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_get_target (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern double cairo_get_tolerance (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_get_user_data (IntPtr cr, IntPtr key);
// this isn't in the 1.10 doc index
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_glitz_surface_create (IntPtr surface);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_glyph_allocate (int num_glyphs);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_glyph_extents (IntPtr cr, IntPtr glyphs, int num_glyphs, out TextExtents extents);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_glyph_free (IntPtr glyphs);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_glyph_path (IntPtr cr, IntPtr glyphs, int num_glyphs);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
[return: MarshalAs (UnmanagedType.U1)]
internal static extern bool cairo_has_current_point (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_identity_matrix (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_image_surface_create (Cairo.Format format, int width, int height);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_image_surface_create_for_data (byte[] data, Cairo.Format format, int width, int height, int stride);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_image_surface_create_for_data (IntPtr data, Cairo.Format format, int width, int height, int stride);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_image_surface_create_from_png (string filename);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_image_surface_create_from_png_stream (string filename);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_image_surface_get_data (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Format cairo_image_surface_get_format (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern int cairo_image_surface_get_height (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern int cairo_image_surface_get_stride (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern int cairo_image_surface_get_width (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
[return: MarshalAs (UnmanagedType.U1)]
internal static extern bool cairo_in_clip (IntPtr cr, double x, double y);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
[return: MarshalAs (UnmanagedType.U1)]
internal static extern bool cairo_in_fill (IntPtr cr, double x, double y);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
[return: MarshalAs (UnmanagedType.U1)]
internal static extern bool cairo_in_stroke (IntPtr cr, double x, double y);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_line_to (IntPtr cr, double x, double y);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_mask (IntPtr cr, IntPtr pattern);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_mask_surface (IntPtr cr, IntPtr surface, double x, double y);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_matrix_init (Matrix matrix, double xx, double yx, double xy, double yy, double x0, double y0);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_matrix_init_identity (Matrix matrix);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_matrix_init_rotate (Matrix matrix, double radians);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_matrix_init_scale (Matrix matrix, double sx, double sy);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_matrix_init_translate (Matrix matrix, double tx, double ty);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_matrix_invert (Matrix matrix);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_matrix_multiply (Matrix result, Matrix a, Matrix b);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_matrix_rotate (Matrix matrix, double radians);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_matrix_scale (Matrix matrix, double sx, double sy);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_matrix_transform_distance (Matrix matrix, ref double dx, ref double dy);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_matrix_transform_point (Matrix matrix, ref double x, ref double y);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_matrix_translate (Matrix matrix, double tx, double ty);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_move_to (IntPtr cr, double x, double y);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_new_path (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_new_sub_path (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_paint (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_paint_with_alpha (IntPtr cr, double alpha);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_path_destroy (IntPtr path);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_path_extents (IntPtr cr, out double x1, out double y1, out double x2, out double y2);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_pattern_add_color_stop_rgb (IntPtr pattern, double offset, double red, double green, double blue);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_pattern_add_color_stop_rgba (IntPtr pattern, double offset, double red, double green, double blue, double alpha);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_pattern_create_for_surface (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_pattern_create_linear (double x0, double y0, double x1, double y1);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_pattern_create_radial (double cx0, double cy0, double radius0, double cx1, double cy1, double radius1);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_pattern_create_rgb (double r, double g, double b);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_pattern_create_rgba (double r, double g, double b, double a);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_pattern_destroy (IntPtr pattern);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_pattern_get_color_stop_count (IntPtr pattern, out int count);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_pattern_get_color_stop_rgba (IntPtr pattern, int index, out double offset, out double red, out double green, out double blue, out double alpha);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Extend cairo_pattern_get_extend (IntPtr pattern);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Filter cairo_pattern_get_filter (IntPtr pattern);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_pattern_get_linear_points (IntPtr pattern, out double x0, out double y0, out double x1, out double y1);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_pattern_get_matrix (IntPtr pattern, Matrix matrix);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_pattern_get_radial_circles (IntPtr pattern, out double x0, out double y0, out double r0, out double x1, out double y1, out double r1);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern uint cairo_pattern_get_reference_count (IntPtr pattern);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_pattern_get_rgba (IntPtr pattern, out double red, out double green, out double blue, out double alpha);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_pattern_get_surface (IntPtr pattern, out IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern PatternType cairo_pattern_get_type (IntPtr pattern);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_pattern_get_user_data (IntPtr pattern, IntPtr key);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_pattern_reference (IntPtr pattern);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_pattern_set_extend (IntPtr pattern, Extend extend);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_pattern_set_filter (IntPtr pattern, Filter filter);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_pattern_set_matrix (IntPtr pattern, Matrix matrix);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern Status cairo_pattern_set_user_data (IntPtr pattern, IntPtr key, IntPtr user_data, DestroyFunc destroy);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_pattern_status (IntPtr pattern);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern Status cairo_pdf_get_versions (IntPtr versions, out int num_versions);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_pdf_surface_create (string filename, double width, double height);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_pdf_surface_create_for_stream (string filename, double width, double height);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_pdf_surface_restrict_to_version (IntPtr surface, PdfVersion version);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_pdf_surface_set_size (IntPtr surface, double x, double y);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_pdf_version_to_string (PdfVersion version);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_pop_group (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_pop_group_to_source (IntPtr cr);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_ps_get_levels (IntPtr levels, out int num_levels);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_ps_level_to_string (PSLevel version);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_ps_surface_create (string filename, double width, double height);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_ps_surface_create_for_stream (string filename, double width, double height);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_ps_surface_dsc_begin_page_setup (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_ps_surface_dsc_begin_setup (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_ps_surface_dsc_comment (IntPtr surface, string comment);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//[return: MarshalAs (UnmanagedType.U1)]
//internal static extern bool cairo_ps_surface_get_eps (IntPtr surface);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_ps_surface_restrict_to_level (IntPtr surface, PSLevel level);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_ps_surface_set_eps (IntPtr surface, bool eps);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_ps_surface_set_size (IntPtr surface, double x, double y);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_push_group (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_push_group_with_content (IntPtr cr, Content content);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_quartz_font_face_create_for_atsui_font_id (int font_id);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_quartz_font_face_create_for_cgfont (IntPtr font);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_quartz_surface_create (IntPtr context, bool flipped, int width, int height);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_quartz_surface_create_for_cg_context (IntPtr context, uint width, uint height);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_quartz_surface_get_cg_context (IntPtr surface);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_recording_surface_create (Content content, IntPtr extents);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_recording_surface_ink_extents (IntPtr surface, out double x, out double y, out double width, out double height);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_rectangle (IntPtr cr, double x, double y, double width, double height);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_rectangle_list_destroy (IntPtr rectangle_list);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_reference (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern bool cairo_region_contains_point (IntPtr region, int x, int y);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern RegionOverlap cairo_region_contains_rectangle (IntPtr region, ref RectangleInt rectangle);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_region_copy (IntPtr original);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_region_create ();
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_region_create_rectangle (ref RectangleInt rect);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_region_create_rectangles (RectangleInt[] rects, int count);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_region_destroy (IntPtr region);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern bool cairo_region_equal (IntPtr a, IntPtr b);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_region_get_extents (IntPtr region, out RectangleInt extents);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_region_get_rectangle (IntPtr region, int nth, out RectangleInt rectangle);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_region_intersect (IntPtr dst, IntPtr other);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_region_intersect_rectangle (IntPtr dst, ref RectangleInt rectangle);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern bool cairo_region_is_empty (IntPtr region);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern int cairo_region_num_rectangles (IntPtr region);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_region_reference (IntPtr region);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_region_status (IntPtr region);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_region_subtract (IntPtr dst, IntPtr other);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_region_subtract_rectangle (IntPtr dst, ref RectangleInt rectangle);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_region_translate (IntPtr region, int dx, int dy);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_region_union (IntPtr dst, IntPtr other);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_region_union_rectangle (IntPtr dst, ref RectangleInt rectangle);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_region_xor (IntPtr dst, IntPtr other);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_region_xor_rectangle (IntPtr dst, ref RectangleInt rectangle);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_rel_curve_to (IntPtr cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_rel_line_to (IntPtr cr, double dx, double dy);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_rel_move_to (IntPtr cr, double dx, double dy);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_reset_clip (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_restore (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_rotate (IntPtr cr, double angle);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_save (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_scale (IntPtr cr, double sx, double sy);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_scaled_font_create (IntPtr fontFace, Matrix matrix, Matrix ctm, IntPtr options);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_scaled_font_destroy (IntPtr scaled_font);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_scaled_font_extents (IntPtr scaled_font, out FontExtents extents);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_scaled_font_get_ctm (IntPtr scaled_font, out Matrix matrix);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_scaled_font_get_font_face (IntPtr scaled_font);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_scaled_font_get_font_matrix (IntPtr scaled_font, out Matrix matrix);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_scaled_font_get_font_options (IntPtr scaled_font);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern uint cairo_scaled_font_get_reference_count (IntPtr scaled_font);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_scaled_font_get_scale_matrix (IntPtr scaled_font, out Matrix matrix);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern FontType cairo_scaled_font_get_type (IntPtr scaled_font);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_scaled_font_get_user_data (IntPtr scaled_font, IntPtr key);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_scaled_font_glyph_extents (IntPtr scaled_font, IntPtr glyphs, int num_glyphs, out TextExtents extents);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_scaled_font_reference (IntPtr scaled_font);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern Status cairo_scaled_font_set_user_data (IntPtr scaled_font, IntPtr key, IntPtr user_data, DestroyFunc destroy);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_scaled_font_status (IntPtr scaled_font);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_scaled_font_text_extents (IntPtr scaled_font, string utf8, out TextExtents extents);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern Status cairo_scaled_font_text_to_glyphs (IntPtr scaled_font, double x, double y, IntPtr utf8, IntPtr glyphs, out int num_glyphs, IntPtr clusters, out int num_clusters, IntPtr cluster_flags);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_select_font_face (IntPtr cr, string family, FontSlant slant, FontWeight weight);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_antialias (IntPtr cr, Antialias antialias);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_dash (IntPtr cr, double [] dashes, int ndash, double offset);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_fill_rule (IntPtr cr, Cairo.FillRule fill_rule);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_font_face (IntPtr cr, IntPtr fontFace);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_font_matrix (IntPtr cr, Matrix matrix);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_font_options (IntPtr cr, IntPtr options);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_font_size (IntPtr cr, double size);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_line_cap (IntPtr cr, LineCap line_cap);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_line_join (IntPtr cr, LineJoin line_join);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_line_width (IntPtr cr, double width);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_matrix (IntPtr cr, Matrix matrix);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_miter_limit (IntPtr cr, double limit);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_operator (IntPtr cr, Cairo.Operator op);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_scaled_font (IntPtr cr, IntPtr scaled_font);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_source (IntPtr cr, IntPtr pattern);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_source_rgb (IntPtr cr, double red, double green, double blue);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_source_rgba (IntPtr cr, double red, double green, double blue, double alpha);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_source_surface (IntPtr cr, IntPtr surface, double x, double y);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_set_tolerance (IntPtr cr, double tolerance);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern Status cairo_set_user_data (IntPtr cr, IntPtr key, IntPtr user_data, DestroyFunc destroy);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_show_glyphs (IntPtr ct, IntPtr glyphs, int num_glyphs);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_show_page (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_show_text (IntPtr cr, byte[] utf8);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_show_text_glyphs (IntPtr cr, IntPtr utf8, int utf8_len, IntPtr glyphs, int num_glyphs, IntPtr clusters, int num_clusters, ClusterFlags cluster_flags);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_status (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_status_to_string (Status status);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_stroke (IntPtr cr);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_stroke_extents (IntPtr cr, out double x1, out double y1, out double x2, out double y2);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_stroke_preserve (IntPtr cr);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_surface_copy_page (IntPtr surface);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_surface_create_for_rectangle (IntPtr surface, double x, double y, double width, double height);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_surface_create_similar (IntPtr surface, Cairo.Content content, int width, int height);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_surface_destroy (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_surface_finish (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_surface_flush (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Content cairo_surface_get_content (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_surface_get_device (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_surface_get_device_offset (IntPtr surface, out double x, out double y);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_surface_get_fallback_resolution (IntPtr surface, out double x_pixels_per_inch, out double y_pixels_per_inch);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_surface_get_font_options (IntPtr surface, IntPtr FontOptions);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_surface_get_mime_data (IntPtr surface, IntPtr mime_type, out IntPtr data, out IntPtr length);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern uint cairo_surface_get_reference_count (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern SurfaceType cairo_surface_get_type (IntPtr surface);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_surface_get_user_data (IntPtr surface, IntPtr key);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//[return: MarshalAs (UnmanagedType.U1)]
//internal static extern bool cairo_surface_has_show_text_glyphs (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_surface_mark_dirty (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_surface_mark_dirty_rectangle (IntPtr surface, int x, int y, int width, int height);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_surface_reference (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_surface_set_device_offset (IntPtr surface, double x, double y);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_surface_set_fallback_resolution (IntPtr surface, double x, double y);
// DONTCARE
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern Status cairo_surface_set_user_data (IntPtr surface, IntPtr key, IntPtr user_data DestroyFunc destroy);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_surface_show_page (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_surface_status (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_surface_write_to_png (IntPtr surface, string filename);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_surface_write_to_png_stream (IntPtr surface, WriteFunc writeFunc);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_svg_get_versions (out IntPtr versions, out int num_versions);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_svg_surface_create (string fileName, double width, double height);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_svg_surface_create_for_stream (double width, double height);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_svg_surface_restrict_to_version (IntPtr surface, SvgVersion version);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_svg_version_to_string (SvgVersion version);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_text_cluster_allocate (int num_clusters);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_text_cluster_free (IntPtr clusters);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_text_extents (IntPtr cr, byte[] utf8, out TextExtents extents);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_text_path (IntPtr ct, byte[] utf8);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_toy_font_face_create (IntPtr face, FontSlant slant, FontWeight weight);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_toy_font_face_get_family (IntPtr face);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern FontSlant cairo_toy_font_face_get_slant (IntPtr face);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern FontWeight cairo_toy_font_face_get_weight (IntPtr face);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_transform (IntPtr cr, Matrix matrix);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_translate (IntPtr cr, double tx, double ty);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_user_font_face_create ();
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern ScaledFontInitFunc cairo_user_font_face_get_init_func (IntPtr face);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern ScaledFontRenderGlyphFunc cairo_user_font_face_get_render_glyph_func (IntPtr face);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern blah cairo_user_font_face_get_text_to_glyphs_func (blah)
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern blah cairo_user_font_face_get_unicode_to_glyph_func (blah)
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern blah cairo_user_font_face_set_init_func (blah)
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern blah cairo_user_font_face_set_render_glyph_func (blah)
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern blah cairo_user_font_face_set_text_to_glyphs_func (blah)
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern blah cairo_user_font_face_set_unicode_to_glyph_func (blah)
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_user_to_device (IntPtr cr, ref double x, ref double y);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_user_to_device_distance (IntPtr cr, ref double dx, ref double dy);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern int cairo_version ();
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_version_string ();
// not in the 1.10 doc index
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_directfb_surface_create (IntPtr dfb, IntPtr surface);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_win32_font_face_create_for_hfont (IntPtr hfont);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_win32_font_face_create_for_logfontw (IntPtr logfontw);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_win32_font_face_create_for_logfontw_hfont (IntPtr logfontw, IntPtr hfont);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_win32_printing_surface_create (IntPtr hdc);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_win32_scaled_font_done_font (IntPtr scaled_font);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_win32_scaled_font_get_logical_to_device (IntPtr scaled_font, out IntPtr matrix);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern void cairo_win32_scaled_font_get_device_to_logical (IntPtr scaled_font, out IntPtr matrix);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern double cairo_win32_scaled_font_get_metrics_factor (IntPtr scaled_font);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern Status cairo_win32_scaled_font_select_font (IntPtr scaled_font, IntPtr hdc);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_win32_surface_create (IntPtr hdc);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_win32_surface_create_with_ddb (IntPtr hdc, Format format, int width, int height);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_win32_surface_create_with_dib (Format format, int width, int height);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_win32_surface_get_dc (IntPtr surface);
//[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
//internal static extern IntPtr cairo_win32_surface_get_image (IntPtr surface);
// not in the 1.10 doc index
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_xcb_surface_create (IntPtr connection, uint drawable, IntPtr visual, int width, int height);
// not in the 1.10 doc index
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_xcb_surface_create_for_bitmap (IntPtr connection, uint bitmap, IntPtr screen, int width, int height);
// not in the 1.10 doc index
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_xcb_surface_set_size (IntPtr surface, int width, int height);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_xlib_surface_create (IntPtr display, IntPtr drawable, IntPtr visual, int width, int height);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_xlib_surface_create_for_bitmap (IntPtr display, IntPtr bitmap, IntPtr screen, int width, int height);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern int cairo_xlib_surface_get_depth (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_xlib_surface_get_display (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_xlib_surface_get_drawable (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern int cairo_xlib_surface_get_height (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_xlib_surface_get_screen (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern IntPtr cairo_xlib_surface_get_visual (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern int cairo_xlib_surface_get_width (IntPtr surface);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_xlib_surface_set_drawable (IntPtr surface, IntPtr drawable, int width, int height);
[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
internal static extern void cairo_xlib_surface_set_size (IntPtr surface, int width, int height);
}
}
|