Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | update freetype to version 2.12.0 |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
4d1bf262949efd4ea70fa1676e8661ca |
User & Date: | chw 2022-04-02 08:55:05.979 |
Context
2022-04-02
| ||
09:03 | add selected tk and tcl upstream changes check-in: 9ba68ce6c4 user: chw tags: trunk | |
08:55 | update freetype to version 2.12.0 check-in: 4d1bf26294 user: chw tags: trunk | |
2022-03-31
| ||
04:26 | review autoconf in topcua for macos check-in: 579ffb8f1f user: chw tags: trunk | |
Changes
Added jni/freetype/.clang-format.
> > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | BasedOnStyle: Chromium AlignAfterOpenBracket: Align AlignConsecutiveAssignments: true AlignConsecutiveDeclarations: true AlignConsecutiveMacros: true AlignEscapedNewlines: true # AlignOperands: Align AlignTrailingComments: true AlwaysBreakAfterReturnType: AllDefinitions BreakBeforeBraces: Allman ColumnLimit: 80 DerivePointerAlignment: false IndentCaseLabels: false PointerAlignment: Left SpaceBeforeParens: ControlStatements SpacesInParentheses: true |
Changes to jni/freetype/Android.mk.
︙ | ︙ | |||
25 26 27 28 29 30 31 | src/pshinter \ src/psnames \ src/lzw \ src/psaux \ src/pcf \ src/type1 \ src/autofit \ | | > | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | src/pshinter \ src/psnames \ src/lzw \ src/psaux \ src/pcf \ src/type1 \ src/autofit \ src/sdf \ src/svg LOCAL_C_INCLUDES := $(foreach D, $(APP_SUBDIRS), $(LOCAL_PATH)/$(D)) $(LOCAL_PATH)/include LOCAL_CFLAGS := -O2 -DFT2_BUILD_LIBRARY LOCAL_CPP_EXTENSION := .cpp LOCAL_SRC_FILES := $(foreach F, $(APP_SUBDIRS), $(addprefix $(F)/,$(notdir $(wildcard $(LOCAL_PATH)/$(F)/*.cpp)))) |
︙ | ︙ |
Changes to jni/freetype/CMakeLists.txt.
1 2 | # CMakeLists.txt # | | | 1 2 3 4 5 6 7 8 9 10 | # CMakeLists.txt # # Copyright (C) 2013-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # Written originally by John Cary <cary@txcorp.com> # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you |
︙ | ︙ | |||
102 103 104 105 106 107 108 | # `FT_REQUIRE_HARFBUZZ=TRUE'. # # - Installation of FreeType can be controlled with the CMake variables # `SKIP_INSTALL_HEADERS', `SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL' # (this is compatible with the same CMake variables in zlib's CMake # support). | | | < | > | 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 | # `FT_REQUIRE_HARFBUZZ=TRUE'. # # - Installation of FreeType can be controlled with the CMake variables # `SKIP_INSTALL_HEADERS', `SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL' # (this is compatible with the same CMake variables in zlib's CMake # support). # To minimize the number of cmake_policy() workarounds, # CMake >= 3 is requested. cmake_minimum_required(VERSION 3.0) if (NOT CMAKE_VERSION VERSION_LESS 3.3) # Allow symbol visibility settings also on static libraries. CMake < 3.3 # only sets the property on a shared library build. cmake_policy(SET CMP0063 NEW) # Support new IN_LIST if() operator. cmake_policy(SET CMP0057 NEW) endif () include(CheckIncludeFile) include(CMakeDependentOption) include(FindPkgConfig) # CMAKE_TOOLCHAIN_FILE must be set before `project' is called, which # configures the base build environment and references the toolchain file if (APPLE) if (DEFINED IOS_PLATFORM) if (NOT "${IOS_PLATFORM}" STREQUAL "OS" AND NOT "${IOS_PLATFORM}" STREQUAL "SIMULATOR" |
︙ | ︙ | |||
158 159 160 161 162 163 164 | endif () endif () project(freetype C) set(VERSION_MAJOR "2") | | | | 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | endif () endif () project(freetype C) set(VERSION_MAJOR "2") set(VERSION_MINOR "12") set(VERSION_PATCH "0") # Generate LIBRARY_VERSION and LIBRARY_SOVERSION. set(LIBTOOL_REGEX "version_info='([0-9]+):([0-9]+):([0-9]+)'") file(STRINGS "${PROJECT_SOURCE_DIR}/builds/unix/configure.raw" VERSION_INFO REGEX ${LIBTOOL_REGEX}) string(REGEX REPLACE |
︙ | ︙ | |||
235 236 237 238 239 240 241 | if (BUILD_FRAMEWORK) if (NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode") message(FATAL_ERROR "You should use Xcode generator with BUILD_FRAMEWORK enabled") endif () | | | 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 | if (BUILD_FRAMEWORK) if (NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode") message(FATAL_ERROR "You should use Xcode generator with BUILD_FRAMEWORK enabled") endif () set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD)") set(BUILD_SHARED_LIBS ON) endif () # Find dependencies if (NOT FT_DISABLE_HARFBUZZ) set(HARFBUZZ_MIN_VERSION "2.0.0") |
︙ | ︙ | |||
267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 | find_package(ZLIB REQUIRED) else () find_package(ZLIB) endif () endif () if (NOT FT_DISABLE_BZIP2) if (FT_REQUIRE_BZIP2) find_package(BZip2 REQUIRED) else () find_package(BZip2) endif () endif () if (NOT FT_DISABLE_BROTLI) if (FT_REQUIRE_BROTLI) find_package(BrotliDec REQUIRED) else () find_package(BrotliDec) | > > > > > | 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 | find_package(ZLIB REQUIRED) else () find_package(ZLIB) endif () endif () if (NOT FT_DISABLE_BZIP2) # Genuine BZip2 does not provide bzip2.pc, but some platforms have it. # For better dependency in freetype2.pc, bzip2.pc is searched # regardless of the availability of libbz2. If bzip2.pc is found, # Requires.private is used instead of Libs.private. if (FT_REQUIRE_BZIP2) find_package(BZip2 REQUIRED) else () find_package(BZip2) endif () pkg_check_modules(PC_BZIP2 bzip2) endif () if (NOT FT_DISABLE_BROTLI) if (FT_REQUIRE_BROTLI) find_package(BrotliDec REQUIRED) else () find_package(BrotliDec) |
︙ | ︙ | |||
396 397 398 399 400 401 402 403 404 405 406 407 408 409 | src/psaux/psaux.c src/pshinter/pshinter.c src/psnames/psnames.c src/raster/raster.c src/sdf/sdf.c src/sfnt/sfnt.c src/smooth/smooth.c src/truetype/truetype.c src/type1/type1.c src/type42/type42.c src/winfonts/winfnt.c ) if (UNIX) | > | 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 | src/psaux/psaux.c src/pshinter/pshinter.c src/psnames/psnames.c src/raster/raster.c src/sdf/sdf.c src/sfnt/sfnt.c src/smooth/smooth.c src/svg/svg.c src/truetype/truetype.c src/type1/type1.c src/type42/type42.c src/winfonts/winfnt.c ) if (UNIX) |
︙ | ︙ | |||
499 500 501 502 503 504 505 | target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES}) target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS}) list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "zlib") endif () if (BZIP2_FOUND) target_link_libraries(freetype PRIVATE ${BZIP2_LIBRARIES}) target_include_directories(freetype PRIVATE ${BZIP2_INCLUDE_DIR}) # not BZIP2_INCLUDE_DIRS | > > > | > | 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 | target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES}) target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS}) list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "zlib") endif () if (BZIP2_FOUND) target_link_libraries(freetype PRIVATE ${BZIP2_LIBRARIES}) target_include_directories(freetype PRIVATE ${BZIP2_INCLUDE_DIR}) # not BZIP2_INCLUDE_DIRS if (PC_BZIP2_FOUND) list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "bzip2") else () list(APPEND PKG_CONFIG_LIBS_PRIVATE "-lbz2") endif () endif () if (PNG_FOUND) target_link_libraries(freetype PRIVATE ${PNG_LIBRARIES}) target_compile_definitions(freetype PRIVATE ${PNG_DEFINITIONS}) target_include_directories(freetype PRIVATE ${PNG_INCLUDE_DIRS}) list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "libpng") endif () |
︙ | ︙ |
Changes to jni/freetype/ChangeLog.
1 2 3 4 5 6 7 | 2021-12-02 Werner Lemberg <wl@gnu.org> * Version 2.11.1 released. ========================== Tag sources with `VER-2-11-1'. | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 | 2022-03-31 Werner Lemberg <wl@gnu.org> * Version 2.12.0 released. ========================== Tag sources with `VER-2-12-0'. * docs/VERSION.TXT: Add entry for version 2.12.0. * docs/CHANGES, docs/release: Updated. * README, src/base/ftver.rc, builds/windows/vc2010/index.html, builds/windows/visualc/index.html, builds/windows/visualce/index.html, builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/index.html, docs/freetype-config.1: s/2.11.1/2.12.0/, s/2111/2120/. * include/freetype/freetype.h (FREETYPE_MINOR): Set to 12. (FREETYPE_PATCH): Set to 0. * builds/unix/configure.raw (version_info): Set to 24:2:18. * CMakeLists.txt (VERSION_MINOR): Set to 12. (VERSION_PATCH): Set to 0. * builds/toplevel.mk (do-dist): Generate `ChangeLog` entries for all commits since version 2.11.0 (when we stopped creating this file manually). 2022-03-31 Werner Lemberg <wl@gnu.org> Fix clang++ warnings. * src/base/ftglyph.c (ft_svg_glyph_prepare), src/base/ftobj.c (ft_glyphslot_init), src/cache/ftccmap.c (ftc_cmap_node_new), src/cache/ftcimage.c (FTC_INode_New), src/lzw/ftlzw.c (FT_Stream_OpenLZW), src/psaux/psobjs.c (ps_parser_load_field), src/pshinter/pshglob.c (psh_globals_new), src/sfnt/ttsvg.c (tt_face_load_svg_doc): Initialize variables used for allocation. * src/sdf/ftsdf.c (split_sdf_conic, split_sdf_cubic): Change type of `max_splits` to FT_UInt. (sdf_generate_bounding_box): Add cast. 2022-03-30 Werner Lemberg <wl@gnu.org> Whitespace. 2022-03-30 Werner Lemberg <wl@gnu.org> [builds] Fix creation of `freetype2.pc` for static-only builds. We have to help `pkg-config` since it can't recognize that there is no shared library installed. Note that meson already does exactly the same. * builds/unix/configure.raw (REQUIRES_PRIVATE, LIBS_PRIVATE): Rename to... (PKGCONFIG_REQUIRES_PRIVATE, PKGCONFIG_LIBS_PRIVATE): This. Adjust them depending on `$enable_shared`. (PKGCONFIG_REQUIRES, PKGCONFIG_LIBS): New variables. * builds/unix/freetype2.in, builds/unix/unix-def.in: Use new and updated variables. 2022-03-25 Werner Lemberg <wl@gnu.org> Add `FT_FACE_FLAG_SBIX_OVERLAY` and `FT_HAS_SBIX_OVERLAY`. * include/freetype/freetype.h (FT_FACE_FLAG_SBIX_OVERLAY, FT_HAS_SBIX_OVERLAY): New macro. * src/sfnt/ttsbit.c (tt_face_load_sbit): Handle `FT_FACE_FLAG_SBIX_OVERLAY`. Remove obsolete tracing message. 2022-03-25 Werner Lemberg <wl@gnu.org> Add `FT_PARAM_TAG_IGNORE_SBIX`. This is another bit to handle 'sbix' tables as described in the OpenType specification. * include/freetype/ftparams.h (FT_PARAM_TAG_IGNORE_SBIX): New macro. * src/sfnt/sfobjc.c (is_apple_sbix): Rename to... (has_sbix): ... this. Check for more sbit tables. Handle `FT_PARAM_TAG_IGNORE_SBIX` to eventually control `has_sbix`. Only call sbit table loader if an sbit table is present. 2022-03-25 Werner Lemberg <wl@gnu.org> [truetype] Fix 'sbix' table handling. * src/sfnt/ttsbit.c (tt_face_load_sbix_image): Correct calculation of 'metrics->horiBearingY'. Set vertical metrics. * src/sfnt/sfobjs.c (sfnt_load_face): Adjust setting of `FT_FACE_FLAG_SBIX`. Handle metrics of fonts with 'sbix' table. * src/truetype/ttgload.c (TT_Load_Glyph): For 'sbix' embedded bitmaps, apply bbox offset and bearing values of the corresponding glyph in the 'glyf' table if it exists and has a contour. * src/truetype/ttobjs.c (tt_face_init): Handle font with 'sbix' table. Fixes issue #998. 2022-03-25 Werner Lemberg <wl@gnu.org> Add `FT_FACE_FLAG_SBIX` and `FT_HAS_SBIX`. Fonts with 'sbix' tables need special handling by the application. * include/freetype/freetype.h (FT_FACE_FLAG_SBIX, FT_HAS_SBIX): New macros. * src/sfnt/sfobjs.c (sfnt_load_face): Set `FT_FACE_FLAG_SBIX` if 'sbix' table is present. 2022-03-25 Werner Lemberg <wl@gnu.org> * include/freetype/freetype.h (FT_LOAD_SBITS_ONLY): Tag macro as public. 2022-03-24 Carlo Bramini <carlo.bramix@libero.it> [builds/windows] Fix WCE support. * builds/windows/ftsystem.c [_WIN32_WCE]: Include <malloc.h> needed by _alloca. 2022-03-24 Steve Lhomme <robux4@ycbcr.xyz> [build/windows] Improve UWP support. * builds/windows/ftsystem.c [UWP]: Wrap CreateFile2 into CreateFileA. 2022-03-21 Werner Lemberg <wl@gnu.org> * src/sfnt/ttkern.c (tt_face_get_kerning): Exit early if no table. Fixes #1141. 2022-03-20 Ben Wagner <bungeman@chromium.org> [woff2] Support overlap flag for simple glyphs. In the woff2 spec it has been proposed to allow the OVERLAP_SIMPLE flag to be retained through the woff2 format [0]. [0] https://www.w3.org/TR/WOFF2/#glyf_table_format * src/sfnt/sfwoff2.h (GLYF_OVERLAP_SIMPLE): add glyf flag. * src/sfnt/sfwoff2.c (reconstruct_glyf): parse optionFlags and overlapSimpleBitmap[]. (store_points): set OVERLAP_SIMPLE on first point's flag if the overlap bit is set. 2022-03-19 Werner Lemberg <wl@gnu.org> [cff] Synchronize `cff_slot_load` with `TT_Load_Glyph`. * src/cff/cffgload.c (IS_DEFAULT_INSTANCE): New macro. (cff_slot_load): Use it. 2022-03-19 Werner Lemberg <wl@gnu.org> * src/base/ftobjs.c (FT_Request_Size): Guard `face->size`. Fixes #1140. 2022-03-19 Werner Lemberg <wl@gnu.org> * src/base/ftobjs.c (ft_open_face_internal): Thinko. 2022-03-19 Ben Wagner <bungeman@chromium.org> [doc] FT_OUTLINE_OVERLAP was introduced in 2.10.3. * include/freetype/ftimage.h (FT_OUTLINE_OVERLAP): Document when added. 2022-03-19 Werner Lemberg <wl@gnu.org> * src/base/ftobjs.c (ft_open_face_internal): Properly guard `face_index`. We must ensure that the cast to `FT_Int` doesn't change the sign. Fixes #1139. 2022-03-17 Werner Lemberg <wl@gnu.org> [sfnt] Avoid invalid face index. Fixes #1138. * src/sfnt/sfobjs.c (sfnt_init_face), src/sfnt/sfwoff2.c (woff2_open_font): Check `face_index` before decrementing. 2022-03-07 Werner Lemberg <wl@gnu.org> Documentation, whitespace. 2022-03-05 Anuj Verma <anuj@womp.xyz> [sdf] Fix corner checks and improve performance. * src/sdf/ftsdf.c (sdf_generate_bounding_box): Always check for a corner if two distances (for different curves) are very close. (sdf_conic_to): Check whether the conic curve can be treated as a line (which happens if the control point coincides with any end point). 2022-03-05 Anuj Verma <anuj@womp.xyz> [sdf] Implement deviation-based splitting for Bezier curves. * src/sdf/ftsdf.c (split_sdf_cubic, split_sdf_shape): Add checks to figure out the deviation of Bezier curves and stop splitting if the curve is flat enough. * src/sdf/ftsdfcommon.h (ONE_PIXEL): New macro. 2022-03-05 Anuj Verma <anuj@womp.xyz> * include/freetype/freetype.h: Improve SDF documentation. 2022-03-03 Ben Wagner <bungeman@chromium.org> [sfnt] Fix bounds check in SVG. The `SVG_DOCUMENT_LIST_MINIMUM_SIZE` macro is non trivial and not protected by parentheses. As a result, the expression `table_size - SVG_DOCUMENT_LIST_MINIMUM_SIZE` expands to `table_size - 2U + SVG_DOCUMENT_RECORD_SIZE` instead of the expected `table_size - (2U + SVG_DOCUMENT_RECORD_SIZE)`. This causes an incorrect bounds check which may lead to reading past the end of the `SVG ` table. * src/sfnt/ttsvg.c (tt_face_load_svg): wrap macro definitions in parentheses. Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=45179 2022-02-23 Ben Wagner <bungeman@chromium.org> [psaux] Full bounds check for OtherSubr 19. It is possible for OtherSubr 19 to be invoked when `decoder->buildchar` is NULL (so that `decoder->len_buildchar` is 0), the `blend` is non-NULL with `blend->num_designs` set to 2, and the user supplied `idx` to be large (for example 0xFFFFFFFE). Since these are all `FT_UInt32` the existing bounds check overflows in a well defined manner, allowing for an invalid call to `memcpy`. In addition, it is possible to call OtherSubr 19 with `decoder->len_buildchar`, `blend->num_designs`, and `idx` all zero (implying that `blend->weight_vector` and `decoder->buildchar` are NULL). This passes the bounds check (it is logically always fine to copy nothing starting at index zero) but may invoke undefined behavior in `ft_memcpy` if it is backed by `memcpy`. Calling `memcpy` with either the `src` or `dst` NULL is undefined behavior (even if `count` is zero). * src/psaux/psintrp.c (cf2_interpT2CharString): Correctly check that `blend->num_designs` can be copied to `decoder->buildchar[idx]`. Also avoid passing NULL to `ft_memcpy`. Bug: https://crbug.com/1299259 2022-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> [cmake] Drop the support of CMake 2.x. * CMakeLists.txt: Require CMake 3.0 (released on 2014) or newer. The issue #1059 reports the difficulty to support both of CMake 2.x and newer one by single CMakeLists.txt without the inflation of cmake_policy() workarounds. For better maintainability, the support of CMake 2.x is dropped. 2022-02-19 Werner Lemberg <wl@gnu.org> * src/bdf/README: Updated. 2022-02-19 Werner Lemberg <wl@gnu.org> * builds/mac/ftmac.c, src/base/ftmac.c: s|FT_MAC_H|<freetype/ftmac.h>|. 2022-02-19 Werner Lemberg <wl@gnu.org> src/sfnt/ttkern.c (tt_face_load_kern): Micro-optimize. A kerning table can be handled by binary search if it has equal entries. Fixes #1132. 2022-02-17 Steve Lhomme <robux4@ycbcr.xyz> Alexei Podtelezhnikov <apodtele@gmail.com> [builds/windows] Add support for legacy UWP builds. * builds/windows/ftsystem.c: Add neccessary macro substitutions to enable strict UWP builds. See !141. 2022-02-16 Werner Lemberg <wl@gnu.org> ftmm.h: Minor documentation improvement. 2022-02-13 Alexei Podtelezhnikov <apodtele@gmail.com> [pshinter] Tune PSH_STRONG_THRESHOLD_MAXIMUM value. Before the change, the hinting engine frequently confused horizontal stem and serif hints making some stems too thin and some serifs too thick. The value was tuned using serif fonts from the URW+ base 35 collection. * src/pshinter/pshalgo.c [PSH_STRONG_THRESHOLD_MAXIMUM]: s/30/12/. 2022-02-12 Werner Lemberg <wl@gnu.org> t1tables.h: Documentation improvements. 2022-02-12 Werner Lemberg <wl@gnu.org> t1tables.h: Whitespace. 2022-02-11 Werner Lemberg <wl@gnu.org> [type42] Fix `FT_Get_PS_Font_Private` for this format. Since Type42 fonts don't have a 'Private' dictionary, the return value should be `FT_Err_Invalid_Argument`. * src/type42/t42drivr.c (t42_ps_get_font_private): Removed. (t42_service_ps_info): Updated. 2022-02-09 Alexei Podtelezhnikov <apodtele@gmail.com> [pshinter] Clear reused mask. In PS hinter, memory allocations persist until the module is done. Therefore, we have to clear reused masks. * src/pshinter/pshrec.c (ps_mask_table_alloc): Clear reused mask. 2022-02-09 Alexei Podtelezhnikov <apodtele@gmail.com> [pshinter] Use unsigned indices. This reduces casting and eliminates some checks. * src/pshinter/pshrec.c (ps_mask_test_bit, ps_mask_table_merge, ps_dimension_add_t1stem, ps_hints_t1stem3): Updated. (ps_dimension_add_counter): Updated, unnecessary checks removed. 2022-02-08 Alexei Podtelezhnikov <apodtele@gmail.com> [pshinter] Fix mask merging. We forgot to update the number of bits when merging a larger mask into a smaller one. This fix might have rendering effects. * src/pshinter/pshrec.c (ps_mask_table_merge): Inherit the number of bits from a larger mask. There is no need to zero unused bits, already zeroed during allocation. (ps_mask_clear_bit): Removed. (ps_mask_ensure): Minor. 2022-02-08 Alexei Podtelezhnikov <apodtele@gmail.com> [pshinter] Revise the hint table handling. * src/pshinter/pshrec.c (ps_hint_table_ensure): Remove redundant size check; avoid array zeroing because it is fully initialized when used. (ps_hint_table_alloc): Fix off-by-one comparison and remove another zeroing of the array elements. 2022-02-06 Werner Lemberg <wl@gnu.org> Various minor doc fixes. 2022-02-06 Alexei Podtelezhnikov <apodtele@gmail.com> [builds/windows] Add SVG to to project files. * builds/windows/vc2010/freetype.vcxproj: Updated. * builds/windows/vc2010/freetype.vcxproj.filters: Updated. * builds/windows/visualc/freetype.vcproj: Updated. 2022-02-03 Alexei Podtelezhnikov <apodtele@gmail.com> * src/winfonts/winfnt.c (fnt_face_get_dll_font): Trace font resources. 2022-02-02 Eric Jing <@CPUcontrol> [cmake] Fix build on MacOS. * CMakeLists.txt (CMAKE_OSX_ARCHITECTURES): Update value to fix the building of a framework on MacOS. * builds/mac/freetype-Info.plist (CFBundleExecutable): Make identifier lowercase only. Fixes #1127. 2022-02-02 Alexei Podtelezhnikov <apodtele@gmail.com> [psaux] Revise `PS_Table` handling. The old impleemntation was not using `FT_REALLOC`, buing too careful with the offset rebasing. It shoudl be safe to rely on the base movements. * src/psaux/psobjs.c (reallocate_t1_table, shift_elements): Combine into... (ps_table_realloc): ... this function based on `FT_REALLOC`. (ps_table_done): Simplified. (ps_table_add): Updated. 2022-02-02 Alexei Podtelezhnikov <apodtele@gmail.com> * src/cache/ftcmru.c (FTC_MruList_New): Explain zeroing. 2022-01-31 Alexei Podtelezhnikov <apodtele@gmail.com> [cache] Partially revert 9870b6c07e2c. Fix crashes reported by Werner. * src/cache/ftcmru.c (FTC_MruList_New): Use `FT_ALLOC` again. 2022-01-31 Werner Lemberg <wl@gnu.org> freetype.h: Minor documentation improvement. 2022-01-31 Alexei Podtelezhnikov <apodtele@gmail.com> [cache] Fix fallouts from edd4fedc5427. Reported by Werner. * src/cache/ftcimage.c (FTC_INode_New): Always initialize FT_Glyph. * src/cache/ftcsbits.c (FTC_SNode_New): Always initialize FT_SBit. 2022-01-31 Alexei Podtelezhnikov <apodtele@gmail.com> Clean-up - do not doubt FT_FREE. * src/base/ftobjs.c (memory_stream_close): Do not reassign zero after `FT_FREE`. * src/sfnt/sfwoff.c (sfnt_stream_close): Ditto. * src/sfnt/sfwoff2.c (stream_close): Ditto. * src/psaux/psobjs.c (ps_parser_load_field): Ditto. * src/truetype/ttgxvar.c (ft_var_load_avar, tt_set_mm_blend, tt_set_mm_blend): Ditto. 2022-01-30 Werner Lemberg <wl@gnu.org> * CMakeLists.txt: Include 'FindPkgConfig' module. Older cmake versions don't provide `pkg_check_modules` by default. Fixes #1126. 2022-01-30 Alexei Podtelezhnikov <apodtele@gmail.com> * src/psaux/psobjs.c (ps_parser_load_field): Reduce `string` scope. 2022-01-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> [cmake] Check the availability of `bzip2.pc'. (CMakeLists.txt): Check the availability of `bzip2.pc'. * If `bzip2.pc' is available, Requires.private should include bzip2, but Libs.private should not include -lbz2. * If `bzip2.pc' is unavailable, Requires.private cannot include bzip2, but Libs.private should include -lbz2. Fix #897. 2022-01-28 Werner Lemberg <wl@gnu.org> * unix/configure.raw: We need 'librsvg' version 2.46.0 or newer. Older versions don't have function `rsvg_handle_get_intrinsic_dimensions`. 2022-01-28 Alexei Podtelezhnikov <apodtele@gmail.com> Minor clean-ups. * src/base/ftrfork.c (raccess_make_file_name): Do not set error. * src/sfnt/sfdriver.c (get_win_string, get_apple_string): Ditto. * src/cff/cffobjs.c (cff_strcpy): Do not confuse about error. * src/psaux/psobjs.c (ps_table_done): Ditto. * src/truetype/ttgxvar.c (ft_var_readpacked*, ft_var_load_avar): Ditto. 2022-01-27 Ben Wagner <bungeman@chromium.org> Document `FT_Outline_Decompose` degenerate segments. `FT_Outline_Decompose` does not filter out and can return degenerate segments in an outline. This can be surprising when attemping to stroke such an outline. Clarify the existing documentation on this matter to cover all forms of degeneracy (without specifying exactly how they will be reported), why they might arise, and better explain in what cases they may be an issue. * include/freetype/ftoutlin.h (FT_Outline_Decompose): update documentation. Fixes #952. 2022-01-27 Anuj Verma <anujv@posteo.net> Fix sdf computation while `USE_SQUARED_DISTANCES`. Function `map_fixed_to_sdf` expects spread to be absolute and not squared. * src/sdf/ftbsdf.c (finalize_sdf): Pass absolute spread while `map_fixed_to_sdf`. * src/sdf/ftsdf.c (sdf_generate_bounding_box): Ditto. 2022-01-27 Tapish Ojha <tapishojha2000@gmail.com> [sfnt] Improve sRGB constants. * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use slightly more precise values. Fixes #1018. 2022-01-27 Werner Lemberg <wl@gnu.org> docs/release: Updated. 2022-01-26 Alexei Podtelezhnikov <apodtele@gmail.com> * src/pfr/pfrload.c (pfr_phy_font_load): Use FT_QNEW_ARRAY. 2022-01-26 Alexei Podtelezhnikov <apodtele@gmail.com> * src/sdf/ftsdf.c (sdf_*_new): Use standard macro. 2022-01-26 Alexei Podtelezhnikov <apodtele@gmail.com> [pcf] Delay encoding allocation and avoid its zeroing. * src/pcf/pcfread.c (pcf_get_encodings): Refactor and use FT_QNEW_ARRAY. 2022-01-25 Werner Lemberg <wl@gnu.org> Aarg, typo. 2022-01-25 Werner Lemberg <wl@gnu.org> freetype.h: More updates to `FT_LOAD_COLOR` description. 2022-01-25 Werner Lemberg <wl@gnu.org> * builds/unix/configure.raw (FT_DEMO_CFLAGS): Pass `-DHAVE-LIBRSVG`. This helps in decoupling library support from `pkg-config` for other platforms. 2022-01-25 Werner Lemberg <wl@gnu.org> Update documentation for `FT_LOAD_COLOR`. 2022-01-24 Ben Wagner <bungeman@chromium.org> [pshinter] Ensure all point flags are initialized. Only off curve point flags were fully initialized. * src/pshinter/pshalgo.c (psh_glyph_init): always initialize flags. Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43930 2022-01-24 Werner Lemberg <wl@gnu.org> .mailmap: Typo. 2022-01-23 Werner Lemberg <wl@gnu.org> * src/svg/ftsvg.c (ft_svg_property_set): Disallow NULL pointers. 2022-01-23 Werner Lemberg <wl@gnu.org> .mailmap: Updated. 2022-01-23 Werner Lemberg <wl@gnu.org> More documentation on handling OT-SVG. 2022-01-23 Werner Lemberg <wl@gnu.org> * src/svg/ftsvg.c: Rename `svg_hooks` to `svg-hooks` for consistency. 2022-01-22 Werner Lemberg <wl@gnu.org> [sfnt] Reject malformed SVG tables. * src/sfnt/ttsvg.c (SVG_TABLE_HEADER_SIZE, SVG_DOCUMENT_RECORD_SIZE, SVG_DOCUMENT_LIST_MINIMUM_SIZE, SVG_MINIMUM_SIZE): New macros. (tt_face_load_svg): Check offsets. Check table and record sizes. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43918 2022-01-22 Alexei Podtelezhnikov <apodtele@gmail.com> * src/psaux/psobjs.c (ps_table_new): Revert to zeroing. 2022-01-20 Alexei Podtelezhnikov <apodtele@gmail.com> [psaux, type1, type42] Avoid annecessary zeroing. * src/psaux/psobjs.c (ps_table_new): Use FT_QNEW_ARRAY. * src/type1/t1load.c (parse_encoding): Ditto. * src/type42/t42parse.c (t42_parse_encoding): Ditto. 2022-01-20 Werner Lemberg <wl@gnu.org> [builds/unix] Handle 'librsvg' for demo programs. * builds/unix/configure.raw: Check for 'librsvg'. (LIB_CLOCK_GETTIME): Don't call `AC_SUBST` on this but on... (FT_DEMO_CFLAGS, FT_DEMO_LDFLAGS): ... these two new variables. * builds/unix/unix-cc.in (LIB_CLOCK_GETTIME): Replaced by... (FT_DEMO_CFLAGS, FT_DEMO_LDFLAGS): ... these two new variables. 2022-01-20 Moazin Khatti <moazinkhatri@gmail.com> Add 'svg' module for OT-SVG rendering. * CMakeLists.txt (BASE_SRCS): Add svg module file. * meson.build (ft2_public_headers): Add `otsvg.h`. * modules.cfg (RASTER_MODULES): Add `svg` module. * builds/meson/parse_modules_cfg.py: Add svg module. * include/freetype/config/ftmodule.h: Add `ft_svg_renderer_class`. * include/freetype/fterrdef.h: Add `Invalid_SVG_Document` and `Missing_SVG_Hooks` error codes. * include/freetype/internal/fttrace.h: Add tracing for `otsvg`. * include/freetype/internal/svginterface.h: New file. It adds an interface to enable the presetting hook from the `base` module. * include/freetype/otsvg.h (SVG_Lib_Init_Func, SVG_Lib_Free_Func, SVG_Lib_Render_Func, SVG_Lib_Preset_Slot_Func): New hooks for SVG rendering. (SVG_RendererHooks): New structure to access them. * src/base/ftobjs.c: Include `svginterface.h`. (ft_glyphslot_preset_bitmap): Add code for presetting the slot for SVG glyphs. (ft_add_renderer): Updated. * src/svg/*: New files. 2022-01-20 Moazin Khatti <moazinkhatri@gmail.com> Add `FT_Glyph` support for OT-SVG glyphs. * include/freetype/ftglyph.h (FT_SvgGlyphRec, FT_SvgGlyph): New structure. * src/base/ftglyph.c: Include `otsvg.h`. (ft_svg_glyph_init, ft_svg_glyph_done, ft_svg_glyph_copy, ft_svg_glyph_transform, ft_svg_glyph_prepare): New function. (ft_svg_glyph_class): New class. (FT_New_Glyph, FT_Glyph_To_Bitmap): Updated to handle OT-SVG glyphs. * src/base/ftglyph.h: Updated. 2022-01-20 Moazin Khatti <moazinkhatri@gmail.com> [truetype, cff] Add code to load SVG document. * src/cff/cffgload.c (cff_slot_load): Add code to load SVG doc. * src/truetype/ttgload.c (TT_Load_Glyph): Add code to load SVG doc. 2022-01-20 Moazin Khatti <moazinkhatri@gmail.com> Add code to load OT-SVG glyph documents. * include/freetype/config/ftheader.h (FT_OTSVG_H): New macro. * include/freetype/freetype.h (FT_FACE_FLAG_SVG, FT_HAS_SVG): New macros. (FT_LOAD_SVG_ONLY): New internal macro. * include/freetype/ftimage.h (FT_Glyph_Format): New enumeration value `FT_GLYPH_FORMAT_SVG`. * include/freetype/internal/ftobjs.h (FT_GLYPH_OWN_GZIP_SVG): New macro. * include/freetype/internal/fttrace.h: Add `ttsvg` for `ttsvg.c`. * include/freetype/internal/sfnt.h(load_svg, free_svg, load_svg_doc): New functions. * include/freetype/internal/tttypes.h (TT_FaceRec): Add `svg` for the SVG table. * include/freetype/otsvg.h (FT_SVG_DocumentRec): New structure to hold the SVG document and other necessary information of an OT-SVG glyph in a glyph slot. * include/freetype/tttags.h (TTAG_SVG): New macro. * src/base/ftobjs.c: Include `otsvg.h`. (ft_glyphslot_init): Allocate `FT_SVG_DocumentRec` in `slot->other` if the SVG table exists. (ft_glyphslot_clear): Free it upon clean-up if it is a GZIP compressed glyph. (ft_glyphslot_done): Free the document data if it is a GZIP compressed glyph. (FT_Load_Glyph): Don't auto-hint SVG documents. * src/cache/ftcbasic.c (ftc_basic_family_load_glyph): Add support for FT_GLYPH_FORMAT_SVG. * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `ttsvg.c`. * src/sfnt/sfdriver.c: Include `ttsvg.h`. (sfnt_interface): Add `tt_face_load_svg`, `tt_face_free_svg` and `tt_face_load_svg_doc`. * src/sfnt/sfnt.c: Include `ttsvg.c`. * src/sfnt/sfobjs.c (sfnt_load_face, sfnt_done_face): Add code to load and free data of the the SVG table. * src/sfnt/ttsvg.c: New file, implementing `tt_face_load_svg`, `tt_face_free_svg` and `tt_face_load_svg_doc`. * src/sfnt/ttsvg.h: Declarations of the SVG functions in `ttsvg.c`. 2022-01-20 Moazin Khatti <moazinkhatri@gmail.com> Add flag `FT_CONFIG_OPTION_SVG`. This flag is going to be used to conditionally compile support for OT-SVG glyphs. FreeType will do the parsing and rely on external hooks for rendering of OT-SVG glyphs. * devel/ftoption.h, include/freetype/config/ftoption.h (FT_CONFIG_OPTION_SVG): New flag. 2022-01-20 Alexei Podtelezhnikov <apodtele@gmail.com> [pshinter] Avoid unnecessary zeroing. * src/pshinter/pshalgo.c (psh_hint_table_init,psh_glyph_init, psh_glyph_interpolate_normal_points): Use FT_QNEW_ARRAY. 2022-01-20 Alexei Podtelezhnikov <apodtele@gmail.com> * include/freetype/freetype.h: Clarify `FT_Size` life cycle. 2022-01-20 Alexei Podtelezhnikov <apodtele@gmail.com> [base] Undefined scale means no scale. It might be surprising that FreeType does not have default ppem and the size has to be set explicitly or face undefined behavior with undefined variables and errors. This offers an alternative to missing or zero scale by simply setting FT_LOAD_NO_SCALE. Defined behavior is bettr than undefined one. This is alternative to !132 and discussed in https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43708 * src/base/ftobjs.c (FT_Load_Glyph): Deal with zero scale. * include/freetype/freetype.h: Document it. 2022-01-18 Alexei Podtelezhnikov <apodtele@gmail.com> * src/autofit/afglobal.c (af_face_globals_new): Reduce zeroing. Everything in AF_FaceGlobals is initialized except metrics. Those are zeroed here and initialized on demand later. 2022-01-16 Alexei Podtelezhnikov <apodtele@gmail.com> [bdf,type1] Avoid unnecessary hash zeroing. * src/bdf/bdflib.c (_bdf_parse_start): Use `FT_QALLOC`. * src/type1/t1load.c (parse_subrs): Use `FT_QNEW`. 2022-01-16 Ozkan Sezer <sezeroz@gmail.com> Add Watcom C/C++ calling. In the unlikely case the source is built with OpenWatcom's -ec? switches to enforce a calling convention, the qsort() compare function must still be set to __watcall. * include/freetype/internal/compiler-macros.h (FT_COMPARE_DEF): Updated. 2022-01-15 Ben Wagner <bungeman@chromium.org> [pshinter] Avoid accessing uninitialized zone. The `normal_top.count` may be 0, implying no `normal_top.zones` exist. The code must not access these (non-existent) `normal_top.zones`. * src/pshinter/pshalgo.c (ps_hints_apply): Do not assume that `normal_top.zones[0]` is initialized. Test `normal_top.count` before using `normal_top.zones[0]`. Do not rescale if there are no `zones`. Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43675 2022-01-15 Alexei Podtelezhnikov <apodtele@gmail.com> [cache] Avoid unnecessary zeroing. * src/cache/ftccmap.c (ftc_cmap_node_new): Use `FT_QNEW`. * src/cache/ftcimage.c (FTC_INode_New): Ditto. * src/cache/ftcsbits.c (FTC_SNode_New): Ditto. 2022-01-15 Ozkan Sezer <sezeroz@gmail.com> Add Watcom C/C++ support. * include/freetype/config/integer-types.h: Make sure `long long` is used then available. * include/freetype/internal/ftcalc.h (FT_MSB): Add Watcom C/C++ pragma. 2022-01-15 Alexei Podtelezhnikov <apodtele@gmail.com> * src/sdf/ftbsdf.c (ED): s/near/prox/. This works around the Watcom C definition of `near` as restricted __near. 2022-01-15 Alexei Podtelezhnikov <apodtele@gmail.com> * include/freetype/internal/compiler-macros.h [FT_COMPARE_DEF]: Tighten. This works around Watcom C library using __watcall. 2022-01-14 Alexei Podtelezhnikov <apodtele@gmail.com> * src/pshinter/pshglob.c (psh_globals_new): Avoid zeroing. This large allocation is followed by careful initialization. Whatever is missed should be initialized manually. 2022-01-14 Alexei Podtelezhnikov <apodtele@gmail.com> * src/base/fthash.c (hash_insert): Avoid unnecessary zeroing. 2022-01-14 Alexei Podtelezhnikov <apodtele@gmail.com> * src/bdf/bdflib.c (_bdf_parse_glyphs): Remove redundant assignment. 2022-01-13 Alexei Podtelezhnikov <apodtele@gmail.com> * src/lzw/ftlzw.c (FT_Stream_OpenLZW): Avoid unnecessary zeroing. 2022-01-13 Ben Wagner <bungeman@chromium.org> [bzip2] Reset bzip stream on any error. According to the bzip documentation it is undefined what will happen if `BZ2_bzDecompress` is called on a `bz_stream` it has previously returned an error against. If `BZ2_bzDecompress` returns anything other than `BZ_OK` the only valid next action is `BZ2_bzDecompressEnd`. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43564 * src/bzip2/ftbzip2.c (FT_BZip2FileRec_): Add `reset` to track the need to reset the stream. (ft_bzip2_file_init): Initialize `reset` to 0. (ft_bzip2_file_reset): Set `reset` to 0 after resetting. (ft_bzip2_file_fill_output): Set `reset` to 1 when `BZ2_bzDecompress` returns anything other than `BZ_OK`. 2022-01-12 Werner Lemberg <wl@gnu.org> .gitlab-ci.yml: Minor comment cleanups. 2022-01-12 Azamat H. Hackimov <azamat.hackimov@gmail.com> .gitlab-ci.yml: Add steps to `before_script` to ensure recent CA. Fetch current list of valid CAs from Windows Update and manually import them to trusted datastore. This action is required to make downloads work from sites that need recent Let's Encrypt ISRG Root X1 certificate. 2022-01-11 Ben Wagner <bungeman@chromium.org> Revert "[bzip2] Avoid use of uninitialized memory." This reverts commit d276bcb7f0c02c20d3585b2e5626702df6d140a6. The original commit did avoid the use of uninitialized memory. However, it appears that the original commit is no longer required. The underlying issue was resolved by a change in freetype2-testing "Build bzip2 correctly." [0]. Prior to [0] bzip2 was built without msan, so bzip2 writes were not tracked or considered initialized. Clearing `buffer` in the original commit allowed msan to see the `buffer` content initialized once in FreeType code, but msan saw no writes into buffer from bzip2. With bzip2 now built with msan, the bzip2 writes are properly instrumented and msan sees the bzip2 writes into the buffer. As a result the original commit can be safely reverted to allow for better detection of other uninitialized data scenarios. * src/bzip2/ftbzip2.c (FT_Stream_OpenBzip2): Revert to using `FT_QNEW`. [0] https://github.com/freetype/freetype2-testing/commit/3c052a837a3c960709227a0d6ddd256e87b88853 2022-01-11 Ben Wagner <bungeman@chromium.org> [type42] Track how much type42 ttf data is available. Currently `T42_Open_Face` eagerly allocates 12 bytes for the ttf header data which it expects `t42_parse_sfnts` to fill out from /sfnts data. However, there is no guarantee that `t42_parse_sfnts` will actually be called while parsing the type42 data as the /sfnts array may be missing or very short. This is also confusing behavior as it means `T42_Open_Face` is tightly coupled to the implementation of the very distant `t42_parse_sfnts` code which requires at least 12 bytes to already be reserved in `face->ttf_data`. `t42_parse_sfnts` itself eagerly updates `face->ttf_size` to track how much space is reserved for ttf data instead of traking how much data has actually been written into `face->ttf_data`. It will also act strangely in the presense of multiple /sfnts arrays. * src/type42/t42objs.c (T42_Open_Face): ensure `ttf_data` is initialized to NULL. Free `ttf_data` on error. * src/type42/t42parse.c (t42_parse_sfnts): delay setting `ttf_size` and set it to the actual number of bytes read. Ensure `ttf_data` is freed if there are multiple /sfnts arrays or there are any errors. 2022-01-11 Dominik Röttsches <drott@chromium.org> [sfnt] Fix limit checks for `COLR` v1 ClipBoxes * src/sfnt/ttcolr.c (tt_face_get_color_glyph_clipbox): Fix off-by-one in limit checks. 2022-01-11 Werner Lemberg <wl@gnu.org> Update all copyright notices. 2022-01-11 Werner Lemberg <wl@gnu.org> * src/sfnt/ttcolr.c (read_paint): Fix undefined left-shift operation. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43151 2022-01-11 Werner Lemberg <wl@gnu.org> * src/type42/t42objs.c (T42_Open_Face): Avoid use of uninitialized memory. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43508 2022-01-11 Werner Lemberg <wl@gnu.org> .gitlab-ci.yml: Fix typo in previous commit. 2022-01-11 Werner Lemberg <wl@gnu.org> .gitlab-ci.yml: Update Windows image. The old image produced errors like ``` Downloading zlib patch from https://wrapdb.mesonbuild.com/v2/zlib_1.2.11-5/get_patch A fallback URL could be specified using patch_fallback_url key in the wrap file WrapDB connection failed to https://wrapdb.mesonbuild.com/v2/zlib_1.2.11-5/get_patch with error <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1122)> ``` 2022-01-11 Werner Lemberg <wl@gnu.org> * subprojects/zlib.wrap: Update from upstream. 2022-01-10 Werner Lemberg <wl@gnu.org> * src/sfnt/ttcolr.c (tt_face_get_color_glyph_clipbox): Add limit checks. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40716 2022-01-10 Werner Lemberg <wl@gnu.org> [zlib] Don't typedef `ptrdiff_t`. While using zlib in 'solo' mode (via the `Z_SOLO` macro), we actually include some standard header files, making the typedef fail on systems where the native `ptrdiff_t` type differs. Fixes #1124. * src/zlib/zutil.h: Comment out definition; it doesn't work on Windows. * src/zlib/patches/freetype-zlib.diff: Updated. 2022-01-10 Werner Lemberg <wl@gnu.org> [zlib] Some organizational changes. We now first apply zlib's `zlib2ansi` script, then FreeType's patch file. * src/gzip/README.freetype: Updated. * patches/0001-zlib-Fix-zlib-sources-to-compile-for-FreeType.patch: Renamed to... * patches/freetype-zlib.diff: This. Clean up description, then regenerate it as follows: - Copy unmodified files from `zlib` repository. - Run `zlib2ansi` script. - Run `git diff -R > patches/freetype-zlib.diff.new`. - Insert patch description of old diff file, then replace old diff with new diff file. 2022-01-09 David Turner <david@freetype.org> [gzip] Update sources to zlib 1.2.11 This can be tested by building with the Unix development build make setup devel make or by building the freetype-demos programs with meson setup build -Dfreetype2:zlib=internal meson compile -C out and trying to run `ftview` with a `.pcf.gz` font file. * src/gzip/ftgzip.c, src/gzip/rules.mk: Update for new zlib sources. Also remove the temporary fix introduced in commit 6a431038 to work around the fact that the internal sources were too old. * src/gzip/README.freetype: New file describing the origin of the sources and how they were modified. * src/gzip/patches/*: Patch files applied to original sources. * src/gzip/*: Updated zlib sources with the patch file(s) from `src/gzip/patches/` applied, followed by a conversion with zlib's `zlib2ansi` script. 2022-01-09 David Turner <david@freetype.org> [meson] Change Zlib configuration option. * meson_options.txt, meson.build: Change the format of the 'zlib' meson build configuration option to be a combo with the following choices: - none: Do not support gzip-compressed streams at all. - internal: Support gzip-compressed streams using the copy of the gzip sources under `src/gzip/`; this should only be used during development to ensure these work properly. - external: Support gzip-compressed streams using the 'zlib' Meson subproject, linked as a static library. - system: Support gzip-compressed streams using a system-installed version of zlib. - auto: Support gzip-compressed streams using a system-installed version of zlib, if available, or using the 'zlib' subproject otherwise. This is the default. - disabled: Backward-compatible alias for 'none'. - enabled: Backward-compatible alias for 'auto'. 2022-01-09 Werner Lemberg <wl@gnu.org> [bzip2] Avoid use of uninitialized memory. * src/bzip2/ftbzip2.c (FT_Stream_OpenBzip2): Don't use `FT_QNEW` but `FT_NEW` for setting up `zip` to avoid uninitialized memory access while handling malformed PCF fonts later on. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=42800 2022-01-09 Alexei Podtelezhnikov <apodtele@gmail.com> [sfnt] Fix off-by-one error. The 0-base index is equal to the number of previosly parsed entries. It is an error to adjust it by one to get the number truncated by a stream error. This is probably inconsequential because valid entries are correctly accounted for. * src/sfnt/ttload.c (check_table_dir): Do not adjust the truncated number of tables. 2022-01-08 Werner Lemberg <wl@gnu.org> [sfnt, type42] Correct previous commit. Really fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=42773. * src/sfnt/ttload.c (check_table_dir): Revert change. * src/type42/t42.parse.c (t42_parse_sfnts): Don't use `FT_QREALLOC` but `FT_REALLOC` for setting up `ttf_data` to avoid uninitialized memory access while handling malformed TrueType fonts later on. 2022-01-07 Werner Lemberg <wl@gnu.org> * src/sfnt/ttload.c (check_table_dir): Initialize `table`. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=42773 2022-01-07 Werner Lemberg <wl@gnu.org> [sfnt] Avoid 'runtime error: applying zero offset to null pointer'. * src/sfnt/ttsbit.c (tt_sbit_decoder_load_byte_aligned): Exit early if `line` is NULL. 2022-01-07 Werner Lemberg <wl@gnu.org> [autofit, pshinter] Use `FT_OFFSET`. This avoids ``` runtime error: applying zero offset to null pointer ``` warnings of clang's undefined behaviour sanitizer. * src/autofit/afcjk.c (af_cjk_hints_link_segments, af_cjk_hints_compute_edges, af_cjk_hints_compute_blue_edges, af_cjk_hint_edges, af_cjk_align_edge_points): Do it. * src/autofit/afhints.c (af_glyph_hints_align_edge_points, af_glyph_hints_align_strong_points): Ditto. * src/autofit/aflatin.c (af_latin_metrics_init_widths, af_latin_hints_link_segments, af_latin_hints_compute_edges, af_latin_hints_compute_blue_edges, af_latin_hint_edges): Ditto. * src/pshinter/pshalgo.c (psh_hint_table_init): Ditto. 2022-01-06 Ben Wagner <bungeman@chromium.org> [truetype] Reset localpoints when varying cvt. When iterating over the cvt tuples and reading in the points it is necessary to set all of `localpoints`, `points`, and `point_count` in all cases. The existing code did not reset `localpoints` to `NULL` when there were no private point numbers. If the previous tuple did have private point numbers and set `localpoints` to `ALL_POINTS` this would not be cleared and the wrong branch would be taken later, leading to possible heap buffer overflow. * src/truetype/ttgxvar.c (tt_face_vary_cvt): Reset `localpoints` to `NULL` when it isn't valid. Fixes: https://crbug.com/1284742 2022-01-02 Werner Lemberg <wl@gnu.org> * builds/unix/configure.raw: Restore `SYSTEM_ZLIB` variable. This was accidentally removed with commit 93ebcbd0 almost eight years ago. 2021-12-27 Alexander Borsuk <me@alex.bio> Fix warnings for CMake Unity builds. * src/cache/ftcbasic.c (FT_COMPONENT): Undefine macro before redefinition. * src/smooth/ftgrays.c (TRUNC, FRACT): Ditto. 2021-12-18 Alexander Borsuk <alexander.borsuk@qnective.com> Clang-Tidy warning fixes. * src/base/ftobjs.c (FT_Get_Paint): Operator has equivalent nested operands. * src/bdf/bdflib.c (_bdf_add_property): Value stored to `fp` is never read. * src/sdf/ftbsdf.c (bsdf_init_distance_map): Value stored to `pixel` is never read. * src/sdf/ftsdf.c (split_sdf_shape): Value stored to `error` is never read. 2021-12-17 Eli Schwartz <eschwartz@archlinux.org> * meson.build: Optimize lookup for `python3` program. The python module's `find_installation` method is intended to provide routines for compiling and installing python modules into the `site-packages` directory. It does a couple of slow things, including run an introspection command to scrape sysconfig info from the detected interpreter, which are not needed for the sole use case of invoking the found installation as an executable. Furthermore, when invoked without the name or path of a python binary, it is hardcoded to always look for `python3` corresponding to the interpreter meson itself uses to run. So using `find_installation` did not even allow detecting `python2` as a fallback. Instead, switch to a simple `find_program` lookup that finishes as soon as the program is found. 2021-12-17 Eli Schwartz <eschwartz@archlinux.org> * builds/meson/*.py: Fix name of python executable for auxiliary scripts. The previous change to check the return code of `run_command` invocations caused the CI to fail. Although most scripts used `python_exe` as the program command, the script to determine the project version did not. But, all scripts used `python` as the shebang, and this is not available on all systems. Particularly Debian does not provide a `python` command, though `python3` does exist. This meant that formerly the version number was lacking, and now the build simply fails. Instead, rely on `python3` since it is guaranteed to exist when running meson, and `python2` is end of life anyway. 2021-12-17 Eli Schwartz <eschwartz@archlinux.org> * meson.build: Check the return value of `run_command`. By default, errors are not checked and a command that is somehow broken will just capture incorrect output (likely an empty string). Current development versions of meson now raise a warning for this implicit behavior, and advise explicitly setting the `check:` keyword argumend to determine whether a failing return code should be considered an error. Since none of the commands in this project are expected to fail, mark them as required to succeed. 2021-12-13 Alexei Podtelezhnikov <apodtele@gmail.com> [truetype] Upstream the hdmx binary search. * src/truetype/ttobjs.h (TT_SizeRec): Add `widthp` for the hdmx widths. * src/truetype/ttobjs.c (tt_size_reset): Initialize `widthp` even though it might never be used by the interpreter. * src/truetype/ttgload.c (tt_loader_init): Avoid repeated searches in the hdmx table. 2021-12-12 Alexei Podtelezhnikov <apodtele@gmail.com> [truetype] Reset the IUP-called flags for each subglyph. This fixes fall-out from 7809007a5b88b15, where the composite accents were no longer hinted. * src/truetype/ttgload.c (ttloader_init): Move the IUP-called flag initialization from here... * src/truetype/ttinterp.c (TT_Run_Context): ... to here. 2021-12-12 Alexei Podtelezhnikov <apodtele@gmail.com> [truetype] Binary search through the `hdmx` records. The `hdmx` table is supposed to be sorted by ppem size, which enables binary search. We also drop the check for the sufficient length of the record because it is now enforced when the table is loaded. * include/freetype/internal/tttypes.h (TT_FaceRec): Store the `hdmx` record pointers sorted by ppem instead of ppem's themselves. * src/truetype/ttpload.c (tt_face_load_hdmx): Prudently sort records. (tt_face_get_device_metrics): Implement binary search to retrieve advances. 2021-12-12 Alexei Podtelezhnikov <apodtele@gmail.com> [truetype] Honor FT_LOAD_ADVANCE_ONLY if `hdmx` is usable. This simply shortcuts the glyph loading if FT_LOAD_ADVANCE_ONLY is specified by FT_Get_Advances and the `hdmx` data are located. Particularly, the classic v35 interpreter or "verified" ClearType fonts might see 100x speed up in retrieving the hdmx cache. * src/truetype/ttgload.c (TT_Load_Glyph): Insert the shortcut. 2021-12-12 Alexei Podtelezhnikov <apodtele@gmail.com> [truetype] Initialize the loader with `hdmx` data. The `hdmx` matching can be done before the glyph is loaded. * include/freetype/internal/tttypes.h (TT_LoaderRec): Add a field. * src/truetype/ttgload.c (compute_glyph_metrics): Relocate the `hdmx` code from here... (tt_loader_init): ... to here, before the glyph is loaded. 2021-12-12 Alexei Podtelezhnikov <apodtele@gmail.com> [truetype] Relocate subpixel flag setting. `TT_RunIns` is too busy to deal with subpixel flags. It is better to set them in `tt_loader_init`, which is executed before each glyph program. * src/truetype/ttinterp.c (TT_RunIns): Move the flag setting from here... * src/truetype/ttgload.c (tt_loader_init): ... to here. 2021-12-12 Alexei Podtelezhnikov <apodtele@gmail.com> [truetype] Limit INSTCTRL appication within specs. * src/truetype/ttinterp.c (Ins_INSTCTRL): Limit its global effects to the CVT program and local effects to the glyph program. This also fixes an Infinality buglet. The `ignore_x_mode` should be locally unset by the glyph program. 2021-12-09 Ben Wagner <bungeman@chromium.org> [bdf] Fix use of uninitialized value. In _bdf_readstream if the data contained no newline then the buffer would continue to grow and uninitialized data read until either the uninitialized data contained a newline or the buffer reached its maxiumum size. The assumption was that the line was always too long and the buffer had been filled, however this case can also happen when there is not enough data to fill the buffer. Correct this by properly setting the cursor to the end of the available data, which may be different from the end of the buffer. This may still result in one extra allocation, but only on malformed fonts. * src/bdf/bdflib.c (_bfd_readstream): Correctly update cursor. Remove unread set of `avail`. Bug: https://lists.nongnu.org/archive/html/freetype-devel/2021-12/msg00001.html 2021-12-07 Alexei Podtelezhnikov <apodtele@gmail.com> [truetype] Reduce Infinality footprint again. * src/truetype/ttgload.c (compute_glyph_metrics): Streamline and prioritize the Infinality checks to use `hdmx`. 2021-12-07 Cameron Cawley <ccawley2011@gmail.com> [builds/windows] Guard some non-ancient API. We can support Windows 98 and NT 4.0 in principle... * builds/windows/ftdebug.c, builds/windows/ftsystem.c: Check for the ancient SDK using _WIN32_WINDOWS, _WIN32_WCE, or _WIN32_WINNT. 2021-12-07 Cameron Cawley <ccawley2011@gmail.com> * builds/windows/visualc/freetype.vcproj: Add missing file. 2021-12-02 Werner Lemberg <wl@gnu.org> * Version 2.11.1 released. ========================== Tag sources with `VER-2-11-1'. |
︙ | ︙ |
Changes to jni/freetype/Makefile.
1 2 3 4 5 | # # FreeType 2 build system -- top-level Makefile # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 build system -- top-level Makefile # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/README.
|
| | | 1 2 3 4 5 6 7 8 | FreeType 2.12.0 =============== Homepage: https://www.freetype.org FreeType is a freely available software library to render fonts. It is written in C, designed to be small, efficient, highly |
︙ | ︙ | |||
26 27 28 29 30 31 32 | Additional documentation is available as a separate package from our sites. Go to https://download.savannah.gnu.org/releases/freetype/ and download one of the following files. | | | | | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | Additional documentation is available as a separate package from our sites. Go to https://download.savannah.gnu.org/releases/freetype/ and download one of the following files. freetype-doc-2.12.0.tar.xz freetype-doc-2.12.0.tar.gz ftdoc2120.zip To view the documentation online, go to https://www.freetype.org/freetype2/docs/ Mailing Lists |
︙ | ︙ | |||
88 89 90 91 92 93 94 | Enjoy! The FreeType Team ---------------------------------------------------------------------- | | | 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | Enjoy! The FreeType Team ---------------------------------------------------------------------- Copyright (C) 2006-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. --- end of README --- |
Changes to jni/freetype/README.git.
︙ | ︙ | |||
85 86 87 88 89 90 91 | address: wl@gnu.org apodtele@gmail.com ---------------------------------------------------------------------- | | | 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | address: wl@gnu.org apodtele@gmail.com ---------------------------------------------------------------------- Copyright (C) 2005-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/autogen.sh.
1 2 | #!/bin/sh | | | 1 2 3 4 5 6 7 8 9 10 | #!/bin/sh # Copyright (C) 2005-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/amiga/README.
1 2 3 | README for the builds/amiga subdirectory. | | | 1 2 3 4 5 6 7 8 9 10 11 | README for the builds/amiga subdirectory. Copyright (C) 2005-2022 by Werner Lemberg and Detlef Würkner. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/builds/amiga/include/config/ftconfig.h.
1 2 3 4 5 6 | /***************************************************************************/ /* */ /* ftconfig.h */ /* */ /* Amiga-specific configuration file (specification only). */ /* */ | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /***************************************************************************/ /* */ /* ftconfig.h */ /* */ /* Amiga-specific configuration file (specification only). */ /* */ /* Copyright (C) 2005-2022 by */ /* Werner Lemberg and Detlef Würkner. */ /* */ /* This file is part of the FreeType project, and may only be used, */ /* modified, and distributed under the terms of the FreeType project */ /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ /* this file you indicate that you have read the license and */ /* understand and accept it fully. */ |
︙ | ︙ |
Changes to jni/freetype/builds/amiga/include/config/ftmodule.h.
1 2 3 4 5 6 | /***************************************************************************/ /* */ /* ftmodule.h */ /* */ /* Amiga-specific FreeType module selection. */ /* */ | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /***************************************************************************/ /* */ /* ftmodule.h */ /* */ /* Amiga-specific FreeType module selection. */ /* */ /* Copyright (C) 2005-2022 by */ /* Werner Lemberg and Detlef Würkner. */ /* */ /* This file is part of the FreeType project, and may only be used, */ /* modified, and distributed under the terms of the FreeType project */ /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ /* this file you indicate that you have read the license and */ /* understand and accept it fully. */ |
︙ | ︙ |
Changes to jni/freetype/builds/amiga/makefile.
1 2 3 4 5 6 7 | # # Makefile for FreeType2 link library using ppc-morphos-gcc-2.95.3-bin.tgz # (gcc 2.95.3 hosted on 68k-Amiga producing MorphOS-PPC-binaries from # http://www.morphos.de) # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # # Makefile for FreeType2 link library using ppc-morphos-gcc-2.95.3-bin.tgz # (gcc 2.95.3 hosted on 68k-Amiga producing MorphOS-PPC-binaries from # http://www.morphos.de) # # Copyright (C) 2005-2022 by # Werner Lemberg and Detlef Würkner. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/amiga/makefile.os4.
1 2 3 4 5 6 | # # Makefile for FreeType2 link library using gcc 4.0.3 from the # AmigaOS4 SDK # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # # Makefile for FreeType2 link library using gcc 4.0.3 from the # AmigaOS4 SDK # # Copyright (C) 2005-2022 by # Werner Lemberg and Detlef Würkner. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/amiga/smakefile.
1 2 3 4 5 | # # Makefile for FreeType2 link library using Amiga SAS/C 6.58 # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # Makefile for FreeType2 link library using Amiga SAS/C 6.58 # # Copyright (C) 2005-2022 by # Werner Lemberg and Detlef Würkner. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/amiga/src/base/ftdebug.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftdebug.c * * Debugging and logging component for amiga (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftdebug.c * * Debugging and logging component for amiga (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, Werner Lemberg, and Detlef Wuerkner. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/builds/amiga/src/base/ftsystem.c.
1 2 3 4 5 6 | /***************************************************************************/ /* */ /* ftsystem.c */ /* */ /* Amiga-specific FreeType low-level system interface (body). */ /* */ | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /***************************************************************************/ /* */ /* ftsystem.c */ /* */ /* Amiga-specific FreeType low-level system interface (body). */ /* */ /* Copyright (C) 1996-2022 by */ /* David Turner, Robert Wilhelm, Werner Lemberg and Detlef Würkner. */ /* */ /* This file is part of the FreeType project, and may only be used, */ /* modified, and distributed under the terms of the FreeType project */ /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ /* this file you indicate that you have read the license and */ /* understand and accept it fully. */ |
︙ | ︙ |
Changes to jni/freetype/builds/ansi/ansi-def.mk.
1 2 3 4 5 | # # FreeType 2 configuration rules for a `normal' ANSI system # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration rules for a `normal' ANSI system # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/ansi/ansi.mk.
1 2 3 4 5 | # # FreeType 2 configuration rules for a `normal' pseudo ANSI compiler/system # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration rules for a `normal' pseudo ANSI compiler/system # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/beos/beos-def.mk.
1 2 3 4 5 6 7 | # # FreeType 2 configuration rules for a BeOS system # # this is similar to the "ansi-def.mk" file, except for BUILD and PLATFORM # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # # FreeType 2 configuration rules for a BeOS system # # this is similar to the "ansi-def.mk" file, except for BUILD and PLATFORM # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/beos/beos.mk.
1 2 3 4 | # # FreeType 2 configuration rules for a BeOS system # | | | 1 2 3 4 5 6 7 8 9 10 11 12 | # # FreeType 2 configuration rules for a BeOS system # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/beos/detect.mk.
1 2 3 4 5 | # # FreeType 2 configuration file to detect an BeOS host platform. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration file to detect an BeOS host platform. # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/cmake/FindBrotliDec.cmake.
1 2 | # FindBrotliDec.cmake # | | | 1 2 3 4 5 6 7 8 9 10 | # FindBrotliDec.cmake # # Copyright (C) 2019-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # Written by Werner Lemberg <wl@gnu.org> # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you |
︙ | ︙ |
Changes to jni/freetype/builds/cmake/iOS.cmake.
1 2 | # iOS.cmake # | | | 1 2 3 4 5 6 7 8 9 10 | # iOS.cmake # # Copyright (C) 2014-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # Written by David Wimsey <david@wimsey.us> # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you |
︙ | ︙ |
Changes to jni/freetype/builds/cmake/testbuild.sh.
1 2 | #!/bin/sh -e | | | 1 2 3 4 5 6 7 8 9 10 | #!/bin/sh -e # Copyright (C) 2015-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/compiler/ansi-cc.mk.
1 2 3 4 5 | # # FreeType 2 generic pseudo ANSI compiler # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 generic pseudo ANSI compiler # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/compiler/bcc-dev.mk.
1 2 3 4 5 | # # FreeType 2 Borland C++-specific with NO OPTIMIZATIONS + DEBUGGING # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Borland C++-specific with NO OPTIMIZATIONS + DEBUGGING # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/compiler/bcc.mk.
1 2 3 4 5 | # # FreeType 2 Borland C++-specific rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Borland C++-specific rules # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/compiler/emx.mk.
1 2 3 4 5 | # # FreeType 2 emx-specific definitions # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 emx-specific definitions # # Copyright (C) 2003-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/compiler/gcc-dev.mk.
1 2 3 4 5 | # # FreeType 2 gcc-specific with NO OPTIMIZATIONS + DEBUGGING # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 gcc-specific with NO OPTIMIZATIONS + DEBUGGING # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/compiler/gcc.mk.
1 2 3 4 5 | # # FreeType 2 gcc-specific definitions # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 gcc-specific definitions # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/compiler/intelc.mk.
1 2 3 4 5 | # # FreeType 2 Intel C/C++ definitions (VC++ compatibility mode) # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Intel C/C++ definitions (VC++ compatibility mode) # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/compiler/unix-lcc.mk.
1 2 3 4 5 | # # FreeType 2 Unix LCC specific definitions # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Unix LCC specific definitions # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/compiler/visualage.mk.
1 2 3 4 5 | # # FreeType 2 Visual Age C++ specific definitions # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Visual Age C++ specific definitions # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/compiler/visualc.mk.
1 2 3 4 5 | # # FreeType 2 Visual C++ definitions # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Visual C++ definitions # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/compiler/watcom.mk.
1 2 3 4 5 | # # FreeType 2 Watcom-specific definitions # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Watcom-specific definitions # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/compiler/win-lcc.mk.
1 2 3 4 5 | # # FreeType 2 Win32-LCC specific definitions # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Win32-LCC specific definitions # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/detect.mk.
1 2 3 4 5 | # # FreeType 2 host platform detection rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 host platform detection rules # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/dos/detect.mk.
1 2 3 4 5 | # # FreeType 2 configuration file to detect a DOS host platform. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration file to detect a DOS host platform. # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/dos/dos-def.mk.
1 2 3 4 5 | # # FreeType 2 DOS specific definitions # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 DOS specific definitions # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/dos/dos-emx.mk.
1 2 3 4 5 | # # FreeType 2 configuration rules for the EMX gcc compiler # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration rules for the EMX gcc compiler # # Copyright (C) 2003-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/dos/dos-gcc.mk.
1 2 3 4 5 | # # FreeType 2 configuration rules for the DJGPP compiler # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration rules for the DJGPP compiler # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/dos/dos-wat.mk.
1 2 3 4 5 | # # FreeType 2 configuration rules for the Watcom C/C++ compiler # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration rules for the Watcom C/C++ compiler # # Copyright (C) 2003-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/exports.mk.
1 2 3 4 5 | # # FreeType 2 exports sub-Makefile # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 exports sub-Makefile # # Copyright (C) 2005-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/freetype.mk.
1 2 3 4 5 | # # FreeType 2 library sub-Makefile # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 library sub-Makefile # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/link_dos.mk.
1 2 3 4 5 | # # Link instructions for Dos-like systems (Dos, Win32, OS/2) # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # Link instructions for Dos-like systems (Dos, Win32, OS/2) # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/link_std.mk.
1 2 3 4 5 | # # Link instructions for standard systems # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # Link instructions for standard systems # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/mac/freetype-Info.plist.
1 2 3 4 5 6 7 8 9 10 11 | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>CFBundleExecutable</key> | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>CFBundleExecutable</key> <string>freetype</string> <key>CFBundleGetInfoString</key> <string>FreeType ${PROJECT_VERSION}</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> |
︙ | ︙ |
Changes to jni/freetype/builds/mac/ftmac.c.
1 2 3 4 5 6 7 | /***************************************************************************/ /* */ /* ftmac.c */ /* */ /* Mac FOND support. Written by just@letterror.com. */ /* Heavily Fixed by mpsuzuki, George Williams and Sean McBride */ /* */ | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /***************************************************************************/ /* */ /* ftmac.c */ /* */ /* Mac FOND support. Written by just@letterror.com. */ /* Heavily Fixed by mpsuzuki, George Williams and Sean McBride */ /* */ /* Copyright (C) 1996-2022 by */ /* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ /* modified, and distributed under the terms of the FreeType project */ /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ /* this file you indicate that you have read the license and */ /* understand and accept it fully. */ |
︙ | ︙ | |||
93 94 95 96 97 98 99 | #if defined( __MWERKS__ ) && !TARGET_RT_MAC_MACHO #include <FSp_fopen.h> #endif #define FT_DEPRECATED_ATTRIBUTE | | | 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | #if defined( __MWERKS__ ) && !TARGET_RT_MAC_MACHO #include <FSp_fopen.h> #endif #define FT_DEPRECATED_ATTRIBUTE #include <freetype/ftmac.h> /* undefine blocking-macros in ftmac.h */ #undef FT_GetFile_From_Mac_Name #undef FT_GetFile_From_Mac_ATS_Name #undef FT_New_Face_From_FOND #undef FT_New_Face_From_FSSpec #undef FT_New_Face_From_FSRef |
︙ | ︙ |
Changes to jni/freetype/builds/meson/extract_freetype_version.py.
|
| | | | 1 2 3 4 5 6 7 8 9 10 | #!/usr/bin/env python3 # # Copyright (C) 2020-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/meson/extract_libtool_version.py.
|
| | | | 1 2 3 4 5 6 7 8 9 10 | #!/usr/bin/env python3 # # Copyright (C) 2020-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/meson/generate_reference_docs.py.
|
| | | | 1 2 3 4 5 6 7 8 9 10 | #!/usr/bin/env python3 # # Copyright (C) 2020-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/meson/parse_modules_cfg.py.
|
| | | | 1 2 3 4 5 6 7 8 9 10 | #!/usr/bin/env python3 # # Copyright (C) 2020-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ | |||
83 84 85 86 87 88 89 90 91 92 93 94 95 96 | "FT_USE_MODULE( FT_Module_Class, %s_module_class )\n" % module ) for module in lists["RASTER_MODULES"]: name = { "raster": "ft_raster1", "smooth": "ft_smooth", }.get(module) result += ( "FT_USE_MODULE( FT_Renderer_Class, %s_renderer_class )\n" % name ) for module in lists["AUX_MODULES"]: if module in ("psaux", "psnames", "otvalid", "gxvalid"): | > | 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | "FT_USE_MODULE( FT_Module_Class, %s_module_class )\n" % module ) for module in lists["RASTER_MODULES"]: name = { "raster": "ft_raster1", "smooth": "ft_smooth", "svg": "ft_svg", }.get(module) result += ( "FT_USE_MODULE( FT_Renderer_Class, %s_renderer_class )\n" % name ) for module in lists["AUX_MODULES"]: if module in ("psaux", "psnames", "otvalid", "gxvalid"): |
︙ | ︙ |
Changes to jni/freetype/builds/meson/process_ftoption_h.py.
|
| | | | 1 2 3 4 5 6 7 8 9 10 | #!/usr/bin/env python3 # # Copyright (C) 2020-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/modules.mk.
1 2 3 4 5 | # # FreeType 2 modules sub-Makefile # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 modules sub-Makefile # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/os2/detect.mk.
1 2 3 4 5 | # # FreeType 2 configuration file to detect an OS/2 host platform. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration file to detect an OS/2 host platform. # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/os2/os2-def.mk.
1 2 3 4 5 | # # FreeType 2 OS/2 specific definitions # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 OS/2 specific definitions # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/os2/os2-dev.mk.
1 2 3 4 5 6 7 | # # FreeType 2 configuration rules for OS/2 + GCC # # Development version without optimizations. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # # FreeType 2 configuration rules for OS/2 + GCC # # Development version without optimizations. # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/os2/os2-gcc.mk.
1 2 3 4 5 | # # FreeType 2 configuration rules for the OS/2 + gcc # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration rules for the OS/2 + gcc # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/symbian/bld.inf.
1 2 3 4 | // // FreeType 2 project for the symbian platform // | | | 1 2 3 4 5 6 7 8 9 10 11 12 | // // FreeType 2 project for the symbian platform // // Copyright (C) 2008-2022 by // David Turner, Robert Wilhelm, and Werner Lemberg. // // This file is part of the FreeType project, and may only be used, modified, // and distributed under the terms of the FreeType project license, // LICENSE.TXT. By continuing to use, modify, or distribute this file you // indicate that you have read the license and understand and accept it // fully. |
︙ | ︙ |
Changes to jni/freetype/builds/symbian/freetype.mmp.
1 2 3 4 | // // FreeType 2 makefile for the symbian platform // | | | 1 2 3 4 5 6 7 8 9 10 11 12 | // // FreeType 2 makefile for the symbian platform // // Copyright (C) 2008-2022 by // David Turner, Robert Wilhelm, and Werner Lemberg. // // This file is part of the FreeType project, and may only be used, modified, // and distributed under the terms of the FreeType project license, // LICENSE.TXT. By continuing to use, modify, or distribute this file you // indicate that you have read the license and understand and accept it // fully. |
︙ | ︙ |
Changes to jni/freetype/builds/toplevel.mk.
1 2 3 4 5 | # # FreeType build system -- top-level sub-Makefile # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType build system -- top-level sub-Makefile # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ | |||
300 301 302 303 304 305 306 | sh autogen.sh rm -rf builds/unix/autom4te.cache cp $(CONFIG_GUESS) builds/unix cp $(CONFIG_SUB) builds/unix | | > < < | | 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 | sh autogen.sh rm -rf builds/unix/autom4te.cache cp $(CONFIG_GUESS) builds/unix cp $(CONFIG_SUB) builds/unix @# Generate `ChangeLog' file with commits since release 2.11.0 @# (when we stopped creating this file manually). $(CHANGELOG_SCRIPT) \ --format='%B%n' \ --no-cluster \ -- VER-2-11-0..$(version_tag) \ > ChangeLog @# Remove intermediate files created by the `refdoc' target. rm -rf docs/markdown rm -f docs/mkdocs.yml @# Remove more stuff related to git. rm -rf subprojects # EOF |
Changes to jni/freetype/builds/unix/config.guess.
1 2 | #! /bin/sh # Attempt to guess a canonical system name. | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2022 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale timestamp='2022-01-09' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # |
︙ | ︙ | |||
56 57 58 59 60 61 62 | Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. | | | 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." |
︙ | ︙ | |||
433 434 435 436 437 438 439 | set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ | | | 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 | set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=$SUN_ARCH-pc-solaris2$SUN_REL |
︙ | ︙ | |||
925 926 927 928 929 930 931 932 933 934 935 936 937 938 | ;; *:MSYS*:*) GUESS=$UNAME_MACHINE-pc-msys ;; i*:PW*:*) GUESS=$UNAME_MACHINE-pc-pw32 ;; *:Interix*:*) case $UNAME_MACHINE in x86) GUESS=i586-pc-interix$UNAME_RELEASE ;; authenticamd | genuineintel | EM64T) GUESS=x86_64-unknown-interix$UNAME_RELEASE | > > > | 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 | ;; *:MSYS*:*) GUESS=$UNAME_MACHINE-pc-msys ;; i*:PW*:*) GUESS=$UNAME_MACHINE-pc-pw32 ;; *:SerenityOS:*:*) GUESS=$UNAME_MACHINE-pc-serenity ;; *:Interix*:*) case $UNAME_MACHINE in x86) GUESS=i586-pc-interix$UNAME_RELEASE ;; authenticamd | genuineintel | EM64T) GUESS=x86_64-unknown-interix$UNAME_RELEASE |
︙ | ︙ | |||
1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 | i*86:skyos:*:*) SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL ;; i*86:rdos:*:*) GUESS=$UNAME_MACHINE-pc-rdos ;; *:AROS:*:*) GUESS=$UNAME_MACHINE-unknown-aros ;; x86_64:VMkernel:*:*) GUESS=$UNAME_MACHINE-unknown-esx ;; amd64:Isilon\ OneFS:*:*) | > > > | 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 | i*86:skyos:*:*) SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL ;; i*86:rdos:*:*) GUESS=$UNAME_MACHINE-pc-rdos ;; i*86:Fiwix:*:*) GUESS=$UNAME_MACHINE-pc-fiwix ;; *:AROS:*:*) GUESS=$UNAME_MACHINE-unknown-aros ;; x86_64:VMkernel:*:*) GUESS=$UNAME_MACHINE-unknown-esx ;; amd64:Isilon\ OneFS:*:*) |
︙ | ︙ |
Changes to jni/freetype/builds/unix/config.sub.
1 2 | #! /bin/sh # Configuration validation subroutine script. | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2022 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale timestamp='2022-01-03' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # |
︙ | ︙ | |||
72 73 74 75 76 77 78 | -v, --version print version number, then exit Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) | | | 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | -v, --version print version number, then exit Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) Copyright 1992-2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." |
︙ | ︙ | |||
1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 | ;; xps-unknown | xps100-unknown) cpu=xps100 vendor=honeywell ;; # Here we normalize CPU types with a missing or matching vendor dpx20-unknown | dpx20-bull) cpu=rs6000 vendor=bull basic_os=${basic_os:-bosx} ;; # Here we normalize CPU types irrespective of the vendor | > > > > > | 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 | ;; xps-unknown | xps100-unknown) cpu=xps100 vendor=honeywell ;; # Here we normalize CPU types with a missing or matching vendor armh-unknown | armh-alt) cpu=armv7l vendor=alt basic_os=${basic_os:-linux-gnueabihf} ;; dpx20-unknown | dpx20-bull) cpu=rs6000 vendor=bull basic_os=${basic_os:-bosx} ;; # Here we normalize CPU types irrespective of the vendor |
︙ | ︙ | |||
1117 1118 1119 1120 1121 1122 1123 | ;; x64-*) cpu=x86_64 ;; xscale-* | xscalee[bl]-*) cpu=`echo "$cpu" | sed 's/^xscale/arm/'` ;; | | | 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 | ;; x64-*) cpu=x86_64 ;; xscale-* | xscalee[bl]-*) cpu=`echo "$cpu" | sed 's/^xscale/arm/'` ;; arm64-* | aarch64le-*) cpu=aarch64 ;; # Recognize the canonical CPU Types that limit and/or modify the # company names they are paired with. cr16-*) basic_os=${basic_os:-elf} |
︙ | ︙ | |||
1300 1301 1302 1303 1304 1305 1306 | esac # Decode manufacturer-specific aliases for certain operating systems. if test x$basic_os != x then | | | 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 | esac # Decode manufacturer-specific aliases for certain operating systems. if test x$basic_os != x then # First recognize some ad-hoc cases, or perhaps split kernel-os, or else just # set os. case $basic_os in gnu/linux*) kernel=linux os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` ;; os2-emx) |
︙ | ︙ | |||
1744 1745 1746 1747 1748 1749 1750 | | storm-chaos* | tops10* | tenex* | tops20* | its* \ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ | skyos* | haiku* | rdos* | toppers* | drops* | es* \ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ | | > | 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 | | storm-chaos* | tops10* | tenex* | tops20* | its* \ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ | skyos* | haiku* | rdos* | toppers* | drops* | es* \ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ | fiwix* ) ;; # This one is extra strict with allowed versions sco3.2v2 | sco3.2v[4-9]* | sco5v6*) # Don't forget version if it is 3.2v4 or newer. ;; none) ;; |
︙ | ︙ |
Changes to jni/freetype/builds/unix/configure.
1 2 | #! /bin/sh # Guess values for system-dependent variables and create Makefiles. | | | 1 2 3 4 5 6 7 8 9 10 | #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.71 for FreeType 2.12. # # Report bugs to <freetype@nongnu.org>. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, # Inc. # |
︙ | ︙ | |||
617 618 619 620 621 622 623 | subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='FreeType' PACKAGE_TARNAME='freetype' | | | | 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 | subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='FreeType' PACKAGE_TARNAME='freetype' PACKAGE_VERSION='2.12' PACKAGE_STRING='FreeType 2.12' PACKAGE_BUGREPORT='freetype@nongnu.org' PACKAGE_URL='' ac_unique_file="ftconfig.h.in" # Factoring default headers for most tests. ac_includes_default="\ #include <stddef.h> |
︙ | ︙ | |||
662 663 664 665 666 667 668 | ac_func_c_list= ac_subst_vars='LTLIBOBJS LIBOBJS build_libtool_libs wl hardcode_libdir_flag_spec LIBSSTATIC_CONFIG | | | > > > > | > > | 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 | ac_func_c_list= ac_subst_vars='LTLIBOBJS LIBOBJS build_libtool_libs wl hardcode_libdir_flag_spec LIBSSTATIC_CONFIG PKGCONFIG_LIBS_PRIVATE PKGCONFIG_REQUIRES_PRIVATE PKGCONFIG_LIBS PKGCONFIG_REQUIRES ftmac_c PYTHON_VERSION PYTHON PTHREAD_CFLAGS PTHREAD_LIBS PTHREAD_CXX PTHREAD_CC ax_pthread_config target_os target_vendor target_cpu target FT_DEMO_LDFLAGS FT_DEMO_CFLAGS LIBRSVG_LIBS LIBRSVG_CFLAGS BROTLI_LIBS BROTLI_CFLAGS HARFBUZZ_LIBS HARFBUZZ_CFLAGS LIBPNG_LIBS LIBPNG_CFLAGS BZIP2_LIBS BZIP2_CFLAGS SYSTEM_ZLIB ZLIB_LIBS ZLIB_CFLAGS XX_ANSIFLAGS XX_CFLAGS FTSYS_SRC INSTALL_FT2_CONFIG MKDIR_P |
︙ | ︙ | |||
831 832 833 834 835 836 837 | BZIP2_CFLAGS BZIP2_LIBS LIBPNG_CFLAGS LIBPNG_LIBS HARFBUZZ_CFLAGS HARFBUZZ_LIBS BROTLI_CFLAGS | | > > | 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 | BZIP2_CFLAGS BZIP2_LIBS LIBPNG_CFLAGS LIBPNG_LIBS HARFBUZZ_CFLAGS HARFBUZZ_LIBS BROTLI_CFLAGS BROTLI_LIBS LIBRSVG_CFLAGS LIBRSVG_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= |
︙ | ︙ | |||
1380 1381 1382 1383 1384 1385 1386 | # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF | | | 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 | # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures FreeType 2.12 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. |
︙ | ︙ | |||
1447 1448 1449 1450 1451 1452 1453 | --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in | | | 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 | --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of FreeType 2.12:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] |
︙ | ︙ | |||
1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 | HARFBUZZ_CFLAGS C compiler flags for HARFBUZZ, overriding pkg-config HARFBUZZ_LIBS linker flags for HARFBUZZ, overriding pkg-config BROTLI_CFLAGS C compiler flags for BROTLI, overriding pkg-config BROTLI_LIBS linker flags for BROTLI, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to <freetype@nongnu.org>. _ACEOF ac_status=$? | > > > > | 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 | HARFBUZZ_CFLAGS C compiler flags for HARFBUZZ, overriding pkg-config HARFBUZZ_LIBS linker flags for HARFBUZZ, overriding pkg-config BROTLI_CFLAGS C compiler flags for BROTLI, overriding pkg-config BROTLI_LIBS linker flags for BROTLI, overriding pkg-config LIBRSVG_CFLAGS C compiler flags for LIBRSVG, overriding pkg-config LIBRSVG_LIBS linker flags for LIBRSVG, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to <freetype@nongnu.org>. _ACEOF ac_status=$? |
︙ | ︙ | |||
1601 1602 1603 1604 1605 1606 1607 | cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF | | | 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 | cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF FreeType configure 2.12 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit |
︙ | ︙ | |||
1952 1953 1954 1955 1956 1957 1958 | ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; esac cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. | | | 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 | ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; esac cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by FreeType $as_me 2.12, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log { |
︙ | ︙ | |||
2714 2715 2716 2717 2718 2719 2720 | # Don't forget to update `docs/VERSIONS.TXT'! | | | 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 | # Don't forget to update `docs/VERSIONS.TXT'! version_info='24:2:18' ft_version=`echo $version_info | tr : .` # checks for system type |
︙ | ︙ | |||
13933 13934 13935 13936 13937 13938 13939 13940 13941 13942 13943 13944 13945 13946 | fi fi if test x"$with_zlib" = xyes -a "$have_zlib" = no; then as_fn_error $? "external zlib support requested but library not found" "$LINENO" 5 fi # check for system libbz2 # Check whether --with-bzip2 was given. if test ${with_bzip2+y} then : | > > > > > > | 13945 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13957 13958 13959 13960 13961 13962 13963 13964 | fi fi if test x"$with_zlib" = xyes -a "$have_zlib" = no; then as_fn_error $? "external zlib support requested but library not found" "$LINENO" 5 fi SYSTEM_ZLIB= if test "$have_zlib" != no; then SYSTEM_ZLIB=yes fi # check for system libbz2 # Check whether --with-bzip2 was given. if test ${with_bzip2+y} then : |
︙ | ︙ | |||
14492 14493 14494 14495 14496 14497 14498 | fi if test x"$with_brotli" = xyes -a "$have_brotli" = no; then as_fn_error $? "brotli support requested but library not found" "$LINENO" 5 fi | > > > > | | | | < | 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 14521 14522 14523 14524 14525 14526 14527 14528 14529 14530 14531 14532 14533 | fi if test x"$with_brotli" = xyes -a "$have_brotli" = no; then as_fn_error $? "brotli support requested but library not found" "$LINENO" 5 fi # Checks for the demo programs. # # FreeType doesn't need this. However, since the demo program repository # doesn't come with a `configure` script of its own, we integrate the tests # here for simplicity. # We need `clock_gettime` from 'librt' for the `ftbench` demo program. # # The code is modeled after gnulib's file `clock_time.m4`, ignoring # very old Solaris systems. LIB_CLOCK_GETTIME= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 printf %s "checking for library containing clock_gettime... " >&6; } if test ${ac_cv_search_clock_gettime+y} then : printf %s "(cached) " >&6 else $as_nop |
︙ | ︙ | |||
14559 14560 14561 14562 14563 14564 14565 14566 14567 14568 14569 14570 14571 14572 | ac_res=$ac_cv_search_clock_gettime if test "$ac_res" != no then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" test "$ac_cv_search_clock_gettime" = "none required" \ || LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime fi # Some options handling SDKs/archs in CFLAGS should be copied # to LDFLAGS. Apple TechNote 2137 recommends to include these # options in CFLAGS but not in LDFLAGS. | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 14580 14581 14582 14583 14584 14585 14586 14587 14588 14589 14590 14591 14592 14593 14594 14595 14596 14597 14598 14599 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 14611 14612 14613 14614 14615 14616 14617 14618 14619 14620 14621 14622 14623 14624 14625 14626 14627 14628 14629 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 14641 14642 14643 14644 14645 14646 14647 14648 14649 14650 14651 14652 14653 14654 14655 14656 14657 14658 14659 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 14671 14672 14673 14674 14675 14676 | ac_res=$ac_cv_search_clock_gettime if test "$ac_res" != no then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" test "$ac_cv_search_clock_gettime" = "none required" \ || LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime fi # 'librsvg' is needed to demonstrate SVG support. pkg_failed=no { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LIBRSVG" >&5 printf %s "checking for LIBRSVG... " >&6; } if test -n "$LIBRSVG_CFLAGS"; then pkg_cv_LIBRSVG_CFLAGS="$LIBRSVG_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"librsvg-2.0 >= 2.46.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "librsvg-2.0 >= 2.46.0") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBRSVG_CFLAGS=`$PKG_CONFIG --cflags "librsvg-2.0 >= 2.46.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LIBRSVG_LIBS"; then pkg_cv_LIBRSVG_LIBS="$LIBRSVG_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"librsvg-2.0 >= 2.46.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "librsvg-2.0 >= 2.46.0") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBRSVG_LIBS=`$PKG_CONFIG --libs "librsvg-2.0 >= 2.46.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBRSVG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "librsvg-2.0 >= 2.46.0" 2>&1` else LIBRSVG_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "librsvg-2.0 >= 2.46.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBRSVG_PKG_ERRORS" >&5 have_librsvg=no elif test $pkg_failed = untried; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } have_librsvg=no else LIBRSVG_CFLAGS=$pkg_cv_LIBRSVG_CFLAGS LIBRSVG_LIBS=$pkg_cv_LIBRSVG_LIBS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } have_librsvg="yes (pkg-config)" fi FT_DEMO_CFLAGS="" FT_DEMO_LDFLAGS="$LIB_CLOCK_GETTIME" if test "$have_librsvg" != no; then FT_DEMO_CFLAGS="$FT_DEMO_CFLAGS $LIBRSVG_CFLAGS -DHAVE_LIBRSVG" FT_DEMO_LDFLAGS="$FT_DEMO_LDFLAGS $LIBRSVG_LIBS" fi # Some options handling SDKs/archs in CFLAGS should be copied # to LDFLAGS. Apple TechNote 2137 recommends to include these # options in CFLAGS but not in LDFLAGS. |
︙ | ︙ | |||
16104 16105 16106 16107 16108 16109 16110 | printf "%s\n" "no" >&6; } fi fi fi # entries in Requires.private are separated by commas | | | | | | | | | | | | | | | | | | | | | | | | > > > > > > > > > > > > > > > > > > | 16208 16209 16210 16211 16212 16213 16214 16215 16216 16217 16218 16219 16220 16221 16222 16223 16224 16225 16226 16227 16228 16229 16230 16231 16232 16233 16234 16235 16236 16237 16238 16239 16240 16241 16242 16243 16244 16245 16246 16247 16248 16249 16250 16251 16252 16253 16254 16255 16256 16257 16258 16259 16260 16261 16262 16263 16264 16265 16266 16267 16268 16269 16270 16271 16272 16273 16274 16275 16276 16277 16278 16279 16280 16281 | printf "%s\n" "no" >&6; } fi fi fi # entries in Requires.private are separated by commas PKGCONFIG_REQUIRES_PRIVATE="$zlib_reqpriv, \ $bzip2_reqpriv, \ $libpng_reqpriv, \ $harfbuzz_reqpriv, \ $brotli_reqpriv" # beautify PKGCONFIG_REQUIRES_PRIVATE=`echo "$PKGCONFIG_REQUIRES_PRIVATE" \ | sed -e 's/^ *//' \ -e 's/ *$//' \ -e 's/, */,/g' \ -e 's/,,*/,/g' \ -e 's/^,*//' \ -e 's/,*$//' \ -e 's/,/, /g'` PKGCONFIG_LIBS_PRIVATE="$zlib_libspriv \ $bzip2_libspriv \ $libpng_libspriv \ $harfbuzz_libspriv \ $brotli_libspriv \ $ft2_extra_libs" # beautify PKGCONFIG_LIBS_PRIVATE=`echo "$PKGCONFIG_LIBS_PRIVATE" \ | sed -e 's/^ *//' \ -e 's/ *$//' \ -e 's/ */ /g'` LIBSSTATIC_CONFIG="-lfreetype \ $zlib_libsstaticconf \ $bzip2_libsstaticconf \ $libpng_libsstaticconf \ $harfbuzz_libsstaticconf \ $brotli_libsstaticconf \ $ft2_extra_libs" # remove -L/usr/lib and -L/usr/lib64 since `freetype-config' adds them later # on if necessary; also beautify LIBSSTATIC_CONFIG=`echo "$LIBSSTATIC_CONFIG" \ | sed -e 's|-L */usr/lib64/* | |g' \ -e 's|-L */usr/lib/* | |g' \ -e 's/^ *//' \ -e 's/ *$//' \ -e 's/ */ /g'` # If FreeType gets installed with `--disable-shared', don't use # 'private' fields. `pkg-config' only looks into `.pc' files and is # completely agnostic to whether shared libraries are actually present # or not. As a consequence, the user had to specify `--static' while # calling `pkg-config', which configure scripts are normally not # prepared for. PKGCONFIG_REQUIRES= PKGCONFIG_LIBS='-L${libdir} -lfreetype' if test $enable_shared = "no"; then PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES $PKGCONFIG_REQUIRES_PRIVATE" PKGCONFIG_REQUIRES_PRIVATE= PKGCONFIG_LIBS="$PKGCONFIG_LIBS $PKGCONFIG_LIBS_PRIVATE" PKGCONFIG_LIBS_PRIVATE= fi |
︙ | ︙ | |||
16735 16736 16737 16738 16739 16740 16741 | test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" | | | 16857 16858 16859 16860 16861 16862 16863 16864 16865 16866 16867 16868 16869 16870 16871 | test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by FreeType $as_me 2.12, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ |
︙ | ︙ | |||
16803 16804 16805 16806 16807 16808 16809 | _ACEOF ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ | | | 16925 16926 16927 16928 16929 16930 16931 16932 16933 16934 16935 16936 16937 16938 16939 | _ACEOF ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ FreeType config.status 2.12 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." |
︙ | ︙ |
Changes to jni/freetype/builds/unix/configure.ac.
1 2 3 4 | # This file is part of the FreeType project. # # Process this file with autoconf to produce a configure script. # | | | | | 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 | # This file is part of the FreeType project. # # Process this file with autoconf to produce a configure script. # # Copyright (C) 2001-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. AC_INIT([FreeType], [2.12], [freetype@nongnu.org], [freetype]) AC_CONFIG_SRCDIR([ftconfig.h.in]) # Don't forget to update `docs/VERSIONS.TXT'! version_info='24:2:18' AC_SUBST([version_info]) ft_version=`echo $version_info | tr : .` AC_SUBST([ft_version]) # checks for system type |
︙ | ︙ | |||
313 314 315 316 317 318 319 320 321 322 323 324 325 326 | fi fi if test x"$with_zlib" = xyes -a "$have_zlib" = no; then AC_MSG_ERROR([external zlib support requested but library not found]) fi # check for system libbz2 AC_ARG_WITH([bzip2], [AS_HELP_STRING([--with-bzip2=@<:@yes|no|auto@:>@], [support bzip2 compressed fonts @<:@default=auto@:>@])], [], [with_bzip2=auto]) | > > > > > > | 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 | fi fi if test x"$with_zlib" = xyes -a "$have_zlib" = no; then AC_MSG_ERROR([external zlib support requested but library not found]) fi SYSTEM_ZLIB= if test "$have_zlib" != no; then SYSTEM_ZLIB=yes fi AC_SUBST([SYSTEM_ZLIB]) # check for system libbz2 AC_ARG_WITH([bzip2], [AS_HELP_STRING([--with-bzip2=@<:@yes|no|auto@:>@], [support bzip2 compressed fonts @<:@default=auto@:>@])], [], [with_bzip2=auto]) |
︙ | ︙ | |||
504 505 506 507 508 509 510 | fi if test x"$with_brotli" = xyes -a "$have_brotli" = no; then AC_MSG_ERROR([brotli support requested but library not found]) fi | > > > > | | | | < > > > > > > | > > > > > > > > | 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 | fi if test x"$with_brotli" = xyes -a "$have_brotli" = no; then AC_MSG_ERROR([brotli support requested but library not found]) fi # Checks for the demo programs. # # FreeType doesn't need this. However, since the demo program repository # doesn't come with a `configure` script of its own, we integrate the tests # here for simplicity. # We need `clock_gettime` from 'librt' for the `ftbench` demo program. # # The code is modeled after gnulib's file `clock_time.m4`, ignoring # very old Solaris systems. LIB_CLOCK_GETTIME= AC_SEARCH_LIBS([clock_gettime], [rt], [test "$ac_cv_search_clock_gettime" = "none required" \ || LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime]) # 'librsvg' is needed to demonstrate SVG support. PKG_CHECK_MODULES([LIBRSVG], [librsvg-2.0 >= 2.46.0], [have_librsvg="yes (pkg-config)"], [have_librsvg=no]) FT_DEMO_CFLAGS="" FT_DEMO_LDFLAGS="$LIB_CLOCK_GETTIME" if test "$have_librsvg" != no; then FT_DEMO_CFLAGS="$FT_DEMO_CFLAGS $LIBRSVG_CFLAGS -DHAVE_LIBRSVG" FT_DEMO_LDFLAGS="$FT_DEMO_LDFLAGS $LIBRSVG_LIBS" fi AC_SUBST([FT_DEMO_CFLAGS]) AC_SUBST([FT_DEMO_LDFLAGS]) # Some options handling SDKs/archs in CFLAGS should be copied # to LDFLAGS. Apple TechNote 2137 recommends to include these # options in CFLAGS but not in LDFLAGS. save_config_args=$* |
︙ | ︙ | |||
958 959 960 961 962 963 964 | AC_MSG_RESULT([no]) fi fi fi # entries in Requires.private are separated by commas | | | | | | | | | | | | | | | | | | | | | | | | > > > > > > > > > > > > > > > > > > | | | 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 | AC_MSG_RESULT([no]) fi fi fi # entries in Requires.private are separated by commas PKGCONFIG_REQUIRES_PRIVATE="$zlib_reqpriv, \ $bzip2_reqpriv, \ $libpng_reqpriv, \ $harfbuzz_reqpriv, \ $brotli_reqpriv" # beautify PKGCONFIG_REQUIRES_PRIVATE=`echo "$PKGCONFIG_REQUIRES_PRIVATE" \ | sed -e 's/^ *//' \ -e 's/ *$//' \ -e 's/, */,/g' \ -e 's/,,*/,/g' \ -e 's/^,*//' \ -e 's/,*$//' \ -e 's/,/, /g'` PKGCONFIG_LIBS_PRIVATE="$zlib_libspriv \ $bzip2_libspriv \ $libpng_libspriv \ $harfbuzz_libspriv \ $brotli_libspriv \ $ft2_extra_libs" # beautify PKGCONFIG_LIBS_PRIVATE=`echo "$PKGCONFIG_LIBS_PRIVATE" \ | sed -e 's/^ *//' \ -e 's/ *$//' \ -e 's/ */ /g'` LIBSSTATIC_CONFIG="-lfreetype \ $zlib_libsstaticconf \ $bzip2_libsstaticconf \ $libpng_libsstaticconf \ $harfbuzz_libsstaticconf \ $brotli_libsstaticconf \ $ft2_extra_libs" # remove -L/usr/lib and -L/usr/lib64 since `freetype-config' adds them later # on if necessary; also beautify LIBSSTATIC_CONFIG=`echo "$LIBSSTATIC_CONFIG" \ | sed -e 's|-L */usr/lib64/* | |g' \ -e 's|-L */usr/lib/* | |g' \ -e 's/^ *//' \ -e 's/ *$//' \ -e 's/ */ /g'` # If FreeType gets installed with `--disable-shared', don't use # 'private' fields. `pkg-config' only looks into `.pc' files and is # completely agnostic to whether shared libraries are actually present # or not. As a consequence, the user had to specify `--static' while # calling `pkg-config', which configure scripts are normally not # prepared for. PKGCONFIG_REQUIRES= PKGCONFIG_LIBS='-L${libdir} -lfreetype' if test $enable_shared = "no"; then PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES $PKGCONFIG_REQUIRES_PRIVATE" PKGCONFIG_REQUIRES_PRIVATE= PKGCONFIG_LIBS="$PKGCONFIG_LIBS $PKGCONFIG_LIBS_PRIVATE" PKGCONFIG_LIBS_PRIVATE= fi AC_SUBST([ftmac_c]) AC_SUBST([PKGCONFIG_REQUIRES]) AC_SUBST([PKGCONFIG_LIBS]) AC_SUBST([PKGCONFIG_REQUIRES_PRIVATE]) AC_SUBST([PKGCONFIG_LIBS_PRIVATE]) AC_SUBST([LIBSSTATIC_CONFIG]) AC_SUBST([hardcode_libdir_flag_spec]) AC_SUBST([wl]) AC_SUBST([build_libtool_libs]) |
︙ | ︙ |
Changes to jni/freetype/builds/unix/configure.raw.
1 2 3 4 | # This file is part of the FreeType project. # # Process this file with autoconf to produce a configure script. # | | | | 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 | # This file is part of the FreeType project. # # Process this file with autoconf to produce a configure script. # # Copyright (C) 2001-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. AC_INIT([FreeType], [@VERSION@], [freetype@nongnu.org], [freetype]) AC_CONFIG_SRCDIR([ftconfig.h.in]) # Don't forget to update `docs/VERSIONS.TXT'! version_info='24:2:18' AC_SUBST([version_info]) ft_version=`echo $version_info | tr : .` AC_SUBST([ft_version]) # checks for system type |
︙ | ︙ | |||
313 314 315 316 317 318 319 320 321 322 323 324 325 326 | fi fi if test x"$with_zlib" = xyes -a "$have_zlib" = no; then AC_MSG_ERROR([external zlib support requested but library not found]) fi # check for system libbz2 AC_ARG_WITH([bzip2], [AS_HELP_STRING([--with-bzip2=@<:@yes|no|auto@:>@], [support bzip2 compressed fonts @<:@default=auto@:>@])], [], [with_bzip2=auto]) | > > > > > > | 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 | fi fi if test x"$with_zlib" = xyes -a "$have_zlib" = no; then AC_MSG_ERROR([external zlib support requested but library not found]) fi SYSTEM_ZLIB= if test "$have_zlib" != no; then SYSTEM_ZLIB=yes fi AC_SUBST([SYSTEM_ZLIB]) # check for system libbz2 AC_ARG_WITH([bzip2], [AS_HELP_STRING([--with-bzip2=@<:@yes|no|auto@:>@], [support bzip2 compressed fonts @<:@default=auto@:>@])], [], [with_bzip2=auto]) |
︙ | ︙ | |||
504 505 506 507 508 509 510 | fi if test x"$with_brotli" = xyes -a "$have_brotli" = no; then AC_MSG_ERROR([brotli support requested but library not found]) fi | > > > > | | | | < > > > > > > | > > > > > > > > | 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 | fi if test x"$with_brotli" = xyes -a "$have_brotli" = no; then AC_MSG_ERROR([brotli support requested but library not found]) fi # Checks for the demo programs. # # FreeType doesn't need this. However, since the demo program repository # doesn't come with a `configure` script of its own, we integrate the tests # here for simplicity. # We need `clock_gettime` from 'librt' for the `ftbench` demo program. # # The code is modeled after gnulib's file `clock_time.m4`, ignoring # very old Solaris systems. LIB_CLOCK_GETTIME= AC_SEARCH_LIBS([clock_gettime], [rt], [test "$ac_cv_search_clock_gettime" = "none required" \ || LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime]) # 'librsvg' is needed to demonstrate SVG support. PKG_CHECK_MODULES([LIBRSVG], [librsvg-2.0 >= 2.46.0], [have_librsvg="yes (pkg-config)"], [have_librsvg=no]) FT_DEMO_CFLAGS="" FT_DEMO_LDFLAGS="$LIB_CLOCK_GETTIME" if test "$have_librsvg" != no; then FT_DEMO_CFLAGS="$FT_DEMO_CFLAGS $LIBRSVG_CFLAGS -DHAVE_LIBRSVG" FT_DEMO_LDFLAGS="$FT_DEMO_LDFLAGS $LIBRSVG_LIBS" fi AC_SUBST([FT_DEMO_CFLAGS]) AC_SUBST([FT_DEMO_LDFLAGS]) # Some options handling SDKs/archs in CFLAGS should be copied # to LDFLAGS. Apple TechNote 2137 recommends to include these # options in CFLAGS but not in LDFLAGS. save_config_args=$* |
︙ | ︙ | |||
958 959 960 961 962 963 964 | AC_MSG_RESULT([no]) fi fi fi # entries in Requires.private are separated by commas | | | | | | | | | | | | | | | | | | | | | | | | > > > > > > > > > > > > > > > > > > | | | 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 | AC_MSG_RESULT([no]) fi fi fi # entries in Requires.private are separated by commas PKGCONFIG_REQUIRES_PRIVATE="$zlib_reqpriv, \ $bzip2_reqpriv, \ $libpng_reqpriv, \ $harfbuzz_reqpriv, \ $brotli_reqpriv" # beautify PKGCONFIG_REQUIRES_PRIVATE=`echo "$PKGCONFIG_REQUIRES_PRIVATE" \ | sed -e 's/^ *//' \ -e 's/ *$//' \ -e 's/, */,/g' \ -e 's/,,*/,/g' \ -e 's/^,*//' \ -e 's/,*$//' \ -e 's/,/, /g'` PKGCONFIG_LIBS_PRIVATE="$zlib_libspriv \ $bzip2_libspriv \ $libpng_libspriv \ $harfbuzz_libspriv \ $brotli_libspriv \ $ft2_extra_libs" # beautify PKGCONFIG_LIBS_PRIVATE=`echo "$PKGCONFIG_LIBS_PRIVATE" \ | sed -e 's/^ *//' \ -e 's/ *$//' \ -e 's/ */ /g'` LIBSSTATIC_CONFIG="-lfreetype \ $zlib_libsstaticconf \ $bzip2_libsstaticconf \ $libpng_libsstaticconf \ $harfbuzz_libsstaticconf \ $brotli_libsstaticconf \ $ft2_extra_libs" # remove -L/usr/lib and -L/usr/lib64 since `freetype-config' adds them later # on if necessary; also beautify LIBSSTATIC_CONFIG=`echo "$LIBSSTATIC_CONFIG" \ | sed -e 's|-L */usr/lib64/* | |g' \ -e 's|-L */usr/lib/* | |g' \ -e 's/^ *//' \ -e 's/ *$//' \ -e 's/ */ /g'` # If FreeType gets installed with `--disable-shared', don't use # 'private' fields. `pkg-config' only looks into `.pc' files and is # completely agnostic to whether shared libraries are actually present # or not. As a consequence, the user had to specify `--static' while # calling `pkg-config', which configure scripts are normally not # prepared for. PKGCONFIG_REQUIRES= PKGCONFIG_LIBS='-L${libdir} -lfreetype' if test $enable_shared = "no"; then PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES $PKGCONFIG_REQUIRES_PRIVATE" PKGCONFIG_REQUIRES_PRIVATE= PKGCONFIG_LIBS="$PKGCONFIG_LIBS $PKGCONFIG_LIBS_PRIVATE" PKGCONFIG_LIBS_PRIVATE= fi AC_SUBST([ftmac_c]) AC_SUBST([PKGCONFIG_REQUIRES]) AC_SUBST([PKGCONFIG_LIBS]) AC_SUBST([PKGCONFIG_REQUIRES_PRIVATE]) AC_SUBST([PKGCONFIG_LIBS_PRIVATE]) AC_SUBST([LIBSSTATIC_CONFIG]) AC_SUBST([hardcode_libdir_flag_spec]) AC_SUBST([wl]) AC_SUBST([build_libtool_libs]) |
︙ | ︙ |
Changes to jni/freetype/builds/unix/detect.mk.
1 2 3 4 5 | # # FreeType 2 configuration file to detect a UNIX host platform. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration file to detect a UNIX host platform. # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/unix/freetype-config.in.
1 2 | #! /bin/sh # | | | 1 2 3 4 5 6 7 8 9 10 | #! /bin/sh # # Copyright (C) 2000-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/unix/freetype2.in.
1 2 3 4 5 6 7 8 9 | prefix=%prefix% exec_prefix=%exec_prefix% libdir=%libdir% includedir=%includedir% Name: FreeType 2 URL: https://freetype.org Description: A free, high-quality, and portable font engine. Version: %ft_version% | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | prefix=%prefix% exec_prefix=%exec_prefix% libdir=%libdir% includedir=%includedir% Name: FreeType 2 URL: https://freetype.org Description: A free, high-quality, and portable font engine. Version: %ft_version% Requires: %PKGCONFIG_REQUIRES% Requires.private: %PKGCONFIG_REQUIRES_PRIVATE% Libs: %PKGCONFIG_LIBS% Libs.private: %PKGCONFIG_LIBS_PRIVATE% Cflags: -I${includedir}/freetype2 |
Changes to jni/freetype/builds/unix/freetype2.m4.
1 2 3 | # Configure paths for FreeType2 # Marcelo Magallon 2001-10-26, based on `gtk.m4` by Owen Taylor # | | | 1 2 3 4 5 6 7 8 9 10 11 | # Configure paths for FreeType2 # Marcelo Magallon 2001-10-26, based on `gtk.m4` by Owen Taylor # # Copyright (C) 2001-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/unix/ft-munmap.m4.
1 2 | ## FreeType specific autoconf tests # | | | 1 2 3 4 5 6 7 8 9 10 | ## FreeType specific autoconf tests # # Copyright (C) 2002-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/unix/ftconfig.h.in.
1 2 3 4 5 6 | /**************************************************************************** * * ftconfig.h.in * * UNIX-specific configuration file (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftconfig.h.in * * UNIX-specific configuration file (specification only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/builds/unix/ftsystem.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftsystem.c * * Unix-specific FreeType low-level system interface (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsystem.c * * Unix-specific FreeType low-level system interface (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/builds/unix/install.mk.
1 2 3 4 5 | # # FreeType 2 installation instructions for Unix systems # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 installation instructions for Unix systems # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/unix/unix-cc.in.
1 2 3 4 | # # FreeType 2 template for Unix-specific compiler definitions # | | | 1 2 3 4 5 6 7 8 9 10 11 12 | # # FreeType 2 template for Unix-specific compiler definitions # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ | |||
102 103 104 105 106 107 108 | RCraw := @RC@ ifneq ($(RCraw),) RC := $(LIBTOOL) --tag=RC --mode=compile $(RCraw) endif # Linker flags. # | | < < | > > > > | 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 | RCraw := @RC@ ifneq ($(RCraw),) RC := $(LIBTOOL) --tag=RC --mode=compile $(RCraw) endif # Linker flags. # LDFLAGS := @LDFLAGS@ # export symbols # CCraw_build := @CC_BUILD@ # native CC of building system E_BUILD := @EXEEXT_BUILD@ # extension for executable on building system EXPORTS_LIST := $(OBJ_DIR)/ftexport.sym CCexe := $(CCraw_build) # used to compile `apinames' only # Library linking. # LINK_LIBRARY = $(LIBTOOL) --mode=link $(CCraw) -o $@ $(OBJECTS_LIST) \ -rpath $(libdir) -version-info $(version_info) \ $(LDFLAGS) -no-undefined \ -export-symbols $(EXPORTS_LIST) # For the demo programs. FT_DEMO_CFLAGS := @FT_DEMO_CFLAGS@ FT_DEMO_LDFLAGS := @FT_DEMO_LDFLAGS@ # EOF |
Changes to jni/freetype/builds/unix/unix-def.in.
1 2 3 4 5 | # # FreeType 2 configuration rules templates for Unix + configure # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration rules templates for Unix + configure # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ | |||
64 65 66 67 68 69 70 | datadir := @datadir@ mandir := @mandir@ version_info := @version_info@ # Variables needed for `freetype-config' and `freetype.pc'. # | | > | > | | | | | 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | datadir := @datadir@ mandir := @mandir@ version_info := @version_info@ # Variables needed for `freetype-config' and `freetype.pc'. # PKG_CONFIG := @PKG_CONFIG@ PKGCONFIG_REQUIRES := @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATE := @PKGCONFIG_REQUIRES_PRIVATE@ PKGCONFIG_LIBS := @PKGCONFIG_LIBS@ PKGCONFIG_LIBS_PRIVATE := @PKGCONFIG_LIBS_PRIVATE@ LIBSSTATIC_CONFIG := @LIBSSTATIC_CONFIG@ build_libtool_libs := @build_libtool_libs@ ft_version := @ft_version@ # The directory where all library files are placed. # # By default, this is the same as $(OBJ_DIR); however, this can be changed # to suit particular needs. # LIB_DIR := $(OBJ_DIR) |
︙ | ︙ | |||
133 134 135 136 137 138 139 | exec_prefix_x := $(subst $(space),\\$(space),$(exec_prefix)) includedir_x := $(subst $(space),\\$(space),$(includedir)) libdir_x := $(subst $(space),\\$(space),$(libdir)) prefix_x := $(subst $(space),\\$(space),$(prefix)) $(OBJ_BUILD)/freetype2.pc: $(TOP_DIR)/builds/unix/freetype2.in rm -f $@ $@.tmp | > | | > | | | | | | | | 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 | exec_prefix_x := $(subst $(space),\\$(space),$(exec_prefix)) includedir_x := $(subst $(space),\\$(space),$(includedir)) libdir_x := $(subst $(space),\\$(space),$(libdir)) prefix_x := $(subst $(space),\\$(space),$(prefix)) $(OBJ_BUILD)/freetype2.pc: $(TOP_DIR)/builds/unix/freetype2.in rm -f $@ $@.tmp sed -e 's|%PKGCONFIG_REQUIRES%|$(PKGCONFIG_REQUIRES)|' \ -e 's|%PKGCONFIG_REQUIRES_PRIVATE%|$(PKGCONFIG_REQUIRES_PRIVATE)|' \ -e 's|%PKGCONFIG_LIBS%|$(PKGCONFIG_LIBS)|' \ -e 's|%PKGCONFIG_LIBS_PRIVATE%|$(PKGCONFIG_LIBS_PRIVATE)|' \ -e 's|%build_libtool_libs%|$(build_libtool_libs)|' \ -e 's|%exec_prefix%|$(exec_prefix_x)|' \ -e 's|%ft_version%|$(ft_version)|' \ -e 's|%includedir%|$(includedir_x)|' \ -e 's|%libdir%|$(libdir_x)|' \ -e 's|%prefix%|$(prefix_x)|' \ $< \ > $@.tmp chmod a-w $@.tmp mv $@.tmp $@ # defines whether we should install `freetype-config' or not INSTALL_FT2_CONFIG = @INSTALL_FT2_CONFIG@ all install: $(OBJ_BUILD)/freetype-config \ $(OBJ_BUILD)/freetype2.pc # EOF |
Changes to jni/freetype/builds/unix/unix-dev.mk.
1 2 3 4 5 6 7 8 | # # FreeType 2 Configuration rules for Unix + GCC # # Development version without optimizations & libtool # and no installation. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # # FreeType 2 Configuration rules for Unix + GCC # # Development version without optimizations & libtool # and no installation. # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/unix/unix-lcc.mk.
1 2 3 4 5 6 7 8 | # # FreeType 2 Configuration rules for Unix + LCC # # Development version without optimizations & libtool # and no installation. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # # FreeType 2 Configuration rules for Unix + LCC # # Development version without optimizations & libtool # and no installation. # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/unix/unix.mk.
1 2 3 4 5 | # # FreeType 2 configuration rules for UNIX platforms # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration rules for UNIX platforms # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/unix/unixddef.mk.
1 2 3 4 5 6 | # # FreeType 2 configuration rules templates for # development under Unix with no configure script (gcc only) # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # # FreeType 2 configuration rules templates for # development under Unix with no configure script (gcc only) # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/vms/ftconfig.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftconfig.h * * VMS-specific configuration file (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftconfig.h * * VMS-specific configuration file (specification only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/builds/vms/ftsystem.c.
1 2 3 4 5 6 | /***************************************************************************/ /* */ /* ftsystem.c */ /* */ /* VMS-specific FreeType low-level system interface (body). */ /* */ | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /***************************************************************************/ /* */ /* ftsystem.c */ /* */ /* VMS-specific FreeType low-level system interface (body). */ /* */ /* Copyright (C) 1996-2022 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ /* modified, and distributed under the terms of the FreeType project */ /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ /* this file you indicate that you have read the license and */ /* understand and accept it fully. */ |
︙ | ︙ |
Changes to jni/freetype/builds/wince/ftdebug.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftdebug.c * * Debugging and logging component for WinCE (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftdebug.c * * Debugging and logging component for WinCE (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/builds/wince/vc2005-ce/index.html.
︙ | ︙ | |||
17 18 19 20 21 22 23 | <ul> <li>PPC/SP 2003 (Pocket PC 2003)</li> <li>PPC/SP WM5 (Windows Mobile 5)</li> <li>PPC/SP WM6 (Windows Mobile 6)</li> </ul> | | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <ul> <li>PPC/SP 2003 (Pocket PC 2003)</li> <li>PPC/SP WM5 (Windows Mobile 5)</li> <li>PPC/SP WM6 (Windows Mobile 6)</li> </ul> It compiles the following libraries from the FreeType 2.12.0 sources:</p> <ul> <pre> freetype.lib - release build; single threaded freetype_D.lib - debug build; single threaded freetypeMT.lib - release build; multi-threaded freetypeMT_D.lib - debug build; multi-threaded</pre> |
︙ | ︙ |
Changes to jni/freetype/builds/wince/vc2008-ce/index.html.
︙ | ︙ | |||
17 18 19 20 21 22 23 | <ul> <li>PPC/SP 2003 (Pocket PC 2003)</li> <li>PPC/SP WM5 (Windows Mobile 5)</li> <li>PPC/SP WM6 (Windows Mobile 6)</li> </ul> | | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <ul> <li>PPC/SP 2003 (Pocket PC 2003)</li> <li>PPC/SP WM5 (Windows Mobile 5)</li> <li>PPC/SP WM6 (Windows Mobile 6)</li> </ul> It compiles the following libraries from the FreeType 2.12.0 sources:</p> <ul> <pre> freetype.lib - release build; single threaded freetype_D.lib - debug build; single threaded freetypeMT.lib - release build; multi-threaded freetypeMT_D.lib - debug build; multi-threaded</pre> |
︙ | ︙ |
Changes to jni/freetype/builds/windows/detect.mk.
1 2 3 4 5 | # # FreeType 2 configuration file to detect a Win32 host platform. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration file to detect a Win32 host platform. # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/windows/ftdebug.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftdebug.c * * Debugging and logging component for Win32 (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftdebug.c * * Debugging and logging component for Win32 (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
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 | ... ) { va_list ap; va_start( ap, fmt ); vfprintf( stderr, fmt, ap ); if ( IsDebuggerPresent() ) { static char buf[1024]; vsnprintf( buf, sizeof buf, fmt, ap ); OutputDebugStringA( buf ); } va_end( ap ); } /* documentation is in ftdebug.h */ FT_BASE_DEF( void ) FT_Panic( const char* fmt, ... ) { va_list ap; va_start( ap, fmt ); vfprintf( stderr, fmt, ap ); if ( IsDebuggerPresent() ) { static char buf[1024]; vsnprintf( buf, sizeof buf, fmt, ap ); OutputDebugStringA( buf ); } va_end( ap ); exit( EXIT_FAILURE ); } /* documentation is in ftdebug.h */ | > > > > > > | 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 | ... ) { va_list ap; va_start( ap, fmt ); vfprintf( stderr, fmt, ap ); #if ( defined( _WIN32_WINNT ) && _WIN32_WINNT >= 0x0400 ) || \ ( defined( _WIN32_WCE ) && _WIN32_WCE >= 0x0600 ) if ( IsDebuggerPresent() ) { static char buf[1024]; vsnprintf( buf, sizeof buf, fmt, ap ); OutputDebugStringA( buf ); } #endif va_end( ap ); } /* documentation is in ftdebug.h */ FT_BASE_DEF( void ) FT_Panic( const char* fmt, ... ) { va_list ap; va_start( ap, fmt ); vfprintf( stderr, fmt, ap ); #if ( defined( _WIN32_WINNT ) && _WIN32_WINNT >= 0x0400 ) || \ ( defined( _WIN32_WCE ) && _WIN32_WCE >= 0x0600 ) if ( IsDebuggerPresent() ) { static char buf[1024]; vsnprintf( buf, sizeof buf, fmt, ap ); OutputDebugStringA( buf ); } #endif va_end( ap ); exit( EXIT_FAILURE ); } /* documentation is in ftdebug.h */ |
︙ | ︙ |
Changes to jni/freetype/builds/windows/ftsystem.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftsystem.c * * Windows-specific FreeType low-level system interface (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsystem.c * * Windows-specific FreeType low-level system interface (body). * * Copyright (C) 2021-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
192 193 194 195 196 197 198 | stream->descriptor.pointer = NULL; stream->size = 0; stream->base = NULL; } | > > > | > > > > > > | | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | > > > | | | | 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 | stream->descriptor.pointer = NULL; stream->size = 0; stream->base = NULL; } /* non-desktop Universal Windows Platform */ #if defined( WINAPI_FAMILY_PARTITION ) #if !WINAPI_FAMILY_PARTITION( WINAPI_PARTITION_DESKTOP ) #define PACK_DWORD64( hi, lo ) ( ( (DWORD64)(hi) << 32 ) | (DWORD)(lo) ) #define CreateFileMapping( a, b, c, d, e, f ) \ CreateFileMappingFromApp( a, b, c, PACK_DWORD64( d, e ), f ) #define MapViewOfFile( a, b, c, d, e ) \ MapViewOfFileFromApp( a, b, PACK_DWORD64( c, d ), e ) FT_LOCAL_DEF( HANDLE ) CreateFileA( LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ) { int len; LPWSTR lpFileNameW; CREATEFILE2_EXTENDED_PARAMETERS createExParams = { sizeof ( CREATEFILE2_EXTENDED_PARAMETERS ), dwFlagsAndAttributes & 0x0000FFFF, dwFlagsAndAttributes & 0xFFF00000, dwFlagsAndAttributes & 0x000F0000, lpSecurityAttributes, hTemplateFile }; /* allocate memory space for converted path name */ len = MultiByteToWideChar( CP_ACP, MB_ERR_INVALID_CHARS, lpFileName, -1, NULL, 0 ); lpFileNameW = (LPWSTR)_alloca( len * sizeof ( WCHAR ) ); if ( !len || !lpFileNameW ) { FT_ERROR(( "FT_Stream_Open: cannot convert file name to LPWSTR\n" )); return INVALID_HANDLE_VALUE; } /* now it is safe to do the translation */ MultiByteToWideChar( CP_ACP, MB_ERR_INVALID_CHARS, lpFileName, -1, lpFileNameW, len ); /* open the file */ return CreateFile2( lpFileNameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, &createExParams ); } #endif #endif #if defined( _WIN32_WCE ) /* malloc.h provides implementation of alloca()/_alloca() */ #include <malloc.h> FT_LOCAL_DEF( HANDLE ) CreateFileA( LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ) { int len; LPWSTR lpFileNameW; /* allocate memory space for converted path name */ len = MultiByteToWideChar( CP_ACP, MB_ERR_INVALID_CHARS, lpFileName, -1, NULL, 0 ); lpFileNameW = (LPWSTR)_alloca( len * sizeof ( WCHAR ) ); |
︙ | ︙ | |||
229 230 231 232 233 234 235 236 237 | /* open the file */ return CreateFileW( lpFileNameW, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile ); } FT_LOCAL_DEF( BOOL ) | > > > > > | | | | 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 | /* open the file */ return CreateFileW( lpFileNameW, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile ); } #endif #if defined( _WIN32_WCE ) || defined ( _WIN32_WINDOWS ) || \ !defined( _WIN32_WINNT ) || _WIN32_WINNT <= 0x0400 FT_LOCAL_DEF( BOOL ) GetFileSizeEx( HANDLE hFile, PLARGE_INTEGER lpFileSize ) { lpFileSize->u.LowPart = GetFileSize( hFile, (DWORD *)&lpFileSize->u.HighPart ); if ( lpFileSize->u.LowPart == INVALID_FILE_SIZE && GetLastError() != NO_ERROR ) return FALSE; else return TRUE; } #endif /* documentation is in ftobjs.h */ FT_BASE_DEF( FT_Error ) FT_Stream_Open( FT_Stream stream, const char* filepathname ) |
︙ | ︙ |
Changes to jni/freetype/builds/windows/vc2010/freetype.vcxproj.
︙ | ︙ | |||
481 482 483 484 485 486 487 488 489 490 491 492 493 494 | <ClCompile Include="..\..\..\src\psaux\psaux.c" /> <ClCompile Include="..\..\..\src\pshinter\pshinter.c" /> <ClCompile Include="..\..\..\src\psnames\psmodule.c" /> <ClCompile Include="..\..\..\src\raster\raster.c" /> <ClCompile Include="..\..\..\src\sfnt\sfnt.c" /> <ClCompile Include="..\..\..\src\smooth\smooth.c" /> <ClCompile Include="..\..\..\src\sdf\sdf.c" /> <ClCompile Include="..\..\..\src\truetype\truetype.c" /> <ClCompile Include="..\..\..\src\type1\type1.c" /> <ClCompile Include="..\..\..\src\type42\type42.c" /> <ClCompile Include="..\..\..\src\winfonts\winfnt.c" /> <ClCompile Include="..\ftdebug.c"> <DisableLanguageExtensions>false</DisableLanguageExtensions> </ClCompile> | > | 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 | <ClCompile Include="..\..\..\src\psaux\psaux.c" /> <ClCompile Include="..\..\..\src\pshinter\pshinter.c" /> <ClCompile Include="..\..\..\src\psnames\psmodule.c" /> <ClCompile Include="..\..\..\src\raster\raster.c" /> <ClCompile Include="..\..\..\src\sfnt\sfnt.c" /> <ClCompile Include="..\..\..\src\smooth\smooth.c" /> <ClCompile Include="..\..\..\src\sdf\sdf.c" /> <ClCompile Include="..\..\..\src\svg\svg.c" /> <ClCompile Include="..\..\..\src\truetype\truetype.c" /> <ClCompile Include="..\..\..\src\type1\type1.c" /> <ClCompile Include="..\..\..\src\type42\type42.c" /> <ClCompile Include="..\..\..\src\winfonts\winfnt.c" /> <ClCompile Include="..\ftdebug.c"> <DisableLanguageExtensions>false</DisableLanguageExtensions> </ClCompile> |
︙ | ︙ |
Changes to jni/freetype/builds/windows/vc2010/freetype.vcxproj.filters.
︙ | ︙ | |||
63 64 65 66 67 68 69 70 71 72 73 74 75 76 | <Filter>Source Files</Filter> </ClCompile> <ClCompile Include="..\..\..\src\sdf\sdf.c"> <Filter>Source Files</Filter> </ClCompile> <ClCompile Include="..\..\..\src\smooth\smooth.c"> <Filter>Source Files</Filter> </ClCompile> <ClCompile Include="..\..\..\src\truetype\truetype.c"> <Filter>Source Files</Filter> </ClCompile> <ClCompile Include="..\..\..\src\type1\type1.c"> <Filter>Source Files</Filter> </ClCompile> | > > > | 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | <Filter>Source Files</Filter> </ClCompile> <ClCompile Include="..\..\..\src\sdf\sdf.c"> <Filter>Source Files</Filter> </ClCompile> <ClCompile Include="..\..\..\src\smooth\smooth.c"> <Filter>Source Files</Filter> </ClCompile> <ClCompile Include="..\..\..\src\svg\svg.c"> <Filter>Source Files</Filter> </ClCompile> <ClCompile Include="..\..\..\src\truetype\truetype.c"> <Filter>Source Files</Filter> </ClCompile> <ClCompile Include="..\..\..\src\type1\type1.c"> <Filter>Source Files</Filter> </ClCompile> |
︙ | ︙ |
Changes to jni/freetype/builds/windows/vc2010/index.html.
︙ | ︙ | |||
8 9 10 11 12 13 14 | <h1> FreeType 2 Project Files for Visual C++ 2010 or newer </h1> <p>This directory contains solution and project files for Visual C++ 2010 or newer, named <tt>freetype.sln</tt>, and <tt>freetype.vcxproj</tt>. It compiles the following libraries | | | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <h1> FreeType 2 Project Files for Visual C++ 2010 or newer </h1> <p>This directory contains solution and project files for Visual C++ 2010 or newer, named <tt>freetype.sln</tt>, and <tt>freetype.vcxproj</tt>. It compiles the following libraries from the FreeType 2.12.0 sources:</p> <ul> <li>freetype.dll using 'Release' or 'Debug' configurations</li> <li>freetype.lib using 'Release Static' or 'Debug Static' configurations</li> </ul> <p>Both Win32 and x64 builds are supported. Build directories and target |
︙ | ︙ |
Changes to jni/freetype/builds/windows/visualc/freetype.vcproj.
︙ | ︙ | |||
429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 | Name="Debug Static|Win32" > <Tool Name="VCCLCompilerTool" DisableLanguageExtensions="false" /> </FileConfiguration> </File> <File RelativePath="..\..\..\src\smooth\smooth.c" > </File> <Filter Name="FT_MODULES" > <File RelativePath="..\..\..\src\base\ftbbox.c" > | > > > > > > > > | 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 | Name="Debug Static|Win32" > <Tool Name="VCCLCompilerTool" DisableLanguageExtensions="false" /> </FileConfiguration> </File> <File RelativePath="..\..\..\src\sdf\sdf.c" > </File> <File RelativePath="..\..\..\src\smooth\smooth.c" > </File> <File RelativePath="..\..\..\src\svg\svg.c" > </File> <Filter Name="FT_MODULES" > <File RelativePath="..\..\..\src\base\ftbbox.c" > |
︙ | ︙ |
Changes to jni/freetype/builds/windows/visualc/index.html.
︙ | ︙ | |||
8 9 10 11 12 13 14 | <h1> FreeType 2 Project Files for Visual C++ 6.0 and 2002-2008 </h1> <p>This directory contains project files <tt>freetype.dsp</tt> for Visual C++ 6.0, and <tt>freetype.vcproj</tt> for Visual C++ 2002 through 2008, which you might need to upgrade automatically. | | | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <h1> FreeType 2 Project Files for Visual C++ 6.0 and 2002-2008 </h1> <p>This directory contains project files <tt>freetype.dsp</tt> for Visual C++ 6.0, and <tt>freetype.vcproj</tt> for Visual C++ 2002 through 2008, which you might need to upgrade automatically. It compiles the following libraries from the FreeType 2.12.0 sources:</p> <ul> <li>freetype.dll using 'Release' or 'Debug' configurations</li> <li>freetype.lib using 'Release Static' or 'Debug Static' configurations</li> </ul> <p>Build directories and target files are placed in the top-level |
︙ | ︙ |
Changes to jni/freetype/builds/windows/visualce/index.html.
︙ | ︙ | |||
17 18 19 20 21 22 23 | <ul> <li>PPC/SP 2003 (Pocket PC 2003)</li> <li>PPC/SP WM5 (Windows Mobile 5)</li> <li>PPC/SP WM6 (Windows Mobile 6)</li> </ul> | | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <ul> <li>PPC/SP 2003 (Pocket PC 2003)</li> <li>PPC/SP WM5 (Windows Mobile 5)</li> <li>PPC/SP WM6 (Windows Mobile 6)</li> </ul> It compiles the following libraries from the FreeType 2.12.0 sources:</p> <ul> <pre> freetype.lib - release build; single threaded freetype_D.lib - debug build; single threaded freetypeMT.lib - release build; multi-threaded freetypeMT_D.lib - debug build; multi-threaded</pre> |
︙ | ︙ |
Changes to jni/freetype/builds/windows/w32-bcc.mk.
1 2 3 4 5 | # # FreeType 2 Borland C++ on Win32 # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Borland C++ on Win32 # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/windows/w32-bccd.mk.
1 2 3 4 5 | # # FreeType 2 Borland C++ on Win32 + debugging # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Borland C++ on Win32 + debugging # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/windows/w32-dev.mk.
1 2 3 4 5 6 7 | # # FreeType 2 configuration rules for Win32 + GCC # # Development version without optimizations. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # # FreeType 2 configuration rules for Win32 + GCC # # Development version without optimizations. # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/windows/w32-gcc.mk.
1 2 3 4 5 | # # FreeType 2 configuration rules for Win32 + GCC # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration rules for Win32 + GCC # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/windows/w32-icc.mk.
1 2 3 4 5 | # # FreeType 2 configuration rules for Win32 + IBM Visual Age C++ # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration rules for Win32 + IBM Visual Age C++ # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/windows/w32-intl.mk.
1 2 3 4 5 | # # FreeType 2 configuration rules for Intel C/C++ on Win32 # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration rules for Intel C/C++ on Win32 # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/windows/w32-lcc.mk.
1 2 3 4 5 | # # FreeType 2 configuration rules for Win32 + LCC # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration rules for Win32 + LCC # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/windows/w32-mingw32.mk.
1 2 3 4 5 | # # FreeType 2 configuration rules for mingw32 # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration rules for mingw32 # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/windows/w32-vcc.mk.
1 2 3 4 5 | # # FreeType 2 Visual C++ on Win32 # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Visual C++ on Win32 # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/windows/w32-wat.mk.
1 2 3 4 5 | # # FreeType 2 configuration rules for Watcom C/C++ # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 configuration rules for Watcom C/C++ # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/builds/windows/win32-def.mk.
1 2 3 4 5 | # # FreeType 2 Win32 specific definitions # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Win32 specific definitions # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Added jni/freetype/config.mk.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | # # FreeType 2 configuration rules for UNIX platforms # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. # We need these declarations here since unix-def.mk is a generated file. PLATFORM_DIR := $(TOP_DIR)/builds/unix PLATFORM := unix have_mk := $(wildcard $(OBJ_DIR)/unix-def.mk) ifneq ($(have_mk),) # We are building FreeType 2 not in the src tree. include $(OBJ_DIR)/unix-def.mk include $(OBJ_DIR)/unix-cc.mk else include $(PLATFORM_DIR)/unix-def.mk include $(PLATFORM_DIR)/unix-cc.mk endif ifdef BUILD_PROJECT .PHONY: clean_project distclean_project # Now include the main sub-makefile. It contains all the rules used to # build the library with the previous variables defined. # include $(TOP_DIR)/builds/$(PROJECT).mk # The cleanup targets. # clean_project: clean_project_unix distclean_project: distclean_project_unix # This final rule is used to link all object files into a single library. # It is part of the system-specific sub-Makefile because not all # librarians accept a simple syntax like # # librarian library_file {list of object files} # $(PROJECT_LIBRARY): $(OBJECTS_LIST) ifdef CLEAN_LIBRARY -$(CLEAN_LIBRARY) $(NO_OUTPUT) endif $(LINK_LIBRARY) include $(TOP_DIR)/builds/unix/install.mk endif # EOF |
Changes to jni/freetype/configure.
1 2 | #!/bin/sh # | | | 1 2 3 4 5 6 7 8 9 10 | #!/bin/sh # # Copyright (C) 2002-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/devel/ft2build.h.
1 2 3 4 5 6 | /**************************************************************************** * * ft2build.h * * FreeType 2 build and setup macros (development version). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ft2build.h * * FreeType 2 build and setup macros (development version). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/devel/ftoption.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftoption.h (for development) * * User-selectable configuration macros (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftoption.h (for development) * * User-selectable configuration macros (specification only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
215 216 217 218 219 220 221 222 223 224 225 226 227 228 | * * Do not `#undef` this macro here since the build system might define * it for certain configurations only. * * If you use a build system like cmake or the `configure` script, * options set by those programs have precedence, overwriting the value * here with the configured one. */ /* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ /************************************************************************** * * Bzip2-compressed file support. | > > > > | 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 | * * Do not `#undef` this macro here since the build system might define * it for certain configurations only. * * If you use a build system like cmake or the `configure` script, * options set by those programs have precedence, overwriting the value * here with the configured one. * * If you use the GNU make build system directly (that is, without the * `configure` script) and you define this macro, you also have to pass * `SYSTEM_ZLIB=yes` as an argument to make. */ /* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ /************************************************************************** * * Bzip2-compressed file support. |
︙ | ︙ | |||
516 517 518 519 520 521 522 523 524 525 526 527 528 529 | * would break source compatibility of certain programs that use * FreeType~2. * * More details can be found in the files `ftmoderr.h` and `fterrors.h`. */ #undef FT_CONFIG_OPTION_USE_MODULE_ERRORS /************************************************************************** * * Error Strings * * If this macro is set, `FT_Error_String` will return meaningful * descriptions. This is not enabled by default to reduce the overall | > > > > > > > > > > > > > > | 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 | * would break source compatibility of certain programs that use * FreeType~2. * * More details can be found in the files `ftmoderr.h` and `fterrors.h`. */ #undef FT_CONFIG_OPTION_USE_MODULE_ERRORS /************************************************************************** * * OpenType SVG Glyph Support * * Setting this macro enables support for OpenType SVG glyphs. By * default, FreeType can only fetch SVG documents. However, it can also * render them if external rendering hook functions are plugged in at * runtime. * * More details on the hooks can be found in file `otsvg.h`. */ #define FT_CONFIG_OPTION_SVG /************************************************************************** * * Error Strings * * If this macro is set, `FT_Error_String` will return meaningful * descriptions. This is not enabled by default to reduce the overall |
︙ | ︙ | |||
996 997 998 999 1000 1001 1002 | CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 > 500 || \ CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 > 500 || \ CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 > 500 || \ CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 > 500 #error "Invalid CFF darkening parameters!" #endif | < > | 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 | CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 > 500 || \ CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 > 500 || \ CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 > 500 || \ CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 > 500 #error "Invalid CFF darkening parameters!" #endif FT_END_HEADER #endif /* FTOPTION_H_ */ /* END */ |
Changes to jni/freetype/docs/CHANGES.
1 2 3 4 5 6 7 | CHANGES BETWEEN 2.11.0 and 2.11.1 I. IMPORTANT CHANGES - Some fields in the `CID_FaceDictRec`, `CID_FaceInfoRec`, and `FT_Data` structures have been changed from signed to unsigned type, which better reflects the actual usage. It is also an | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | CHANGES BETWEEN 2.11.1 and 2.12.0 I. IMPORTANT CHANGES - FreeType now handles OT-SVG fonts, to be controlled with `FT_CONFIG_OPTION_SVG` configuration macro. By default, it can only load the 'SVG ' table of an OpenType font. However, by using the `svg-hooks` property of the new 'ot-svg' module it is possible to register an external SVG rendering engine. The FreeType demo programs have been set up to use 'librsvg' as the rendering library. This work was Moazin Khatti's GSoC 2019 project. II. MISCELLANEOUS - The handling of fonts with an 'sbix' table has been improved. - Corrected bitmap offsets. - A new tag `FT_PARAM_TAG_IGNORE_SBIX` for `FT_Open_Face` makes FreeType ignore an 'sbix' table in a font, allowing applications to access the font's outline glyphs. - `FT_FACE_FLAG_SBIX` and `FT_FACE_FLAG_SBIX_OVERLAY` together with their corresponding preprocessor macros `FT_HAS_SBIX` and `FT_HAS_SBIX_OVERLAY` enable applications to treat 'sbix' tables as described in the OpenType specification. - The internal 'zlib' code has been updated to be in sync with the current 'zlib' version (1.2.11). - The previously internal load flag `FT_LOAD_SBITS_ONLY` is now public. - Some minor improvements of the building systems, in particular handling of the 'zlib' library (internal vs. external). - Support for non-desktop Universal Windows Platform. - Various other minor bug and documentation fixes. - The `ftdump` demo program shows more information for Type1 fonts if option `-n` is given. - `ftgrid` can now display embedded bitmap strikes. ====================================================================== CHANGES BETWEEN 2.11.0 and 2.11.1 I. IMPORTANT CHANGES - Some fields in the `CID_FaceDictRec`, `CID_FaceInfoRec`, and `FT_Data` structures have been changed from signed to unsigned type, which better reflects the actual usage. It is also an |
︙ | ︙ | |||
5445 5446 5447 5448 5449 5450 5451 | if (!ext) return error; return ext_interface->do_it(ext); } ------------------------------------------------------------------------ | | | 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 | if (!ext) return error; return ext_interface->do_it(ext); } ------------------------------------------------------------------------ Copyright (C) 2000-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/CUSTOMIZE.
︙ | ︙ | |||
135 136 137 138 139 140 141 | my-ftmodule.h => custom modules list header and change the C include path to ensure that `custom' is always placed before the FT2 `include' during compilation. ---------------------------------------------------------------------- | | | 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | my-ftmodule.h => custom modules list header and change the C include path to ensure that `custom' is always placed before the FT2 `include' during compilation. ---------------------------------------------------------------------- Copyright (C) 2003-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/DEBUG.
︙ | ︙ | |||
293 294 295 296 297 298 299 | FT_Set_Default_Log_Handler(): Reset the log handler to the default version. ------------------------------------------------------------------------ | | | 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 | FT_Set_Default_Log_Handler(): Reset the log handler to the default version. ------------------------------------------------------------------------ Copyright (C) 2002-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/DOCGUIDE.
︙ | ︙ | |||
281 282 283 284 285 286 287 | is converted to The encoding value 0 is reserved. ---------------------------------------------------------------------- | | | 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 | is converted to The encoding value 0 is reserved. ---------------------------------------------------------------------- Copyright (C) 2018-2022 by Nikhil Ramakrishnan, David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/INSTALL.
︙ | ︙ | |||
97 98 99 100 101 102 103 | https://makepp.sourceforge.net for more information; you need version 2.0 or newer, and you must pass option `--norc-substitution`. ---------------------------------------------------------------------- | | | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | https://makepp.sourceforge.net for more information; you need version 2.0 or newer, and you must pass option `--norc-substitution`. ---------------------------------------------------------------------- Copyright (C) 2000-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/INSTALL.ANY.
︙ | ︙ | |||
140 141 142 143 144 145 146 | etc. You don't need to define the FT_FLAT_COMPILATION macro (as this was required in previous releases of FreeType 2). ---------------------------------------------------------------------- | | | 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | etc. You don't need to define the FT_FLAT_COMPILATION macro (as this was required in previous releases of FreeType 2). ---------------------------------------------------------------------- Copyright (C) 2003-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/INSTALL.CROSS.
︙ | ︙ | |||
159 160 161 162 163 164 165 | ------- Cross building between Cygwin (or MSys) and Unix must be tested. ---------------------------------------------------------------------- | | | 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | ------- Cross building between Cygwin (or MSys) and Unix must be tested. ---------------------------------------------------------------------- Copyright (C) 2006-2022 by suzuki toshiya, David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand |
︙ | ︙ |
Changes to jni/freetype/docs/INSTALL.GNU.
︙ | ︙ | |||
164 165 166 167 168 169 170 | instructions in `INSTALL.UNIX'), or you use one of the Visual C++ project files; see the subdirectories of `builds/windows'. For everything else, you are on your own, and you might follow the instructions in `INSTALL.ANY' to create your own Makefiles. ---------------------------------------------------------------------- | | | 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 | instructions in `INSTALL.UNIX'), or you use one of the Visual C++ project files; see the subdirectories of `builds/windows'. For everything else, you are on your own, and you might follow the instructions in `INSTALL.ANY' to create your own Makefiles. ---------------------------------------------------------------------- Copyright (C) 2003-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/INSTALL.UNIX.
︙ | ︙ | |||
122 123 124 125 126 127 128 | 3. Call FreeType's `configure' script without option `--without-harfbuzz' (after executing `make distclean'), then compile and install FreeType again. ---------------------------------------------------------------------- | | | 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | 3. Call FreeType's `configure' script without option `--without-harfbuzz' (after executing `make distclean'), then compile and install FreeType again. ---------------------------------------------------------------------- Copyright (C) 2003-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/INSTALL.VMS.
︙ | ︙ | |||
45 46 47 48 49 50 51 | Any problems can be reported to Jouk Jansen <joukj@hrem.stm.tudelft.nl> or Martin P.J. Zinser <zinser@zinser.no-ip.info> ------------------------------------------------------------------------ | | | 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | Any problems can be reported to Jouk Jansen <joukj@hrem.stm.tudelft.nl> or Martin P.J. Zinser <zinser@zinser.no-ip.info> ------------------------------------------------------------------------ Copyright (C) 2000-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/TODO.
︙ | ︙ | |||
23 24 25 26 27 28 29 | * CID driver: Use top-level font matrix entry for setting the upem value, not the entries in the FDarray. If absent, use 1000. ------------------------------------------------------------------------ | | | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | * CID driver: Use top-level font matrix entry for setting the upem value, not the entries in the FDarray. If absent, use 1000. ------------------------------------------------------------------------ Copyright (C) 2001-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/VERSIONS.TXT.
︙ | ︙ | |||
56 57 58 59 60 61 62 63 64 65 66 67 68 69 | The following table gives, for all releases since 2.5.0, the corresponding libtool number, as well as the shared object number found on _most_ systems, but not all of them: release libtool so ------------------------------- 2.11.1 24.1.18 6.18.1 2.11.0 24.0.18 6.18.0 2.10.4 23.4.17 6.17.4 2.10.3 23.3.17 6.17.3 2.10.2 23.2.17 6.17.2 2.10.1 23.1.17 6.17.1 2.10.0 23.0.17 6.17.0 | > | 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | The following table gives, for all releases since 2.5.0, the corresponding libtool number, as well as the shared object number found on _most_ systems, but not all of them: release libtool so ------------------------------- 2.12.0 24.2.18 6.18.2 2.11.1 24.1.18 6.18.1 2.11.0 24.0.18 6.18.0 2.10.4 23.4.17 6.17.4 2.10.3 23.3.17 6.17.3 2.10.2 23.2.17 6.17.2 2.10.1 23.1.17 6.17.1 2.10.0 23.0.17 6.17.0 |
︙ | ︙ | |||
115 116 117 118 119 120 121 | AC_SUBST(FREETYPE_LIBS) AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library]) CPPFLAGS="$old_CPPFLAGS"], [AC_MSG_ERROR([Need FreeType library version 2.10.2 or higher])]) ---------------------------------------------------------------------- | | | 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | AC_SUBST(FREETYPE_LIBS) AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library]) CPPFLAGS="$old_CPPFLAGS"], [AC_MSG_ERROR([Need FreeType library version 2.10.2 or higher])]) ---------------------------------------------------------------------- Copyright (C) 2002-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. --- end of VERSIONS.TXT --- |
Changes to jni/freetype/docs/formats.txt.
︙ | ︙ | |||
196 197 198 199 200 201 202 | https://support.microsoft.com/kb/65123 [6] Supported font formats are TrueType and OpenType fonts as defined in the OpenType specification 1.6 and newer. ------------------------------------------------------------------------ | | | 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 | https://support.microsoft.com/kb/65123 [6] Supported font formats are TrueType and OpenType fonts as defined in the OpenType specification 1.6 and newer. ------------------------------------------------------------------------ Copyright (C) 2004-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/freetype-config.1.
|
| | | 1 2 3 4 5 6 7 8 | .TH FREETYPE-CONFIG 1 "March 2022" "FreeType 2.12.0" . . .SH NAME . freetype-config \- Get information about a libfreetype installation . . |
︙ | ︙ |
Changes to jni/freetype/docs/oldlogs/ChangeLog.20.
︙ | ︙ | |||
2593 2594 2595 2596 2597 2598 2599 | * Version 2.0 released. ======================= ---------------------------------------------------------------------------- | | | 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 | * Version 2.0 released. ======================= ---------------------------------------------------------------------------- Copyright (C) 2000-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/oldlogs/ChangeLog.21.
︙ | ︙ | |||
9418 9419 9420 9421 9422 9423 9424 | * src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Handle ft_encoding_latin_1. * src/type1/t1load.c (parse_encoding): Handle `ISOLatin1Encoding'. * src/type1/t1objs.c (T1_Face_Init): Handle `t1_encoding_isolatin1'. ---------------------------------------------------------------------------- | | | 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 | * src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Handle ft_encoding_latin_1. * src/type1/t1load.c (parse_encoding): Handle `ISOLatin1Encoding'. * src/type1/t1objs.c (T1_Face_Init): Handle `t1_encoding_isolatin1'. ---------------------------------------------------------------------------- Copyright (C) 2002-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/oldlogs/ChangeLog.210.
︙ | ︙ | |||
7795 7796 7797 7798 7799 7800 7801 | src/sfnt/sfntpic.c, src/sfnt/sfntpic.h, src/smooth/ftspic.c, src/smooth/ftspic.h, src/truetype/ttpic.c, src/truetype/ttpic.h: Removed. ---------------------------------------------------------------------------- | | | 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 | src/sfnt/sfntpic.c, src/sfnt/sfntpic.h, src/smooth/ftspic.c, src/smooth/ftspic.h, src/truetype/ttpic.c, src/truetype/ttpic.h: Removed. ---------------------------------------------------------------------------- Copyright (C) 2018-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/oldlogs/ChangeLog.22.
︙ | ︙ | |||
2817 2818 2819 2820 2821 2822 2823 | 2005-06-13 Werner Lemberg <wl@gnu.org> * docs/release: Update. ---------------------------------------------------------------------------- | | | 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 | 2005-06-13 Werner Lemberg <wl@gnu.org> * docs/release: Update. ---------------------------------------------------------------------------- Copyright (C) 2005-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/oldlogs/ChangeLog.23.
︙ | ︙ | |||
7928 7929 7930 7931 7932 7933 7934 | 2006-05-16 Werner Lemberg <wl@gnu.org> * docs/PROBLEMS: Updated icl issues. ---------------------------------------------------------------------------- | | | 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 | 2006-05-16 Werner Lemberg <wl@gnu.org> * docs/PROBLEMS: Updated icl issues. ---------------------------------------------------------------------------- Copyright (C) 2006-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/oldlogs/ChangeLog.24.
︙ | ︙ | |||
6340 6341 6342 6343 6344 6345 6346 | [FT_CONFIG_OPTION_INCREMENTAL]: New function, split off from... (tt_get_metrics): This. Updated. (load_truetype_glyph): Use tt_get_metrics_incr_overrides. ---------------------------------------------------------------------------- | | | 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 | [FT_CONFIG_OPTION_INCREMENTAL]: New function, split off from... (tt_get_metrics): This. Updated. (load_truetype_glyph): Use tt_get_metrics_incr_overrides. ---------------------------------------------------------------------------- Copyright (C) 2010-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/oldlogs/ChangeLog.25.
︙ | ︙ | |||
5141 5142 5143 5144 5145 5146 5147 | 2013-05-10 Werner Lemberg <wl@gnu.org> */* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code. ---------------------------------------------------------------------------- | | | 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 | 2013-05-10 Werner Lemberg <wl@gnu.org> */* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code. ---------------------------------------------------------------------------- Copyright (C) 2013-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/oldlogs/ChangeLog.26.
︙ | ︙ | |||
5691 5692 5693 5694 5695 5696 5697 | This starts a series of patches that simplifies the code of the bytecode interpreter. ---------------------------------------------------------------------------- | | | 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 | This starts a series of patches that simplifies the code of the bytecode interpreter. ---------------------------------------------------------------------------- Copyright (C) 2015-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/oldlogs/ChangeLog.27.
︙ | ︙ | |||
2086 2087 2088 2089 2090 2091 2092 | * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Initialize `points_org' before looping over all tuples. ---------------------------------------------------------------------------- | | | 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 | * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Initialize `points_org' before looping over all tuples. ---------------------------------------------------------------------------- Copyright (C) 2016-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/oldlogs/ChangeLog.28.
︙ | ︙ | |||
3116 3117 3118 3119 3120 3121 3122 | * src/truetype/ttgxvar.c (ft_var_load_hvar): Check axis count. (ft_var_load_avar): Fix tracing message. ---------------------------------------------------------------------------- | | | 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 | * src/truetype/ttgxvar.c (ft_var_load_hvar): Check axis count. (ft_var_load_avar): Fix tracing message. ---------------------------------------------------------------------------- Copyright (C) 2016-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/oldlogs/ChangeLog.29.
︙ | ︙ | |||
2332 2333 2334 2335 2336 2337 2338 | * build/windows/vc2010/freetype.vcxproj: Use MaxSpeed (/02) optimization for Release configuration throughout the project. ---------------------------------------------------------------------------- | | | 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 | * build/windows/vc2010/freetype.vcxproj: Use MaxSpeed (/02) optimization for Release configuration throughout the project. ---------------------------------------------------------------------------- Copyright (C) 2017-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/raster.txt.
︙ | ︙ | |||
614 615 616 617 618 619 620 | above. Once the spans have been `created', we can simply draw them in the target bitmap. ------------------------------------------------------------------------ | | | 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 | above. Once the spans have been `created', we can simply draw them in the target bitmap. ------------------------------------------------------------------------ Copyright (C) 2003-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/docs/reference/404.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="/images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="/assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="/assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
73 74 75 76 77 78 79 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="/index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="/images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> |
︙ | ︙ | |||
152 153 154 155 156 157 158 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="/index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="/images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
531 532 533 534 535 536 537 538 539 540 541 542 543 544 | </li> <li class="md-nav__item"> <a href="/ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="/ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="/ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
640 641 642 643 644 645 646 647 648 649 650 651 652 653 | <li class="md-nav__item"> <a href="/ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="/ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="/ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1072 1073 1074 1075 1076 1077 1078 | <footer class="md-footer"> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 | <footer class="md-footer"> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-auto_hinter.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>The auto-hinter - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> The auto-hinter |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
687 688 689 690 691 692 693 694 695 696 697 698 699 700 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1199 1200 1201 1202 1203 1204 1205 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-base_interface.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Base Interface - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Base Interface |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
460 461 462 463 464 465 466 467 468 469 470 471 472 473 | </li> <li class="md-nav__item"> <a href="#ft_has_multiple_masters" class="md-nav__link"> FT_HAS_MULTIPLE_MASTERS </a> </li> <li class="md-nav__item"> <a href="#ft_is_sfnt" class="md-nav__link"> FT_IS_SFNT </a> | > > > > > > > > > > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="#ft_has_multiple_masters" class="md-nav__link"> FT_HAS_MULTIPLE_MASTERS </a> </li> <li class="md-nav__item"> <a href="#ft_has_svg" class="md-nav__link"> FT_HAS_SVG </a> </li> <li class="md-nav__item"> <a href="#ft_has_sbix" class="md-nav__link"> FT_HAS_SBIX </a> </li> <li class="md-nav__item"> <a href="#ft_has_sbix_overlay" class="md-nav__link"> FT_HAS_SBIX_OVERLAY </a> </li> <li class="md-nav__item"> <a href="#ft_is_sfnt" class="md-nav__link"> FT_IS_SFNT </a> |
︙ | ︙ | |||
1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 | </li> <li class="md-nav__item"> <a href="#ft_has_multiple_masters" class="md-nav__link"> FT_HAS_MULTIPLE_MASTERS </a> </li> <li class="md-nav__item"> <a href="#ft_is_sfnt" class="md-nav__link"> FT_IS_SFNT </a> | > > > > > > > > > > > > > > > > > > > > > | 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 | </li> <li class="md-nav__item"> <a href="#ft_has_multiple_masters" class="md-nav__link"> FT_HAS_MULTIPLE_MASTERS </a> </li> <li class="md-nav__item"> <a href="#ft_has_svg" class="md-nav__link"> FT_HAS_SVG </a> </li> <li class="md-nav__item"> <a href="#ft_has_sbix" class="md-nav__link"> FT_HAS_SBIX </a> </li> <li class="md-nav__item"> <a href="#ft_has_sbix_overlay" class="md-nav__link"> FT_HAS_SBIX_OVERLAY </a> </li> <li class="md-nav__item"> <a href="#ft_is_sfnt" class="md-nav__link"> FT_IS_SFNT </a> |
︙ | ︙ | |||
2299 2300 2301 2302 2303 2304 2305 | <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_SizeRec_* <b>FT_Size</b>; </code></pre></div> <p>A handle to an object that models a face scaled to a given character size.</p> <h4>note</h4> | | | | 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 | <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_SizeRec_* <b>FT_Size</b>; </code></pre></div> <p>A handle to an object that models a face scaled to a given character size.</p> <h4>note</h4> <p>An <code><a href="ft2-base_interface.html#ft_face">FT_Face</a></code> has one <em>active</em> <code>FT_Size</code> object that is used by functions like <code><a href="ft2-base_interface.html#ft_load_glyph">FT_Load_Glyph</a></code> to determine the scaling transformation that in turn is used to load and hint glyphs and metrics.</p> <p>A newly created <code>FT_Size</code> object contains only meaningless zero values. You must use <code><a href="ft2-base_interface.html#ft_set_char_size">FT_Set_Char_Size</a></code>, <code><a href="ft2-base_interface.html#ft_set_pixel_sizes">FT_Set_Pixel_Sizes</a></code>, <code><a href="ft2-base_interface.html#ft_request_size">FT_Request_Size</a></code> or even <code><a href="ft2-base_interface.html#ft_select_size">FT_Select_Size</a></code> to change the content (i.e., the scaling values) of the active <code>FT_Size</code>. Otherwise, the scaling and hinting will not be performed.</p> <p>You can use <code><a href="ft2-sizes_management.html#ft_new_size">FT_New_Size</a></code> to create additional size objects for a given <code><a href="ft2-base_interface.html#ft_face">FT_Face</a></code>, but they won't be used by other functions until you activate it through <code><a href="ft2-sizes_management.html#ft_activate_size">FT_Activate_Size</a></code>. Only one size can be activated at any given time per face.</p> <h4>also</h4> <p>See <code><a href="ft2-base_interface.html#ft_sizerec">FT_SizeRec</a></code> for the publicly accessible fields of a given size object.</p> <hr> <h2 id="ft_glyphslot">FT_GlyphSlot<a class="headerlink" href="#ft_glyphslot" title="Permanent link">¶</a></h2> |
︙ | ︙ | |||
2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 | <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_HAS_MULTIPLE_MASTERS</b>( face ) \ ( !!( (face)->face_flags & <a href="ft2-base_interface.html#ft_face_flag_multiple_masters">FT_FACE_FLAG_MULTIPLE_MASTERS</a> ) ) </code></pre></div> <p>A macro that returns true whenever a face object contains some multiple masters. The functions provided by <code><a href="ft2-header_file_macros.html#ft_multiple_masters_h">FT_MULTIPLE_MASTERS_H</a></code> are then available to choose the exact design you want.</p> <hr> <h2 id="ft_is_sfnt">FT_IS_SFNT<a class="headerlink" href="#ft_is_sfnt" title="Permanent link">¶</a></h2> <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_IS_SFNT</b>( face ) \ ( !!( (face)->face_flags & <a href="ft2-base_interface.html#ft_face_flag_sfnt">FT_FACE_FLAG_SFNT</a> ) ) </code></pre></div> | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 | <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_HAS_MULTIPLE_MASTERS</b>( face ) \ ( !!( (face)->face_flags & <a href="ft2-base_interface.html#ft_face_flag_multiple_masters">FT_FACE_FLAG_MULTIPLE_MASTERS</a> ) ) </code></pre></div> <p>A macro that returns true whenever a face object contains some multiple masters. The functions provided by <code><a href="ft2-header_file_macros.html#ft_multiple_masters_h">FT_MULTIPLE_MASTERS_H</a></code> are then available to choose the exact design you want.</p> <hr> <h2 id="ft_has_svg">FT_HAS_SVG<a class="headerlink" href="#ft_has_svg" title="Permanent link">¶</a></h2> <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_HAS_SVG</b>( face ) \ ( !!( (face)->face_flags & <a href="ft2-base_interface.html#ft_face_flag_svg">FT_FACE_FLAG_SVG</a> ) ) </code></pre></div> <p>A macro that returns true whenever a face object contains an ‘SVG ’ OpenType table.</p> <h4>since</h4> <p>2.12</p> <hr> <h2 id="ft_has_sbix">FT_HAS_SBIX<a class="headerlink" href="#ft_has_sbix" title="Permanent link">¶</a></h2> <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_HAS_SBIX</b>( face ) \ ( !!( (face)->face_flags & <a href="ft2-base_interface.html#ft_face_flag_sbix">FT_FACE_FLAG_SBIX</a> ) ) </code></pre></div> <p>A macro that returns true whenever a face object contains an ‘sbix’ OpenType table <em>and</em> outline glyphs.</p> <p>Currently, FreeType only supports bitmap glyphs in PNG format for this table (i.e., JPEG and TIFF formats are unsupported, as are Apple-specific formats not part of the OpenType specification).</p> <h4>note</h4> <p>For backward compatibility, a font with an ‘sbix’ table is treated as a bitmap-only face. Using <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code> with <code><a href="ft2-parameter_tags.html#ft_param_tag_ignore_sbix">FT_PARAM_TAG_IGNORE_SBIX</a></code>, an application can switch off ‘sbix’ handling so that the face is treated as an ordinary outline font with scalable outlines.</p> <p>Here is some pseudo code that roughly illustrates how to implement ‘sbix’ handling according to the OpenType specification. <div class="highlight"><pre><span></span><code> if ( FT_HAS_SBIX( face ) ) { // open font as a scalable one without sbix handling FT_Face face2; FT_Parameter param = { FT_PARAM_TAG_IGNORE_SBIX, NULL }; FT_Open_Args args = { FT_OPEN_PARAMS | ..., ..., 1, &param }; FT_Open_Face( library, &args, 0, &face2 ); <sort `face->available_size` as necessary into `preferred_sizes`[*]> for ( i = 0; i < face->num_fixed_sizes; i++ ) { size = preferred_sizes[i].size; error = FT_Set_Pixel_Sizes( face, size, size ); <error handling omitted> // check whether we have a glyph in a bitmap strike error = FT_Load_Glyph( face, glyph_index, FT_LOAD_SBITS_ONLY | FT_LOAD_BITMAP_METRICS_ONLY ); if ( error == FT_Err_Invalid_Argument ) continue; else if ( error ) <other error handling omitted> else break; } if ( i != face->num_fixed_sizes ) <load embedded bitmap with `FT_Load_Glyph`, scale it, display it, etc.> if ( i == face->num_fixed_sizes || FT_HAS_SBIX_OVERLAY( face ) ) <use `face2` to load outline glyph with `FT_Load_Glyph`, scale it, display it on top of the bitmap, etc.> } </code></pre></div></p> <p>[*] Assuming a target value of 400dpi and available strike sizes 100, 200, 300, and 400dpi, a possible order might be [400, 200, 300, 100]: scaling 200dpi to 400dpi usually gives better results than scaling 300dpi to 400dpi; it is also much faster. However, scaling 100dpi to 400dpi can yield a too pixelated result, thus the preference might be 300dpi over 100dpi.</p> <h4>since</h4> <p>2.12</p> <hr> <h2 id="ft_has_sbix_overlay">FT_HAS_SBIX_OVERLAY<a class="headerlink" href="#ft_has_sbix_overlay" title="Permanent link">¶</a></h2> <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_HAS_SBIX_OVERLAY</b>( face ) \ ( !!( (face)->face_flags & <a href="ft2-base_interface.html#ft_face_flag_sbix_overlay">FT_FACE_FLAG_SBIX_OVERLAY</a> ) ) </code></pre></div> <p>A macro that returns true whenever a face object contains an ‘sbix’ OpenType table with bit 1 in its <code>flags</code> field set, instructing the application to overlay the bitmap strike with the corresponding outline glyph. See <code><a href="ft2-base_interface.html#ft_has_sbix">FT_HAS_SBIX</a></code> for pseudo code how to use it.</p> <h4>since</h4> <p>2.12</p> <hr> <h2 id="ft_is_sfnt">FT_IS_SFNT<a class="headerlink" href="#ft_is_sfnt" title="Permanent link">¶</a></h2> <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_IS_SFNT</b>( face ) \ ( !!( (face)->face_flags & <a href="ft2-base_interface.html#ft_face_flag_sfnt">FT_FACE_FLAG_SFNT</a> ) ) </code></pre></div> |
︙ | ︙ | |||
3782 3783 3784 3785 3786 3787 3788 | <h4>return</h4> <p>FreeType error code. 0 means success.</p> <h4>note</h4> <p>Although drivers may select the bitmap strike matching the request, you should not rely on this if you intend to select a particular bitmap strike. Use <code><a href="ft2-base_interface.html#ft_select_size">FT_Select_Size</a></code> instead in that case.</p> <p>The relation between the requested size and the resulting glyph size is dependent entirely on how the size is defined in the source face. The font designer chooses the final size of each glyph relative to this size. For more information refer to ‘<a href="https://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html">https://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html</a>’.</p> | | | 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 | <h4>return</h4> <p>FreeType error code. 0 means success.</p> <h4>note</h4> <p>Although drivers may select the bitmap strike matching the request, you should not rely on this if you intend to select a particular bitmap strike. Use <code><a href="ft2-base_interface.html#ft_select_size">FT_Select_Size</a></code> instead in that case.</p> <p>The relation between the requested size and the resulting glyph size is dependent entirely on how the size is defined in the source face. The font designer chooses the final size of each glyph relative to this size. For more information refer to ‘<a href="https://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html">https://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html</a>’.</p> <p>Contrary to <code><a href="ft2-base_interface.html#ft_set_char_size">FT_Set_Char_Size</a></code>, this function doesn't have special code to normalize zero-valued widths, heights, or resolutions, which are treated as <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_SCALE</a></code>.</p> <p>Don't use this function if you are using the FreeType cache API.</p> <hr> <h2 id="ft_select_size">FT_Select_Size<a class="headerlink" href="#ft_select_size" title="Permanent link">¶</a></h2> <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) <b>FT_Select_Size</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a> face, |
︙ | ︙ | |||
3993 3994 3995 3996 3997 3998 3999 | <h4>input</h4> <table class="fields"> <tr><td class="val" id="glyph_index">glyph_index</td><td class="desc"> <p>The index of the glyph in the font file. For CID-keyed fonts (either in PS or in CFF format) this argument specifies the CID value.</p> </td></tr> <tr><td class="val" id="load_flags">load_flags</td><td class="desc"> | | | | 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 | <h4>input</h4> <table class="fields"> <tr><td class="val" id="glyph_index">glyph_index</td><td class="desc"> <p>The index of the glyph in the font file. For CID-keyed fonts (either in PS or in CFF format) this argument specifies the CID value.</p> </td></tr> <tr><td class="val" id="load_flags">load_flags</td><td class="desc"> <p>A flag indicating what to load for this glyph. The <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_XXX</a></code> flags can be used to control the glyph loading process (e.g., whether the outline should be scaled, whether to load bitmaps or not, whether to hint the outline, etc).</p> </td></tr> </table> <h4>return</h4> <p>FreeType error code. 0 means success.</p> <h4>note</h4> <p>For proper scaling and hinting, the active <code><a href="ft2-base_interface.html#ft_size">FT_Size</a></code> object owned by the face has to be meaningfully initialized by calling <code><a href="ft2-base_interface.html#ft_set_char_size">FT_Set_Char_Size</a></code> before this function, for example. The loaded glyph may be transformed. See <code><a href="ft2-base_interface.html#ft_set_transform">FT_Set_Transform</a></code> for the details.</p> <p>For subsetted CID-keyed fonts, <code>FT_Err_Invalid_Argument</code> is returned for invalid CID values (this is, for CID values that don't have a corresponding glyph in the font). See the discussion of the <code><a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_CID_KEYED</a></code> flag for more details.</p> <p>If you receive <code>FT_Err_Glyph_Too_Big</code>, try getting the glyph outline at EM size, then scale it manually and fill it as a graphics operation.</p> <hr> <h2 id="ft_get_char_index">FT_Get_Char_Index<a class="headerlink" href="#ft_get_char_index" title="Permanent link">¶</a></h2> <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_uint">FT_UInt</a> ) |
︙ | ︙ | |||
4199 4200 4201 4202 4203 4204 4205 | </td></tr> </table> <h4>input</h4> <table class="fields"> <tr><td class="val" id="render_mode">render_mode</td><td class="desc"> <p>The render mode used to render the glyph image into a bitmap. See <code><a href="ft2-base_interface.html#ft_render_mode">FT_Render_Mode</a></code> for a list of possible values.</p> | | < | 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 | </td></tr> </table> <h4>input</h4> <table class="fields"> <tr><td class="val" id="render_mode">render_mode</td><td class="desc"> <p>The render mode used to render the glyph image into a bitmap. See <code><a href="ft2-base_interface.html#ft_render_mode">FT_Render_Mode</a></code> for a list of possible values.</p> <p>If <code><a href="ft2-base_interface.html#ft_render_mode">FT_RENDER_MODE_NORMAL</a></code> is used, a previous call of <code><a href="ft2-base_interface.html#ft_load_glyph">FT_Load_Glyph</a></code> with flag <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_COLOR</a></code> makes <code>FT_Render_Glyph</code> provide a default blending of colored glyph layers associated with the current glyph slot (provided the font contains such layers) instead of rendering the glyph slot's outline. This is an experimental feature; see <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_COLOR</a></code> for more information.</p> </td></tr> </table> <h4>return</h4> <p>FreeType error code. 0 means success.</p> <h4>note</h4> <p>When FreeType outputs a bitmap of a glyph, it really outputs an alpha coverage map. If a pixel is completely covered by a filled-in outline, the bitmap contains 0xFF at that pixel, meaning that 0xFF/0xFF fraction of that pixel is covered, meaning the pixel is 100% black (or 0% bright). If a pixel is only 50% covered (value 0x80), the pixel is made 50% black (50% bright or a middle shade of grey). 0% covered means 0% black (100% bright or white).</p> <p>On high-DPI screens like on smartphones and tablets, the pixels are so small that their chance of being completely covered and therefore completely black are fairly good. On the low-DPI screens, however, the situation is different. The pixels are too large for most of the details of a glyph and shades of gray are the norm rather than the exception.</p> <p>This is relevant because all our screens have a second problem: they are not linear. 1 + 1 is not 2. Twice the value does not result in twice the brightness. When a pixel is only 50% covered, the coverage map says 50% black, and this translates to a pixel value of 128 when you use 8 bits per channel (0-255). However, this does not translate to 50% brightness for that pixel on our sRGB and gamma 2.2 screens. Due to their non-linearity, they dwell longer in the darks and only a pixel value of about 186 results in 50% brightness – 128 ends up too dark on both bright and dark backgrounds. The net result is that dark text looks burnt-out, pixely and blotchy on bright background, bright text too frail on dark backgrounds, and colored text on colored background (for example, red on green) seems to have dark halos or ‘dirt’ around it. The situation is especially ugly for diagonal stems like in ‘w’ glyph shapes where the quality of FreeType's anti-aliasing depends on the correct display of grays. On high-DPI screens where smaller, fully black pixels reign supreme, this doesn't matter, but on our low-DPI screens with all the gray shades, it does. 0% and 100% brightness are the same things in linear and non-linear space, just all the shades in-between aren't.</p> <p>The blending function for placing text over a background is <div class="highlight"><pre><span></span><code> dst = alpha * src + (1 - alpha) * dst , </code></pre></div></p> <p>which is known as the OVER operator.</p> |
︙ | ︙ | |||
4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 | // Convert to pixel values. sd = ( sd / 128.0f ) * spread; // Store `sd` in a buffer or use as required. } </code></pre></div></p> <hr> <h2 id="ft_get_kerning">FT_Get_Kerning<a class="headerlink" href="#ft_get_kerning" title="Permanent link">¶</a></h2> <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) <b>FT_Get_Kerning</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a> face, <a href="ft2-basic_types.html#ft_uint">FT_UInt</a> left_glyph, | > > > > > > > > > > > > > > > > > > > > > > > > > > | 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 | // Convert to pixel values. sd = ( sd / 128.0f ) * spread; // Store `sd` in a buffer or use as required. } </code></pre></div></p> <p>FreeType has two rasterizers for generating SDF, namely:</p> <ol> <li> <p><code>sdf</code> for generating SDF directly from glyph's outline, and</p> </li> <li> <p><code>bsdf</code> for generating SDF from rasterized bitmaps.</p> </li> </ol> <p>Depending on the glyph type (i.e., outline or bitmap), one of the two rasterizers is chosen at runtime and used for generating SDFs. To force the use of <code>bsdf</code> you should render the glyph with any of the FreeType's other rendering modes (e.g., <code>FT_RENDER_MODE_NORMAL</code>) and then re-render with <code>FT_RENDER_MODE_SDF</code>.</p> <p>There are some issues with stability and possible failures of the SDF renderers (specifically <code>sdf</code>).</p> <ol> <li> <p>The <code>sdf</code> rasterizer is sensitive to really small features (e.g., sharp turns that are less than 1 pixel) and imperfections in the glyph's outline, causing artifacts in the final output.</p> </li> <li> <p>The <code>sdf</code> rasterizer has limited support for handling intersecting contours and <em>cannot</em> handle self-intersecting contours whatsoever. Self-intersection happens when a single connected contour intersect itself at some point; having these in your font definitely pose a problem to the rasterizer and cause artifacts, too.</p> </li> <li> <p>Generating SDF for really small glyphs may result in undesirable output; the pixel grid (which stores distance information) becomes too coarse.</p> </li> <li> <p>Since the output buffer is normalized, precision at smaller spreads is greater than precision at larger spread values because the output range of [0..255] gets mapped to a smaller SDF range. A spread of 2 should be sufficient in most cases.</p> </li> </ol> <p>Points (1) and (2) can be avoided by using the <code>bsdf</code> rasterizer, which is more stable than the <code>sdf</code> rasterizer in general.</p> <hr> <h2 id="ft_get_kerning">FT_Get_Kerning<a class="headerlink" href="#ft_get_kerning" title="Permanent link">¶</a></h2> <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) <b>FT_Get_Kerning</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a> face, <a href="ft2-basic_types.html#ft_uint">FT_UInt</a> left_glyph, |
︙ | ︙ | |||
4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 | #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_glyph_names">FT_FACE_FLAG_GLYPH_NAMES</a> ( 1L << 9 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_external_stream">FT_FACE_FLAG_EXTERNAL_STREAM</a> ( 1L << 10 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_hinter">FT_FACE_FLAG_HINTER</a> ( 1L << 11 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_cid_keyed">FT_FACE_FLAG_CID_KEYED</a> ( 1L << 12 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_tricky">FT_FACE_FLAG_TRICKY</a> ( 1L << 13 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_color">FT_FACE_FLAG_COLOR</a> ( 1L << 14 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_variation">FT_FACE_FLAG_VARIATION</a> ( 1L << 15 ) </code></pre></div> <p>A list of bit flags used in the <code>face_flags</code> field of the <code><a href="ft2-base_interface.html#ft_facerec">FT_FaceRec</a></code> structure. They inform client applications of properties of the corresponding face.</p> <h4>values</h4> <table class="fields long"> <tr><td class="val" id="ft_face_flag_scalable">FT_FACE_FLAG_SCALABLE</td><td class="desc"> <p>The face contains outline glyphs. Note that a face can contain bitmap strikes also, i.e., a face can have both this flag and <code><a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_FIXED_SIZES</a></code> set.</p> | > > > | 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 | #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_glyph_names">FT_FACE_FLAG_GLYPH_NAMES</a> ( 1L << 9 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_external_stream">FT_FACE_FLAG_EXTERNAL_STREAM</a> ( 1L << 10 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_hinter">FT_FACE_FLAG_HINTER</a> ( 1L << 11 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_cid_keyed">FT_FACE_FLAG_CID_KEYED</a> ( 1L << 12 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_tricky">FT_FACE_FLAG_TRICKY</a> ( 1L << 13 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_color">FT_FACE_FLAG_COLOR</a> ( 1L << 14 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_variation">FT_FACE_FLAG_VARIATION</a> ( 1L << 15 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_svg">FT_FACE_FLAG_SVG</a> ( 1L << 16 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_sbix">FT_FACE_FLAG_SBIX</a> ( 1L << 17 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_face_flag_sbix_overlay">FT_FACE_FLAG_SBIX_OVERLAY</a> ( 1L << 18 ) </code></pre></div> <p>A list of bit flags used in the <code>face_flags</code> field of the <code><a href="ft2-base_interface.html#ft_facerec">FT_FaceRec</a></code> structure. They inform client applications of properties of the corresponding face.</p> <h4>values</h4> <table class="fields long"> <tr><td class="val" id="ft_face_flag_scalable">FT_FACE_FLAG_SCALABLE</td><td class="desc"> <p>The face contains outline glyphs. Note that a face can contain bitmap strikes also, i.e., a face can have both this flag and <code><a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_FIXED_SIZES</a></code> set.</p> |
︙ | ︙ | |||
4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 | </td></tr> <tr><td class="val" id="ft_face_flag_color">FT_FACE_FLAG_COLOR</td><td class="desc"> <p>[Since 2.5.1] The face has color glyph tables. See <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_COLOR</a></code> for more information.</p> </td></tr> <tr><td class="val" id="ft_face_flag_variation">FT_FACE_FLAG_VARIATION</td><td class="desc"> <p>[Since 2.9] Set if the current face (or named instance) has been altered with <code><a href="ft2-multiple_masters.html#ft_set_mm_design_coordinates">FT_Set_MM_Design_Coordinates</a></code>, <code><a href="ft2-multiple_masters.html#ft_set_var_design_coordinates">FT_Set_Var_Design_Coordinates</a></code>, or <code><a href="ft2-multiple_masters.html#ft_set_var_blend_coordinates">FT_Set_Var_Blend_Coordinates</a></code>. This flag is unset by a call to <code><a href="ft2-multiple_masters.html#ft_set_named_instance">FT_Set_Named_Instance</a></code>.</p> </td></tr> </table> <hr> <h2 id="ft_style_flag_xxx">FT_STYLE_FLAG_XXX<a class="headerlink" href="#ft_style_flag_xxx" title="Permanent link">¶</a></h2> <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_style_flag_italic">FT_STYLE_FLAG_ITALIC</a> ( 1 << 0 ) | > > > > > > > > > | 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 | </td></tr> <tr><td class="val" id="ft_face_flag_color">FT_FACE_FLAG_COLOR</td><td class="desc"> <p>[Since 2.5.1] The face has color glyph tables. See <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_COLOR</a></code> for more information.</p> </td></tr> <tr><td class="val" id="ft_face_flag_variation">FT_FACE_FLAG_VARIATION</td><td class="desc"> <p>[Since 2.9] Set if the current face (or named instance) has been altered with <code><a href="ft2-multiple_masters.html#ft_set_mm_design_coordinates">FT_Set_MM_Design_Coordinates</a></code>, <code><a href="ft2-multiple_masters.html#ft_set_var_design_coordinates">FT_Set_Var_Design_Coordinates</a></code>, or <code><a href="ft2-multiple_masters.html#ft_set_var_blend_coordinates">FT_Set_Var_Blend_Coordinates</a></code>. This flag is unset by a call to <code><a href="ft2-multiple_masters.html#ft_set_named_instance">FT_Set_Named_Instance</a></code>.</p> </td></tr> <tr><td class="val" id="ft_face_flag_svg">FT_FACE_FLAG_SVG</td><td class="desc"> <p>[Since 2.12] The face has an ‘SVG ’ OpenType table.</p> </td></tr> <tr><td class="val" id="ft_face_flag_sbix">FT_FACE_FLAG_SBIX</td><td class="desc"> <p>[Since 2.12] The face has an ‘sbix’ OpenType table <em>and</em> outlines. For such fonts, <code><a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_SCALABLE</a></code> is not set by default to retain backward compatibility.</p> </td></tr> <tr><td class="val" id="ft_face_flag_sbix_overlay">FT_FACE_FLAG_SBIX_OVERLAY</td><td class="desc"> <p>[Since 2.12] The face has an ‘sbix’ OpenType table where outlines should be drawn on top of bitmap strikes.</p> </td></tr> </table> <hr> <h2 id="ft_style_flag_xxx">FT_STYLE_FLAG_XXX<a class="headerlink" href="#ft_style_flag_xxx" title="Permanent link">¶</a></h2> <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_style_flag_italic">FT_STYLE_FLAG_ITALIC</a> ( 1 << 0 ) |
︙ | ︙ | |||
4854 4855 4856 4857 4858 4859 4860 | <p>The <code>FT_OPEN_MEMORY</code>, <code>FT_OPEN_STREAM</code>, and <code>FT_OPEN_PATHNAME</code> flags are mutually exclusive.</p> <hr> <h2 id="ft_load_xxx">FT_LOAD_XXX<a class="headerlink" href="#ft_load_xxx" title="Permanent link">¶</a></h2> <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_default">FT_LOAD_DEFAULT</a> 0x0 | | | | | | | | | | > | 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 | <p>The <code>FT_OPEN_MEMORY</code>, <code>FT_OPEN_STREAM</code>, and <code>FT_OPEN_PATHNAME</code> flags are mutually exclusive.</p> <hr> <h2 id="ft_load_xxx">FT_LOAD_XXX<a class="headerlink" href="#ft_load_xxx" title="Permanent link">¶</a></h2> <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_default">FT_LOAD_DEFAULT</a> 0x0 #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_no_scale">FT_LOAD_NO_SCALE</a> ( 1L << 0 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_no_hinting">FT_LOAD_NO_HINTING</a> ( 1L << 1 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_render">FT_LOAD_RENDER</a> ( 1L << 2 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_no_bitmap">FT_LOAD_NO_BITMAP</a> ( 1L << 3 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_vertical_layout">FT_LOAD_VERTICAL_LAYOUT</a> ( 1L << 4 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_force_autohint">FT_LOAD_FORCE_AUTOHINT</a> ( 1L << 5 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_crop_bitmap">FT_LOAD_CROP_BITMAP</a> ( 1L << 6 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_pedantic">FT_LOAD_PEDANTIC</a> ( 1L << 7 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_ignore_global_advance_width">FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH</a> ( 1L << 9 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_no_recurse">FT_LOAD_NO_RECURSE</a> ( 1L << 10 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_ignore_transform">FT_LOAD_IGNORE_TRANSFORM</a> ( 1L << 11 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_monochrome">FT_LOAD_MONOCHROME</a> ( 1L << 12 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_linear_design">FT_LOAD_LINEAR_DESIGN</a> ( 1L << 13 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_sbits_only">FT_LOAD_SBITS_ONLY</a> ( 1L << 14 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_no_autohint">FT_LOAD_NO_AUTOHINT</a> ( 1L << 15 ) /* Bits 16-19 are used by `FT_LOAD_TARGET_` */ #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_color">FT_LOAD_COLOR</a> ( 1L << 20 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_compute_metrics">FT_LOAD_COMPUTE_METRICS</a> ( 1L << 21 ) #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_bitmap_metrics_only">FT_LOAD_BITMAP_METRICS_ONLY</a> ( 1L << 22 ) </code></pre></div> |
︙ | ︙ | |||
4888 4889 4890 4891 4892 4893 4894 | </li> <li><p>If no embedded bitmap is searched for or found, FreeType looks for a scalable outline. If one is found, it is loaded from the font file, scaled to device pixels, then ‘hinted’ to the pixel grid in order to optimize it. The outline data can be accessed from the glyph slot (see note below).</p> </li> </ol> <p>Note that by default the glyph loader doesn't render outlines into bitmaps. The following flags are used to modify this default behaviour to more specific and useful cases.</p> </td></tr> <tr><td class="val" id="ft_load_no_scale">FT_LOAD_NO_SCALE</td><td class="desc"> | | > > > > | 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 | </li> <li><p>If no embedded bitmap is searched for or found, FreeType looks for a scalable outline. If one is found, it is loaded from the font file, scaled to device pixels, then ‘hinted’ to the pixel grid in order to optimize it. The outline data can be accessed from the glyph slot (see note below).</p> </li> </ol> <p>Note that by default the glyph loader doesn't render outlines into bitmaps. The following flags are used to modify this default behaviour to more specific and useful cases.</p> </td></tr> <tr><td class="val" id="ft_load_no_scale">FT_LOAD_NO_SCALE</td><td class="desc"> <p>Don't scale the loaded outline glyph but keep it in font units. This flag is also assumed if <code><a href="ft2-base_interface.html#ft_size">FT_Size</a></code> owned by the face was not properly initialized.</p> <p>This flag implies <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_HINTING</a></code> and <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_BITMAP</a></code>, and unsets <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_RENDER</a></code>.</p> <p>If the font is ‘tricky’ (see <code><a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_TRICKY</a></code> for more), using <code>FT_LOAD_NO_SCALE</code> usually yields meaningless outlines because the subglyphs must be scaled and positioned with hinting instructions. This can be solved by loading the font without <code>FT_LOAD_NO_SCALE</code> and setting the character size to <code>font->units_per_EM</code>.</p> </td></tr> <tr><td class="val" id="ft_load_no_hinting">FT_LOAD_NO_HINTING</td><td class="desc"> <p>Disable hinting. This generally generates ‘blurrier’ bitmap glyphs when the glyph are rendered in any of the anti-aliased modes. See also the note below.</p> <p>This flag is implied by <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_SCALE</a></code>.</p> </td></tr> <tr><td class="val" id="ft_load_render">FT_LOAD_RENDER</td><td class="desc"> <p>Call <code><a href="ft2-base_interface.html#ft_render_glyph">FT_Render_Glyph</a></code> after the glyph is loaded. By default, the glyph is rendered in <code><a href="ft2-base_interface.html#ft_render_mode">FT_RENDER_MODE_NORMAL</a></code> mode. This can be overridden by <code><a href="ft2-base_interface.html#ft_load_target_xxx">FT_LOAD_TARGET_XXX</a></code> or <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_MONOCHROME</a></code>.</p> <p>This flag is unset by <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_SCALE</a></code>.</p> </td></tr> <tr><td class="val" id="ft_load_no_bitmap">FT_LOAD_NO_BITMAP</td><td class="desc"> <p>Ignore bitmap strikes when loading. Bitmap-only fonts ignore this flag.</p> <p><code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_SCALE</a></code> always sets this flag.</p> </td></tr> <tr><td class="val" id="ft_load_sbits_only">FT_LOAD_SBITS_ONLY</td><td class="desc"> <p>[Since 2.12] This is the opposite of <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_BITMAP</a></code>, more or less: <code><a href="ft2-base_interface.html#ft_load_glyph">FT_Load_Glyph</a></code> returns <code>FT_Err_Invalid_Argument</code> if the face contains a bitmap strike for the given size (or the strike selected by <code><a href="ft2-base_interface.html#ft_select_size">FT_Select_Size</a></code>) but there is no glyph in the strike.</p> <p>Note that this load flag was part of FreeType since version 2.0.6 but previously tagged as internal.</p> </td></tr> <tr><td class="val" id="ft_load_vertical_layout">FT_LOAD_VERTICAL_LAYOUT</td><td class="desc"> <p>Load the glyph for vertical text layout. In particular, the <code>advance</code> value in the <code><a href="ft2-base_interface.html#ft_glyphslotrec">FT_GlyphSlotRec</a></code> structure is set to the <code>vertAdvance</code> value of the <code>metrics</code> field.</p> <p>In case <code><a href="ft2-base_interface.html#ft_has_vertical">FT_HAS_VERTICAL</a></code> doesn't return true, you shouldn't use this flag currently. Reason is that in this case vertical metrics get synthesized, and those values are not always consistent across various font formats.</p> </td></tr> <tr><td class="val" id="ft_load_force_autohint">FT_LOAD_FORCE_AUTOHINT</td><td class="desc"> <p>Prefer the auto-hinter over the font's native hinter. See also the note below.</p> </td></tr> |
︙ | ︙ | |||
4934 4935 4936 4937 4938 4939 4940 | <tr><td class="val" id="ft_load_linear_design">FT_LOAD_LINEAR_DESIGN</td><td class="desc"> <p>Keep <code>linearHoriAdvance</code> and <code>linearVertAdvance</code> fields of <code><a href="ft2-base_interface.html#ft_glyphslotrec">FT_GlyphSlotRec</a></code> in font units. See <code><a href="ft2-base_interface.html#ft_glyphslotrec">FT_GlyphSlotRec</a></code> for details.</p> </td></tr> <tr><td class="val" id="ft_load_no_autohint">FT_LOAD_NO_AUTOHINT</td><td class="desc"> <p>Disable the auto-hinter. See also the note below.</p> </td></tr> <tr><td class="val" id="ft_load_color">FT_LOAD_COLOR</td><td class="desc"> | | | > | | 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 | <tr><td class="val" id="ft_load_linear_design">FT_LOAD_LINEAR_DESIGN</td><td class="desc"> <p>Keep <code>linearHoriAdvance</code> and <code>linearVertAdvance</code> fields of <code><a href="ft2-base_interface.html#ft_glyphslotrec">FT_GlyphSlotRec</a></code> in font units. See <code><a href="ft2-base_interface.html#ft_glyphslotrec">FT_GlyphSlotRec</a></code> for details.</p> </td></tr> <tr><td class="val" id="ft_load_no_autohint">FT_LOAD_NO_AUTOHINT</td><td class="desc"> <p>Disable the auto-hinter. See also the note below.</p> </td></tr> <tr><td class="val" id="ft_load_color">FT_LOAD_COLOR</td><td class="desc"> <p>Load colored glyphs. FreeType searches in the following order; there are slight differences depending on the font format.</p> <p>[Since 2.5] Load embedded color bitmap images (provided <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_BITMAP</a></code> is not set). The resulting color bitmaps, if available, have the <code><a href="ft2-basic_types.html#ft_pixel_mode">FT_PIXEL_MODE_BGRA</a></code> format, with pre-multiplied color channels. If the flag is not set and color bitmaps are found, they are converted to 256-level gray bitmaps, using the <code><a href="ft2-basic_types.html#ft_pixel_mode">FT_PIXEL_MODE_GRAY</a></code> format.</p> <p>[Since 2.12] If the glyph index maps to an entry in the face's ‘SVG ’ table, load the associated SVG document from this table and set the <code>format</code> field of <code><a href="ft2-base_interface.html#ft_glyphslotrec">FT_GlyphSlotRec</a></code> to <code><a href="ft2-basic_types.html#ft_glyph_format">FT_GLYPH_FORMAT_SVG</a></code>. Note that FreeType itself can't render SVG documents; however, the library provides hooks to seamlessly integrate an external renderer. See sections ‘<a href="ft2-ot_svg_driver.html#ot_svg_driver">The SVG driver</a>’ and ‘<a href="ft2-svg_fonts.html#svg_fonts">OpenType SVG Fonts</a>’ for more.</p> <p>[Since 2.10, experimental] If the glyph index maps to an entry in the face's ‘COLR’ table with a ‘CPAL’ palette table (as defined in the OpenType specification), make <code><a href="ft2-base_interface.html#ft_render_glyph">FT_Render_Glyph</a></code> provide a default blending of the color glyph layers associated with the glyph index, using the same bitmap format as embedded color bitmap images. This is mainly for convenience and works only for glyphs in ‘COLR’ v0 tables (or glyphs in ‘COLR’ v1 tables that exclusively use v0 features). For full control of color layers use <code><a href="ft2-layer_management.html#ft_get_color_glyph_layer">FT_Get_Color_Glyph_Layer</a></code> and FreeType's color functions like <code><a href="ft2-color_management.html#ft_palette_select">FT_Palette_Select</a></code> instead of setting <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_COLOR</a></code> for rendering so that the client application can handle blending by itself.</p> </td></tr> <tr><td class="val" id="ft_load_compute_metrics">FT_LOAD_COMPUTE_METRICS</td><td class="desc"> <p>[Since 2.6.1] Compute glyph metrics from the glyph data, without the use of bundled metrics tables (for example, the ‘hdmx’ table in TrueType fonts). This flag is mainly used by font validating or font editing applications, which need to ignore, verify, or edit those tables.</p> <p>Currently, this flag is only implemented for TrueType fonts.</p> </td></tr> <tr><td class="val" id="ft_load_bitmap_metrics_only">FT_LOAD_BITMAP_METRICS_ONLY</td><td class="desc"> <p>[Since 2.7.1] Request loading of the metrics and bitmap image information of a (possibly embedded) bitmap glyph without allocating or copying the bitmap image data itself. No effect if the target glyph is not a bitmap image.</p> |
︙ | ︙ | |||
5153 5154 5155 5156 5157 5158 5159 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-basic_types.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Basic Data Types - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Basic Data Types |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
858 859 860 861 862 863 864 865 866 867 868 869 870 871 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
967 968 969 970 971 972 973 974 975 976 977 978 979 980 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
2216 2217 2218 2219 2220 2221 2222 | <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">enum</span> FT_Glyph_Format_ { <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#ft_glyph_format_none">FT_GLYPH_FORMAT_NONE</a>, 0, 0, 0, 0 ), <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#ft_glyph_format_composite">FT_GLYPH_FORMAT_COMPOSITE</a>, 'c', 'o', 'm', 'p' ), <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#ft_glyph_format_bitmap">FT_GLYPH_FORMAT_BITMAP</a>, 'b', 'i', 't', 's' ), <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#ft_glyph_format_outline">FT_GLYPH_FORMAT_OUTLINE</a>, 'o', 'u', 't', 'l' ), | | > | 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 | <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">enum</span> FT_Glyph_Format_ { <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#ft_glyph_format_none">FT_GLYPH_FORMAT_NONE</a>, 0, 0, 0, 0 ), <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#ft_glyph_format_composite">FT_GLYPH_FORMAT_COMPOSITE</a>, 'c', 'o', 'm', 'p' ), <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#ft_glyph_format_bitmap">FT_GLYPH_FORMAT_BITMAP</a>, 'b', 'i', 't', 's' ), <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#ft_glyph_format_outline">FT_GLYPH_FORMAT_OUTLINE</a>, 'o', 'u', 't', 'l' ), <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#ft_glyph_format_plotter">FT_GLYPH_FORMAT_PLOTTER</a>, 'p', 'l', 'o', 't' ), <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#ft_glyph_format_svg">FT_GLYPH_FORMAT_SVG</a>, 'S', 'V', 'G', ' ' ) } <b>FT_Glyph_Format</b>; /* these constants are deprecated; use the corresponding */ /* `<b>FT_Glyph_Format</b>` values instead. */ #<span class="keyword">define</span> ft_glyph_format_none <a href="ft2-basic_types.html#ft_glyph_format_none">FT_GLYPH_FORMAT_NONE</a> |
︙ | ︙ | |||
2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 | </td></tr> <tr><td class="val" id="ft_glyph_format_outline">FT_GLYPH_FORMAT_OUTLINE</td><td class="desc"> <p>The glyph image is a vectorial outline made of line segments and Bezier arcs; it can be described as an <code><a href="ft2-outline_processing.html#ft_outline">FT_Outline</a></code>; you generally want to access the <code>outline</code> field of the <code><a href="ft2-base_interface.html#ft_glyphslotrec">FT_GlyphSlotRec</a></code> structure to read it.</p> </td></tr> <tr><td class="val" id="ft_glyph_format_plotter">FT_GLYPH_FORMAT_PLOTTER</td><td class="desc"> <p>The glyph image is a vectorial path with no inside and outside contours. Some Type 1 fonts, like those in the Hershey family, contain glyphs in this format. These are described as <code><a href="ft2-outline_processing.html#ft_outline">FT_Outline</a></code>, but FreeType isn't currently capable of rendering them correctly.</p> </td></tr> </table> <hr> <h2 id="ft_image_tag">FT_IMAGE_TAG<a class="headerlink" href="#ft_image_tag" title="Permanent link">¶</a></h2> <p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> <div class = "codehilite"><pre><code>#<span class="keyword">ifndef</span> <b>FT_IMAGE_TAG</b> | > > > | 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 | </td></tr> <tr><td class="val" id="ft_glyph_format_outline">FT_GLYPH_FORMAT_OUTLINE</td><td class="desc"> <p>The glyph image is a vectorial outline made of line segments and Bezier arcs; it can be described as an <code><a href="ft2-outline_processing.html#ft_outline">FT_Outline</a></code>; you generally want to access the <code>outline</code> field of the <code><a href="ft2-base_interface.html#ft_glyphslotrec">FT_GlyphSlotRec</a></code> structure to read it.</p> </td></tr> <tr><td class="val" id="ft_glyph_format_plotter">FT_GLYPH_FORMAT_PLOTTER</td><td class="desc"> <p>The glyph image is a vectorial path with no inside and outside contours. Some Type 1 fonts, like those in the Hershey family, contain glyphs in this format. These are described as <code><a href="ft2-outline_processing.html#ft_outline">FT_Outline</a></code>, but FreeType isn't currently capable of rendering them correctly.</p> </td></tr> <tr><td class="val" id="ft_glyph_format_svg">FT_GLYPH_FORMAT_SVG</td><td class="desc"> <p>[Since 2.12] The glyph is represented by an SVG document in the ‘SVG ’ table.</p> </td></tr> </table> <hr> <h2 id="ft_image_tag">FT_IMAGE_TAG<a class="headerlink" href="#ft_image_tag" title="Permanent link">¶</a></h2> <p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> <div class = "codehilite"><pre><code>#<span class="keyword">ifndef</span> <b>FT_IMAGE_TAG</b> |
︙ | ︙ | |||
2329 2330 2331 2332 2333 2334 2335 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-bdf_fonts.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>BDF and PCF Files - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> BDF and PCF Files |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
613 614 615 616 617 618 619 620 621 622 623 624 625 626 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
722 723 724 725 726 727 728 729 730 731 732 733 734 735 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1410 1411 1412 1413 1414 1415 1416 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-bitmap_handling.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Bitmap Handling - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Bitmap Handling |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1535 1536 1537 1538 1539 1540 1541 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-bzip2.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>BZIP2 Streams - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> BZIP2 Streams |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1240 1241 1242 1243 1244 1245 1246 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-cache_subsystem.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Cache Sub-System - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Cache Sub-System |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
2355 2356 2357 2358 2359 2360 2361 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-cff_driver.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>The CFF driver - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> The CFF driver |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
687 688 689 690 691 692 693 694 695 696 697 698 699 700 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1207 1208 1209 1210 1211 1212 1213 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-cid_fonts.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>CID Fonts - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> CID Fonts |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
599 600 601 602 603 604 605 606 607 608 609 610 611 612 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
708 709 710 711 712 713 714 715 716 717 718 719 720 721 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1349 1350 1351 1352 1353 1354 1355 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-color_management.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Glyph Color Management - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Glyph Color Management |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
620 621 622 623 624 625 626 627 628 629 630 631 632 633 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
729 730 731 732 733 734 735 736 737 738 739 740 741 742 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1490 1491 1492 1493 1494 1495 1496 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-computations.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Computations - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Computations |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
2021 2022 2023 2024 2025 2026 2027 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-debugging_apis.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>External Debugging APIs - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> External Debugging APIs |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1367 1368 1369 1370 1371 1372 1373 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-error_code_values.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Error Code Values - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Error Code Values |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 | "invalid outline" ) FT_ERRORDEF_( Invalid_Composite, 0x15, "invalid composite glyph" ) FT_ERRORDEF_( Too_Many_Hints, 0x16, "too many hints" ) FT_ERRORDEF_( Invalid_Pixel_Size, 0x17, "invalid pixel size" ) /* handle errors */ FT_ERRORDEF_( Invalid_Handle, 0x20, "invalid object handle" ) FT_ERRORDEF_( Invalid_Library_Handle, 0x21, "invalid library handle" ) | > > | 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 | "invalid outline" ) FT_ERRORDEF_( Invalid_Composite, 0x15, "invalid composite glyph" ) FT_ERRORDEF_( Too_Many_Hints, 0x16, "too many hints" ) FT_ERRORDEF_( Invalid_Pixel_Size, 0x17, "invalid pixel size" ) FT_ERRORDEF_( Invalid_SVG_Document, 0x18, "invalid SVG document" ) /* handle errors */ FT_ERRORDEF_( Invalid_Handle, 0x20, "invalid object handle" ) FT_ERRORDEF_( Invalid_Library_Handle, 0x21, "invalid library handle" ) |
︙ | ︙ | |||
1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 | "invalid PostScript (post) table format" ) FT_ERRORDEF_( Invalid_Post_Table, 0x9B, "invalid PostScript (post) table" ) FT_ERRORDEF_( DEF_In_Glyf_Bytecode, 0x9C, "found FDEF or IDEF opcode in glyf bytecode" ) FT_ERRORDEF_( Missing_Bitmap, 0x9D, "missing bitmap in strike" ) /* CFF, CID, and Type 1 errors */ FT_ERRORDEF_( Syntax_Error, 0xA0, "opcode syntax error" ) FT_ERRORDEF_( Stack_Underflow, 0xA1, "argument stack underflow" ) | > > | 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 | "invalid PostScript (post) table format" ) FT_ERRORDEF_( Invalid_Post_Table, 0x9B, "invalid PostScript (post) table" ) FT_ERRORDEF_( DEF_In_Glyf_Bytecode, 0x9C, "found FDEF or IDEF opcode in glyf bytecode" ) FT_ERRORDEF_( Missing_Bitmap, 0x9D, "missing bitmap in strike" ) FT_ERRORDEF_( Missing_SVG_Hooks, 0x9E, "SVG hooks have not been set" ) /* CFF, CID, and Type 1 errors */ FT_ERRORDEF_( Syntax_Error, 0xA0, "opcode syntax error" ) FT_ERRORDEF_( Stack_Underflow, 0xA1, "argument stack underflow" ) |
︙ | ︙ | |||
1435 1436 1437 1438 1439 1440 1441 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-error_enumerations.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Error Enumerations - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Error Enumerations |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1272 1273 1274 1275 1276 1277 1278 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-font_formats.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Font Formats - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Font Formats |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
537 538 539 540 541 542 543 544 545 546 547 548 549 550 | </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc"> | > > > > > > > > > > > > | 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 | </a> </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc"> |
︙ | ︙ | |||
694 695 696 697 698 699 700 701 702 703 704 705 706 707 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1201 1202 1203 1204 1205 1206 1207 | <footer class="md-footer"> <nav class="md-footer__inner md-grid" aria-label="Footer"> | | | | 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 | <footer class="md-footer"> <nav class="md-footer__inner md-grid" aria-label="Footer"> <a href="ft2-svg_fonts.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: OpenType SVG Fonts" rel="prev"> <div class="md-footer__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> </div> <div class="md-footer__title"> <div class="md-ellipsis"> <span class="md-footer__direction"> Previous </span> OpenType SVG Fonts </div> </div> </a> <a href="ft2-gasp_table.html" class="md-footer__link md-footer__link--next" aria-label="Next: Gasp Table" rel="next"> |
︙ | ︙ | |||
1238 1239 1240 1241 1242 1243 1244 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-gasp_table.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Gasp Table - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Gasp Table |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
538 539 540 541 542 543 544 545 546 547 548 549 550 551 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
701 702 703 704 705 706 707 708 709 710 711 712 713 714 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1291 1292 1293 1294 1295 1296 1297 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-glyph_management.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Glyph Management - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Glyph Management |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
445 446 447 448 449 450 451 452 453 454 455 456 457 458 | </li> <li class="md-nav__item"> <a href="#ft_outlineglyphrec" class="md-nav__link"> FT_OutlineGlyphRec </a> </li> <li class="md-nav__item"> <a href="#ft_new_glyph" class="md-nav__link"> FT_New_Glyph </a> | > > > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="#ft_outlineglyphrec" class="md-nav__link"> FT_OutlineGlyphRec </a> </li> <li class="md-nav__item"> <a href="#ft_svgglyph" class="md-nav__link"> FT_SvgGlyph </a> </li> <li class="md-nav__item"> <a href="#ft_svgglyphrec" class="md-nav__link"> FT_SvgGlyphRec </a> </li> <li class="md-nav__item"> <a href="#ft_new_glyph" class="md-nav__link"> FT_New_Glyph </a> |
︙ | ︙ | |||
676 677 678 679 680 681 682 683 684 685 686 687 688 689 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
785 786 787 788 789 790 791 792 793 794 795 796 797 798 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 | </li> <li class="md-nav__item"> <a href="#ft_outlineglyphrec" class="md-nav__link"> FT_OutlineGlyphRec </a> </li> <li class="md-nav__item"> <a href="#ft_new_glyph" class="md-nav__link"> FT_New_Glyph </a> | > > > > > > > > > > > > > > | 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 | </li> <li class="md-nav__item"> <a href="#ft_outlineglyphrec" class="md-nav__link"> FT_OutlineGlyphRec </a> </li> <li class="md-nav__item"> <a href="#ft_svgglyph" class="md-nav__link"> FT_SvgGlyph </a> </li> <li class="md-nav__item"> <a href="#ft_svgglyphrec" class="md-nav__link"> FT_SvgGlyphRec </a> </li> <li class="md-nav__item"> <a href="#ft_new_glyph" class="md-nav__link"> FT_New_Glyph </a> |
︙ | ︙ | |||
1384 1385 1386 1387 1388 1389 1390 | <hr> <h2 id="ft_bitmapglyph">FT_BitmapGlyph<a class="headerlink" href="#ft_bitmapglyph" title="Permanent link">¶</a></h2> <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_BitmapGlyphRec_* <b>FT_BitmapGlyph</b>; </code></pre></div> | | | | 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 | <hr> <h2 id="ft_bitmapglyph">FT_BitmapGlyph<a class="headerlink" href="#ft_bitmapglyph" title="Permanent link">¶</a></h2> <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_BitmapGlyphRec_* <b>FT_BitmapGlyph</b>; </code></pre></div> <p>A handle to an object used to model a bitmap glyph image. This is a ‘sub-class’ of <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code>, and a pointer to <code><a href="ft2-glyph_management.html#ft_bitmapglyphrec">FT_BitmapGlyphRec</a></code>.</p> <hr> <h2 id="ft_bitmapglyphrec">FT_BitmapGlyphRec<a class="headerlink" href="#ft_bitmapglyphrec" title="Permanent link">¶</a></h2> <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_BitmapGlyphRec_ { <a href="ft2-glyph_management.html#ft_glyphrec">FT_GlyphRec</a> root; <a href="ft2-basic_types.html#ft_int">FT_Int</a> left; <a href="ft2-basic_types.html#ft_int">FT_Int</a> top; <a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a> bitmap; } <b>FT_BitmapGlyphRec</b>; </code></pre></div> <p>A structure used for bitmap glyph images. This really is a ‘sub-class’ of <code><a href="ft2-glyph_management.html#ft_glyphrec">FT_GlyphRec</a></code>.</p> <h4>fields</h4> <table class="fields"> <tr><td class="val" id="root">root</td><td class="desc"> <p>The root fields of <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code>.</p> </td></tr> <tr><td class="val" id="left">left</td><td class="desc"> <p>The left-side bearing, i.e., the horizontal distance from the current pen position to the left border of the glyph bitmap.</p> </td></tr> <tr><td class="val" id="top">top</td><td class="desc"> <p>The top-side bearing, i.e., the vertical distance from the current pen position to the top border of the glyph bitmap. This distance is positive for upwards y!</p> </td></tr> |
︙ | ︙ | |||
1427 1428 1429 1430 1431 1432 1433 | <hr> <h2 id="ft_outlineglyph">FT_OutlineGlyph<a class="headerlink" href="#ft_outlineglyph" title="Permanent link">¶</a></h2> <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_OutlineGlyphRec_* <b>FT_OutlineGlyph</b>; </code></pre></div> | | | 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 | <hr> <h2 id="ft_outlineglyph">FT_OutlineGlyph<a class="headerlink" href="#ft_outlineglyph" title="Permanent link">¶</a></h2> <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_OutlineGlyphRec_* <b>FT_OutlineGlyph</b>; </code></pre></div> <p>A handle to an object used to model an outline glyph image. This is a ‘sub-class’ of <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code>, and a pointer to <code><a href="ft2-glyph_management.html#ft_outlineglyphrec">FT_OutlineGlyphRec</a></code>.</p> <hr> <h2 id="ft_outlineglyphrec">FT_OutlineGlyphRec<a class="headerlink" href="#ft_outlineglyphrec" title="Permanent link">¶</a></h2> <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_OutlineGlyphRec_ { <a href="ft2-glyph_management.html#ft_glyphrec">FT_GlyphRec</a> root; |
︙ | ︙ | |||
1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 | <h4>note</h4> <p>You can typecast an <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> to <code><a href="ft2-glyph_management.html#ft_outlineglyph">FT_OutlineGlyph</a></code> if you have <code>glyph->format == FT_GLYPH_FORMAT_OUTLINE</code>. This lets you access the outline's content easily.</p> <p>As the outline is extracted from a glyph slot, its coordinates are expressed normally in 26.6 pixels, unless the flag <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_SCALE</a></code> was used in <code><a href="ft2-base_interface.html#ft_load_glyph">FT_Load_Glyph</a></code> or <code><a href="ft2-base_interface.html#ft_load_char">FT_Load_Char</a></code>.</p> <p>The outline's tables are always owned by the object and are destroyed with it.</p> <hr> <h2 id="ft_new_glyph">FT_New_Glyph<a class="headerlink" href="#ft_new_glyph" title="Permanent link">¶</a></h2> <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p> <div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) <b>FT_New_Glyph</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a> library, <a href="ft2-basic_types.html#ft_glyph_format">FT_Glyph_Format</a> format, <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a> *aglyph ); | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 | <h4>note</h4> <p>You can typecast an <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> to <code><a href="ft2-glyph_management.html#ft_outlineglyph">FT_OutlineGlyph</a></code> if you have <code>glyph->format == FT_GLYPH_FORMAT_OUTLINE</code>. This lets you access the outline's content easily.</p> <p>As the outline is extracted from a glyph slot, its coordinates are expressed normally in 26.6 pixels, unless the flag <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_SCALE</a></code> was used in <code><a href="ft2-base_interface.html#ft_load_glyph">FT_Load_Glyph</a></code> or <code><a href="ft2-base_interface.html#ft_load_char">FT_Load_Char</a></code>.</p> <p>The outline's tables are always owned by the object and are destroyed with it.</p> <hr> <h2 id="ft_svgglyph">FT_SvgGlyph<a class="headerlink" href="#ft_svgglyph" title="Permanent link">¶</a></h2> <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_SvgGlyphRec_* <b>FT_SvgGlyph</b>; </code></pre></div> <p>A handle to an object used to model an SVG glyph. This is a ‘sub-class’ of <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code>, and a pointer to <code><a href="ft2-glyph_management.html#ft_svgglyphrec">FT_SvgGlyphRec</a></code>.</p> <h4>since</h4> <p>2.12</p> <hr> <h2 id="ft_svgglyphrec">FT_SvgGlyphRec<a class="headerlink" href="#ft_svgglyphrec" title="Permanent link">¶</a></h2> <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_SvgGlyphRec_ { <a href="ft2-glyph_management.html#ft_glyphrec">FT_GlyphRec</a> root; <a href="ft2-basic_types.html#ft_byte">FT_Byte</a>* svg_document; <a href="ft2-basic_types.html#ft_ulong">FT_ULong</a> svg_document_length; <a href="ft2-basic_types.html#ft_uint">FT_UInt</a> glyph_index; <a href="ft2-base_interface.html#ft_size_metrics">FT_Size_Metrics</a> metrics; <a href="ft2-basic_types.html#ft_ushort">FT_UShort</a> units_per_EM; <a href="ft2-basic_types.html#ft_ushort">FT_UShort</a> start_glyph_id; <a href="ft2-basic_types.html#ft_ushort">FT_UShort</a> end_glyph_id; <a href="ft2-basic_types.html#ft_matrix">FT_Matrix</a> transform; <a href="ft2-basic_types.html#ft_vector">FT_Vector</a> delta; } <b>FT_SvgGlyphRec</b>; </code></pre></div> <p>A structure used for OT-SVG glyphs. This is a ‘sub-class’ of <code><a href="ft2-glyph_management.html#ft_glyphrec">FT_GlyphRec</a></code>.</p> <h4>fields</h4> <table class="fields"> <tr><td class="val" id="root">root</td><td class="desc"> <p>The root <code><a href="ft2-glyph_management.html#ft_glyphrec">FT_GlyphRec</a></code> fields.</p> </td></tr> <tr><td class="val" id="svg_document">svg_document</td><td class="desc"> <p>A pointer to the SVG document.</p> </td></tr> <tr><td class="val" id="svg_document_length">svg_document_length</td><td class="desc"> <p>The length of <code>svg_document</code>.</p> </td></tr> <tr><td class="val" id="glyph_index">glyph_index</td><td class="desc"> <p>The index of the glyph to be rendered.</p> </td></tr> <tr><td class="val" id="metrics">metrics</td><td class="desc"> <p>A metrics object storing the size information.</p> </td></tr> <tr><td class="val" id="units_per_em">units_per_EM</td><td class="desc"> <p>The size of the EM square.</p> </td></tr> <tr><td class="val" id="start_glyph_id">start_glyph_id</td><td class="desc"> <p>The first glyph ID in the glyph range covered by this document.</p> </td></tr> <tr><td class="val" id="end_glyph_id">end_glyph_id</td><td class="desc"> <p>The last glyph ID in the glyph range covered by this document.</p> </td></tr> <tr><td class="val" id="transform">transform</td><td class="desc"> <p>A 2x2 transformation matrix to apply to the glyph while rendering it.</p> </td></tr> <tr><td class="val" id="delta">delta</td><td class="desc"> <p>Translation to apply to the glyph while rendering.</p> </td></tr> </table> <h4>note</h4> <p>The Glyph Management API requires <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> or its ‘sub-class’ to have all the information needed to completely define the glyph's rendering. Outline-based glyphs can directly apply transformations to the outline but this is not possible for an SVG document that hasn't been parsed. Therefore, the transformation is stored along with the document. In the absence of a ‘ViewBox’ or ‘Width’/'Height' attribute, the size of the ViewPort should be assumed to be ‘units_per_EM’.</p> <hr> <h2 id="ft_new_glyph">FT_New_Glyph<a class="headerlink" href="#ft_new_glyph" title="Permanent link">¶</a></h2> <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p> <div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) <b>FT_New_Glyph</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a> library, <a href="ft2-basic_types.html#ft_glyph_format">FT_Glyph_Format</a> format, <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a> *aglyph ); |
︙ | ︙ | |||
1710 1711 1712 1713 1714 1715 1716 | <h4>return</h4> <p>FreeType error code. 0 means success.</p> <h4>note</h4> <p>This function does nothing if the glyph format isn't scalable.</p> <p>The glyph image is translated with the <code>origin</code> vector before rendering.</p> | | | | | 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 | <h4>return</h4> <p>FreeType error code. 0 means success.</p> <h4>note</h4> <p>This function does nothing if the glyph format isn't scalable.</p> <p>The glyph image is translated with the <code>origin</code> vector before rendering.</p> <p>The first parameter is a pointer to an <code><a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a></code> handle that will be <em>replaced</em> by this function (with newly allocated data). Typically, you would do something like the following (omitting error handling). <div class="highlight"><pre><span></span><code> FT_Glyph glyph; FT_BitmapGlyph glyph_bitmap; // load glyph error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAULT ); // extract glyph image error = FT_Get_Glyph( face->glyph, &glyph ); // convert to a bitmap (default render mode + destroying old) if ( glyph->format != FT_GLYPH_FORMAT_BITMAP ) { error = FT_Glyph_To_Bitmap( &glyph, FT_RENDER_MODE_NORMAL, 0, 1 ); if ( error ) // `glyph' unchanged ... } // access bitmap content by typecasting glyph_bitmap = (FT_BitmapGlyph)glyph; // do funny stuff with it, like blitting/drawing ... // discard glyph image (bitmap or not) FT_Done_Glyph( glyph ); </code></pre></div></p> <p>Here is another example, again without error handling. <div class="highlight"><pre><span></span><code> FT_Glyph glyphs[MAX_GLYPHS] ... for ( idx = 0; i < MAX_GLYPHS; i++ ) error = FT_Load_Glyph( face, idx, FT_LOAD_DEFAULT ) || |
︙ | ︙ | |||
1845 1846 1847 1848 1849 1850 1851 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-glyph_stroker.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Glyph Stroker - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Glyph Stroker |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
2107 2108 2109 2110 2111 2112 2113 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-glyph_variants.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Unicode Variation Sequences - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Unicode Variation Sequences |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
613 614 615 616 617 618 619 620 621 622 623 624 625 626 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
722 723 724 725 726 727 728 729 730 731 732 733 734 735 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1423 1424 1425 1426 1427 1428 1429 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-gx_validation.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>TrueTypeGX/AAT Validation - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> TrueTypeGX/AAT Validation |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1511 1512 1513 1514 1515 1516 1517 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-gzip.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>GZIP Streams - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> GZIP Streams |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1303 1304 1305 1306 1307 1308 1309 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-header_file_macros.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Header File Macros - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Header File Macros |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
782 783 784 785 786 787 788 789 790 791 792 793 794 795 | </li> <li class="md-nav__item"> <a href="#ft_color_h" class="md-nav__link"> FT_COLOR_H </a> </li> </ul> </nav> </li> | > > > > > > > | 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 | </li> <li class="md-nav__item"> <a href="#ft_color_h" class="md-nav__link"> FT_COLOR_H </a> </li> <li class="md-nav__item"> <a href="#ft_otsvg_h" class="md-nav__link"> FT_OTSVG_H </a> </li> </ul> </nav> </li> |
︙ | ︙ | |||
921 922 923 924 925 926 927 928 929 930 931 932 933 934 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 | </li> <li class="md-nav__item"> <a href="#ft_color_h" class="md-nav__link"> FT_COLOR_H </a> </li> </ul> </nav> </div> </div> | > > > > > > > | 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 | </li> <li class="md-nav__item"> <a href="#ft_color_h" class="md-nav__link"> FT_COLOR_H </a> </li> <li class="md-nav__item"> <a href="#ft_otsvg_h" class="md-nav__link"> FT_OTSVG_H </a> </li> </ul> </nav> </div> </div> |
︙ | ︙ | |||
2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 | <h2 id="ft_color_h">FT_COLOR_H<a class="headerlink" href="#ft_color_h" title="Permanent link">¶</a></h2> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_COLOR_H</b> <freetype/ftcolor.h> </code></pre></div> <p>A macro used in <code>#include</code> statements to name the file containing the FreeType 2 API which handles the OpenType ‘CPAL’ table.</p> <hr> | > > > > > > > | 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 | <h2 id="ft_color_h">FT_COLOR_H<a class="headerlink" href="#ft_color_h" title="Permanent link">¶</a></h2> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_COLOR_H</b> <freetype/ftcolor.h> </code></pre></div> <p>A macro used in <code>#include</code> statements to name the file containing the FreeType 2 API which handles the OpenType ‘CPAL’ table.</p> <hr> <h2 id="ft_otsvg_h">FT_OTSVG_H<a class="headerlink" href="#ft_otsvg_h" title="Permanent link">¶</a></h2> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_OTSVG_H</b> <freetype/otsvg.h> </code></pre></div> <p>A macro used in <code>#include</code> statements to name the file containing the FreeType 2 API which handles the OpenType ‘SVG ’ glyphs.</p> <hr> |
︙ | ︙ | |||
2256 2257 2258 2259 2260 2261 2262 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-header_inclusion.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>FreeType's header inclusion scheme - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> FreeType's header inclusion scheme |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
578 579 580 581 582 583 584 585 586 587 588 589 590 591 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
687 688 689 690 691 692 693 694 695 696 697 698 699 700 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1202 1203 1204 1205 1206 1207 1208 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-incremental.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Incremental Loading - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Incremental Loading |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1541 1542 1543 1544 1545 1546 1547 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-index.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Index - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
67 68 69 70 71 72 73 | <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> <label class="md-overlay" for="__drawer"></label> <div data-md-component="skip"> | | | | | 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 | <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> <label class="md-overlay" for="__drawer"></label> <div data-md-component="skip"> <a href="#freetype-2120-api-reference" class="md-skip"> Skip to content </a> </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Index |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
290 291 292 293 294 295 296 297 298 299 300 301 302 303 | </li> <li class="md-nav__item"> <a href="#r" class="md-nav__link"> R </a> </li> <li class="md-nav__item"> <a href="#t" class="md-nav__link"> T </a> | > > > > > > > | 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 | </li> <li class="md-nav__item"> <a href="#r" class="md-nav__link"> R </a> </li> <li class="md-nav__item"> <a href="#s" class="md-nav__link"> S </a> </li> <li class="md-nav__item"> <a href="#t" class="md-nav__link"> T </a> |
︙ | ︙ | |||
653 654 655 656 657 658 659 660 661 662 663 664 665 666 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
762 763 764 765 766 767 768 769 770 771 772 773 774 775 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 | </li> <li class="md-nav__item"> <a href="#r" class="md-nav__link"> R </a> </li> <li class="md-nav__item"> <a href="#t" class="md-nav__link"> T </a> | > > > > > > > | 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 | </li> <li class="md-nav__item"> <a href="#r" class="md-nav__link"> R </a> </li> <li class="md-nav__item"> <a href="#s" class="md-nav__link"> S </a> </li> <li class="md-nav__item"> <a href="#t" class="md-nav__link"> T </a> |
︙ | ︙ | |||
1290 1291 1292 1293 1294 1295 1296 | <div class="md-content" data-md-component="content"> <article class="md-content__inner md-typeset"> <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » Global Index</p> <hr /> | | | 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 | <div class="md-content" data-md-component="content"> <article class="md-content__inner md-typeset"> <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » Global Index</p> <hr /> <h1 id="freetype-2120-api-reference">FreeType-2.12.0 API Reference<a class="headerlink" href="#freetype-2120-api-reference" title="Permanent link">¶</a></h1> <h3 id="b">B<a class="headerlink" href="#b" title="Permanent link">¶</a></h3> <p><a href="ft2-bdf_fonts.html#bdf_property">BDF_Property</a><br /> <a href="ft2-bdf_fonts.html#bdf_propertytype">BDF_PROPERTY_TYPE_ATOM</a><br /> <a href="ft2-bdf_fonts.html#bdf_propertytype">BDF_PROPERTY_TYPE_CARDINAL</a><br /> <a href="ft2-bdf_fonts.html#bdf_propertytype">BDF_PROPERTY_TYPE_INTEGER</a><br /> <a href="ft2-bdf_fonts.html#bdf_propertytype">BDF_PROPERTY_TYPE_NONE</a><br /> <a href="ft2-bdf_fonts.html#bdf_propertyrec">BDF_PropertyRec</a><br /> |
︙ | ︙ | |||
1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 | <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_FIXED_SIZES</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_FIXED_WIDTH</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_GLYPH_NAMES</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_HINTER</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_HORIZONTAL</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_KERNING</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_MULTIPLE_MASTERS</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_SCALABLE</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_SFNT</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_TRICKY</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_VARIATION</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_VERTICAL</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_XXX</a><br /> <a href="ft2-glyph_variants.html#ft_face_getcharsofvariant">FT_Face_GetCharsOfVariant</a><br /> <a href="ft2-glyph_variants.html#ft_face_getcharvariantindex">FT_Face_GetCharVariantIndex</a><br /> <a href="ft2-glyph_variants.html#ft_face_getcharvariantisdefault">FT_Face_GetCharVariantIsDefault</a><br /> | > > > | 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 | <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_FIXED_SIZES</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_FIXED_WIDTH</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_GLYPH_NAMES</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_HINTER</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_HORIZONTAL</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_KERNING</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_MULTIPLE_MASTERS</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_SBIX</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_SBIX_OVERLAY</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_SCALABLE</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_SFNT</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_SVG</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_TRICKY</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_VARIATION</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_VERTICAL</a><br /> <a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_XXX</a><br /> <a href="ft2-glyph_variants.html#ft_face_getcharsofvariant">FT_Face_GetCharsOfVariant</a><br /> <a href="ft2-glyph_variants.html#ft_face_getcharvariantindex">FT_Face_GetCharVariantIndex</a><br /> <a href="ft2-glyph_variants.html#ft_face_getcharvariantisdefault">FT_Face_GetCharVariantIsDefault</a><br /> |
︙ | ︙ | |||
1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 | <a href="ft2-glyph_management.html#ft_glyph_copy">FT_Glyph_Copy</a><br /> <a href="ft2-basic_types.html#ft_glyph_format">FT_Glyph_Format</a><br /> <a href="ft2-basic_types.html#ft_glyph_format">FT_GLYPH_FORMAT_BITMAP</a><br /> <a href="ft2-basic_types.html#ft_glyph_format">FT_GLYPH_FORMAT_COMPOSITE</a><br /> <a href="ft2-basic_types.html#ft_glyph_format">FT_GLYPH_FORMAT_NONE</a><br /> <a href="ft2-basic_types.html#ft_glyph_format">FT_GLYPH_FORMAT_OUTLINE</a><br /> <a href="ft2-basic_types.html#ft_glyph_format">FT_GLYPH_FORMAT_PLOTTER</a><br /> <a href="ft2-glyph_management.html#ft_glyph_get_cbox">FT_Glyph_Get_CBox</a><br /> <a href="ft2-header_file_macros.html#ft_glyph_h">FT_GLYPH_H</a><br /> <a href="ft2-base_interface.html#ft_glyph_metrics">FT_Glyph_Metrics</a><br /> <a href="ft2-glyph_stroker.html#ft_glyph_stroke">FT_Glyph_Stroke</a><br /> <a href="ft2-glyph_stroker.html#ft_glyph_strokeborder">FT_Glyph_StrokeBorder</a><br /> <a href="ft2-glyph_management.html#ft_glyph_to_bitmap">FT_Glyph_To_Bitmap</a><br /> <a href="ft2-glyph_management.html#ft_glyph_transform">FT_Glyph_Transform</a><br /> | > | 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 | <a href="ft2-glyph_management.html#ft_glyph_copy">FT_Glyph_Copy</a><br /> <a href="ft2-basic_types.html#ft_glyph_format">FT_Glyph_Format</a><br /> <a href="ft2-basic_types.html#ft_glyph_format">FT_GLYPH_FORMAT_BITMAP</a><br /> <a href="ft2-basic_types.html#ft_glyph_format">FT_GLYPH_FORMAT_COMPOSITE</a><br /> <a href="ft2-basic_types.html#ft_glyph_format">FT_GLYPH_FORMAT_NONE</a><br /> <a href="ft2-basic_types.html#ft_glyph_format">FT_GLYPH_FORMAT_OUTLINE</a><br /> <a href="ft2-basic_types.html#ft_glyph_format">FT_GLYPH_FORMAT_PLOTTER</a><br /> <a href="ft2-basic_types.html#ft_glyph_format">FT_GLYPH_FORMAT_SVG</a><br /> <a href="ft2-glyph_management.html#ft_glyph_get_cbox">FT_Glyph_Get_CBox</a><br /> <a href="ft2-header_file_macros.html#ft_glyph_h">FT_GLYPH_H</a><br /> <a href="ft2-base_interface.html#ft_glyph_metrics">FT_Glyph_Metrics</a><br /> <a href="ft2-glyph_stroker.html#ft_glyph_stroke">FT_Glyph_Stroke</a><br /> <a href="ft2-glyph_stroker.html#ft_glyph_strokeborder">FT_Glyph_StrokeBorder</a><br /> <a href="ft2-glyph_management.html#ft_glyph_to_bitmap">FT_Glyph_To_Bitmap</a><br /> <a href="ft2-glyph_management.html#ft_glyph_transform">FT_Glyph_Transform</a><br /> |
︙ | ︙ | |||
1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 | <a href="ft2-base_interface.html#ft_has_fast_glyphs">FT_HAS_FAST_GLYPHS</a><br /> <a href="ft2-base_interface.html#ft_has_fixed_sizes">FT_HAS_FIXED_SIZES</a><br /> <a href="ft2-base_interface.html#ft_has_glyph_names">FT_HAS_GLYPH_NAMES</a><br /> <a href="ft2-base_interface.html#ft_has_horizontal">FT_HAS_HORIZONTAL</a><br /> <a href="ft2-base_interface.html#ft_has_kerning">FT_HAS_KERNING</a><br /> <a href="ft2-base_interface.html#ft_has_multiple_masters">FT_HAS_MULTIPLE_MASTERS</a><br /> <a href="ft2-type1_tables.html#ft_has_ps_glyph_names">FT_Has_PS_Glyph_Names</a><br /> <a href="ft2-base_interface.html#ft_has_vertical">FT_HAS_VERTICAL</a><br /> <a href="ft2-properties.html#ft_hinting_xxx">FT_HINTING_ADOBE</a><br /> <a href="ft2-properties.html#ft_hinting_xxx">FT_HINTING_FREETYPE</a><br /> <a href="ft2-properties.html#ft_hinting_xxx">FT_HINTING_XXX</a><br /> <a href="ft2-header_file_macros.html#ft_image_h">FT_IMAGE_H</a><br /> <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a><br /> <a href="ft2-incremental.html#ft_incremental">FT_Incremental</a><br /> | > > > | 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 | <a href="ft2-base_interface.html#ft_has_fast_glyphs">FT_HAS_FAST_GLYPHS</a><br /> <a href="ft2-base_interface.html#ft_has_fixed_sizes">FT_HAS_FIXED_SIZES</a><br /> <a href="ft2-base_interface.html#ft_has_glyph_names">FT_HAS_GLYPH_NAMES</a><br /> <a href="ft2-base_interface.html#ft_has_horizontal">FT_HAS_HORIZONTAL</a><br /> <a href="ft2-base_interface.html#ft_has_kerning">FT_HAS_KERNING</a><br /> <a href="ft2-base_interface.html#ft_has_multiple_masters">FT_HAS_MULTIPLE_MASTERS</a><br /> <a href="ft2-type1_tables.html#ft_has_ps_glyph_names">FT_Has_PS_Glyph_Names</a><br /> <a href="ft2-base_interface.html#ft_has_sbix">FT_HAS_SBIX</a><br /> <a href="ft2-base_interface.html#ft_has_sbix_overlay">FT_HAS_SBIX_OVERLAY</a><br /> <a href="ft2-base_interface.html#ft_has_svg">FT_HAS_SVG</a><br /> <a href="ft2-base_interface.html#ft_has_vertical">FT_HAS_VERTICAL</a><br /> <a href="ft2-properties.html#ft_hinting_xxx">FT_HINTING_ADOBE</a><br /> <a href="ft2-properties.html#ft_hinting_xxx">FT_HINTING_FREETYPE</a><br /> <a href="ft2-properties.html#ft_hinting_xxx">FT_HINTING_XXX</a><br /> <a href="ft2-header_file_macros.html#ft_image_h">FT_IMAGE_H</a><br /> <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a><br /> <a href="ft2-incremental.html#ft_incremental">FT_Incremental</a><br /> |
︙ | ︙ | |||
1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 | <a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_AUTOHINT</a><br /> <a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_BITMAP</a><br /> <a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_HINTING</a><br /> <a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_RECURSE</a><br /> <a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_SCALE</a><br /> <a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_PEDANTIC</a><br /> <a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_RENDER</a><br /> <a href="ft2-truetype_tables.html#ft_load_sfnt_table">FT_Load_Sfnt_Table</a><br /> <a href="ft2-base_interface.html#ft_load_target_xxx">FT_LOAD_TARGET_LCD</a><br /> <a href="ft2-base_interface.html#ft_load_target_xxx">FT_LOAD_TARGET_LCD_V</a><br /> <a href="ft2-base_interface.html#ft_load_target_xxx">FT_LOAD_TARGET_LIGHT</a><br /> <a href="ft2-base_interface.html#ft_load_target_mode">FT_LOAD_TARGET_MODE</a><br /> <a href="ft2-base_interface.html#ft_load_target_xxx">FT_LOAD_TARGET_MONO</a><br /> <a href="ft2-base_interface.html#ft_load_target_xxx">FT_LOAD_TARGET_NORMAL</a><br /> | > | 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 | <a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_AUTOHINT</a><br /> <a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_BITMAP</a><br /> <a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_HINTING</a><br /> <a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_RECURSE</a><br /> <a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_SCALE</a><br /> <a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_PEDANTIC</a><br /> <a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_RENDER</a><br /> <a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_SBITS_ONLY</a><br /> <a href="ft2-truetype_tables.html#ft_load_sfnt_table">FT_Load_Sfnt_Table</a><br /> <a href="ft2-base_interface.html#ft_load_target_xxx">FT_LOAD_TARGET_LCD</a><br /> <a href="ft2-base_interface.html#ft_load_target_xxx">FT_LOAD_TARGET_LCD_V</a><br /> <a href="ft2-base_interface.html#ft_load_target_xxx">FT_LOAD_TARGET_LIGHT</a><br /> <a href="ft2-base_interface.html#ft_load_target_mode">FT_LOAD_TARGET_MODE</a><br /> <a href="ft2-base_interface.html#ft_load_target_xxx">FT_LOAD_TARGET_MONO</a><br /> <a href="ft2-base_interface.html#ft_load_target_xxx">FT_LOAD_TARGET_NORMAL</a><br /> |
︙ | ︙ | |||
1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 | <a href="ft2-header_file_macros.html#ft_opentype_validate_h">FT_OPENTYPE_VALIDATE_H</a><br /> <a href="ft2-outline_processing.html#ft_orientation">FT_Orientation</a><br /> <a href="ft2-outline_processing.html#ft_orientation">FT_ORIENTATION_FILL_LEFT</a><br /> <a href="ft2-outline_processing.html#ft_orientation">FT_ORIENTATION_FILL_RIGHT</a><br /> <a href="ft2-outline_processing.html#ft_orientation">FT_ORIENTATION_NONE</a><br /> <a href="ft2-outline_processing.html#ft_orientation">FT_ORIENTATION_POSTSCRIPT</a><br /> <a href="ft2-outline_processing.html#ft_orientation">FT_ORIENTATION_TRUETYPE</a><br /> <a href="ft2-outline_processing.html#ft_outline">FT_Outline</a><br /> <a href="ft2-outline_processing.html#ft_outline_check">FT_Outline_Check</a><br /> <a href="ft2-outline_processing.html#ft_outline_conictofunc">FT_Outline_ConicToFunc</a><br /> <a href="ft2-outline_processing.html#ft_outline_copy">FT_Outline_Copy</a><br /> <a href="ft2-outline_processing.html#ft_outline_cubictofunc">FT_Outline_CubicToFunc</a><br /> <a href="ft2-outline_processing.html#ft_outline_decompose">FT_Outline_Decompose</a><br /> <a href="ft2-outline_processing.html#ft_outline_done">FT_Outline_Done</a><br /> | > | 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 | <a href="ft2-header_file_macros.html#ft_opentype_validate_h">FT_OPENTYPE_VALIDATE_H</a><br /> <a href="ft2-outline_processing.html#ft_orientation">FT_Orientation</a><br /> <a href="ft2-outline_processing.html#ft_orientation">FT_ORIENTATION_FILL_LEFT</a><br /> <a href="ft2-outline_processing.html#ft_orientation">FT_ORIENTATION_FILL_RIGHT</a><br /> <a href="ft2-outline_processing.html#ft_orientation">FT_ORIENTATION_NONE</a><br /> <a href="ft2-outline_processing.html#ft_orientation">FT_ORIENTATION_POSTSCRIPT</a><br /> <a href="ft2-outline_processing.html#ft_orientation">FT_ORIENTATION_TRUETYPE</a><br /> <a href="ft2-header_file_macros.html#ft_otsvg_h">FT_OTSVG_H</a><br /> <a href="ft2-outline_processing.html#ft_outline">FT_Outline</a><br /> <a href="ft2-outline_processing.html#ft_outline_check">FT_Outline_Check</a><br /> <a href="ft2-outline_processing.html#ft_outline_conictofunc">FT_Outline_ConicToFunc</a><br /> <a href="ft2-outline_processing.html#ft_outline_copy">FT_Outline_Copy</a><br /> <a href="ft2-outline_processing.html#ft_outline_cubictofunc">FT_Outline_CubicToFunc</a><br /> <a href="ft2-outline_processing.html#ft_outline_decompose">FT_Outline_Decompose</a><br /> <a href="ft2-outline_processing.html#ft_outline_done">FT_Outline_Done</a><br /> |
︙ | ︙ | |||
1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 | <a href="ft2-color_management.html#ft_palette_data">FT_Palette_Data</a><br /> <a href="ft2-color_management.html#ft_palette_data_get">FT_Palette_Data_Get</a><br /> <a href="ft2-color_management.html#ft_palette_xxx">FT_PALETTE_FOR_DARK_BACKGROUND</a><br /> <a href="ft2-color_management.html#ft_palette_xxx">FT_PALETTE_FOR_LIGHT_BACKGROUND</a><br /> <a href="ft2-color_management.html#ft_palette_select">FT_Palette_Select</a><br /> <a href="ft2-color_management.html#ft_palette_set_foreground_color">FT_Palette_Set_Foreground_Color</a><br /> <a href="ft2-color_management.html#ft_palette_xxx">FT_PALETTE_XXX</a><br /> <a href="ft2-parameter_tags.html#ft_param_tag_ignore_typographic_family">FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY</a><br /> <a href="ft2-parameter_tags.html#ft_param_tag_ignore_typographic_subfamily">FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY</a><br /> <a href="ft2-parameter_tags.html#ft_param_tag_incremental">FT_PARAM_TAG_INCREMENTAL</a><br /> <a href="ft2-parameter_tags.html#ft_param_tag_lcd_filter_weights">FT_PARAM_TAG_LCD_FILTER_WEIGHTS</a><br /> <a href="ft2-parameter_tags.html#ft_param_tag_random_seed">FT_PARAM_TAG_RANDOM_SEED</a><br /> <a href="ft2-parameter_tags.html#ft_param_tag_stem_darkening">FT_PARAM_TAG_STEM_DARKENING</a><br /> <a href="ft2-parameter_tags.html#ft_param_tag_unpatented_hinting">FT_PARAM_TAG_UNPATENTED_HINTING</a><br /> | > | 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 | <a href="ft2-color_management.html#ft_palette_data">FT_Palette_Data</a><br /> <a href="ft2-color_management.html#ft_palette_data_get">FT_Palette_Data_Get</a><br /> <a href="ft2-color_management.html#ft_palette_xxx">FT_PALETTE_FOR_DARK_BACKGROUND</a><br /> <a href="ft2-color_management.html#ft_palette_xxx">FT_PALETTE_FOR_LIGHT_BACKGROUND</a><br /> <a href="ft2-color_management.html#ft_palette_select">FT_Palette_Select</a><br /> <a href="ft2-color_management.html#ft_palette_set_foreground_color">FT_Palette_Set_Foreground_Color</a><br /> <a href="ft2-color_management.html#ft_palette_xxx">FT_PALETTE_XXX</a><br /> <a href="ft2-parameter_tags.html#ft_param_tag_ignore_sbix">FT_PARAM_TAG_IGNORE_SBIX</a><br /> <a href="ft2-parameter_tags.html#ft_param_tag_ignore_typographic_family">FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY</a><br /> <a href="ft2-parameter_tags.html#ft_param_tag_ignore_typographic_subfamily">FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY</a><br /> <a href="ft2-parameter_tags.html#ft_param_tag_incremental">FT_PARAM_TAG_INCREMENTAL</a><br /> <a href="ft2-parameter_tags.html#ft_param_tag_lcd_filter_weights">FT_PARAM_TAG_LCD_FILTER_WEIGHTS</a><br /> <a href="ft2-parameter_tags.html#ft_param_tag_random_seed">FT_PARAM_TAG_RANDOM_SEED</a><br /> <a href="ft2-parameter_tags.html#ft_param_tag_stem_darkening">FT_PARAM_TAG_STEM_DARKENING</a><br /> <a href="ft2-parameter_tags.html#ft_param_tag_unpatented_hinting">FT_PARAM_TAG_UNPATENTED_HINTING</a><br /> |
︙ | ︙ | |||
1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 | <a href="ft2-base_interface.html#ft_subglyph_flag_xxx">FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS</a><br /> <a href="ft2-base_interface.html#ft_subglyph_flag_xxx">FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES</a><br /> <a href="ft2-base_interface.html#ft_subglyph_flag_xxx">FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID</a><br /> <a href="ft2-base_interface.html#ft_subglyph_flag_xxx">FT_SUBGLYPH_FLAG_SCALE</a><br /> <a href="ft2-base_interface.html#ft_subglyph_flag_xxx">FT_SUBGLYPH_FLAG_USE_MY_METRICS</a><br /> <a href="ft2-base_interface.html#ft_subglyph_flag_xxx">FT_SUBGLYPH_FLAG_XXX</a><br /> <a href="ft2-base_interface.html#ft_subglyph_flag_xxx">FT_SUBGLYPH_FLAG_XY_SCALE</a><br /> <a href="ft2-header_file_macros.html#ft_synthesis_h">FT_SYNTHESIS_H</a><br /> <a href="ft2-header_file_macros.html#ft_system_h">FT_SYSTEM_H</a><br /> <a href="ft2-basic_types.html#ft_tag">FT_Tag</a><br /> <a href="ft2-computations.html#ft_tan">FT_Tan</a><br /> <a href="ft2-debugging_apis.html#ft_trace_set_default_level">FT_Trace_Set_Default_Level</a><br /> <a href="ft2-debugging_apis.html#ft_trace_set_level">FT_Trace_Set_Level</a><br /> <a href="ft2-header_file_macros.html#ft_trigonometry_h">FT_TRIGONOMETRY_H</a><br /> | > > > > | 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 | <a href="ft2-base_interface.html#ft_subglyph_flag_xxx">FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS</a><br /> <a href="ft2-base_interface.html#ft_subglyph_flag_xxx">FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES</a><br /> <a href="ft2-base_interface.html#ft_subglyph_flag_xxx">FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID</a><br /> <a href="ft2-base_interface.html#ft_subglyph_flag_xxx">FT_SUBGLYPH_FLAG_SCALE</a><br /> <a href="ft2-base_interface.html#ft_subglyph_flag_xxx">FT_SUBGLYPH_FLAG_USE_MY_METRICS</a><br /> <a href="ft2-base_interface.html#ft_subglyph_flag_xxx">FT_SUBGLYPH_FLAG_XXX</a><br /> <a href="ft2-base_interface.html#ft_subglyph_flag_xxx">FT_SUBGLYPH_FLAG_XY_SCALE</a><br /> <a href="ft2-svg_fonts.html#ft_svg_document">FT_SVG_Document</a><br /> <a href="ft2-svg_fonts.html#ft_svg_documentrec">FT_SVG_DocumentRec</a><br /> <a href="ft2-glyph_management.html#ft_svgglyph">FT_SvgGlyph</a><br /> <a href="ft2-glyph_management.html#ft_svgglyphrec">FT_SvgGlyphRec</a><br /> <a href="ft2-header_file_macros.html#ft_synthesis_h">FT_SYNTHESIS_H</a><br /> <a href="ft2-header_file_macros.html#ft_system_h">FT_SYSTEM_H</a><br /> <a href="ft2-basic_types.html#ft_tag">FT_Tag</a><br /> <a href="ft2-computations.html#ft_tan">FT_Tan</a><br /> <a href="ft2-debugging_apis.html#ft_trace_set_default_level">FT_Trace_Set_Default_Level</a><br /> <a href="ft2-debugging_apis.html#ft_trace_set_level">FT_Trace_Set_Level</a><br /> <a href="ft2-header_file_macros.html#ft_trigonometry_h">FT_TRIGONOMETRY_H</a><br /> |
︙ | ︙ | |||
2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 | <a href="ft2-type1_tables.html#ps_dict_keys">PS_DICT_WEIGHT</a><br /> <a href="ft2-type1_tables.html#ps_fontinfo">PS_FontInfo</a><br /> <a href="ft2-type1_tables.html#ps_fontinforec">PS_FontInfoRec</a><br /> <a href="ft2-type1_tables.html#ps_private">PS_Private</a><br /> <a href="ft2-type1_tables.html#ps_privaterec">PS_PrivateRec</a> </p> <h3 id="r">R<a class="headerlink" href="#r" title="Permanent link">¶</a></h3> <p><a href="ft2-properties.html#random-seed">random-seed</a> </p> <h3 id="t">T<a class="headerlink" href="#t" title="Permanent link">¶</a></h3> <p><a href="ft2-type1_tables.html#t1_blend_flags">T1_BLEND_BLUE_SCALE</a><br /> <a href="ft2-type1_tables.html#t1_blend_flags">T1_BLEND_BLUE_SHIFT</a><br /> <a href="ft2-type1_tables.html#t1_blend_flags">T1_BLEND_BLUE_VALUES</a><br /> <a href="ft2-type1_tables.html#t1_blend_flags">T1_BLEND_FAMILY_BLUES</a><br /> <a href="ft2-type1_tables.html#t1_blend_flags">T1_BLEND_FAMILY_OTHER_BLUES</a><br /> <a href="ft2-type1_tables.html#t1_blend_flags">T1_Blend_Flags</a><br /> | > > > > > > > | 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 | <a href="ft2-type1_tables.html#ps_dict_keys">PS_DICT_WEIGHT</a><br /> <a href="ft2-type1_tables.html#ps_fontinfo">PS_FontInfo</a><br /> <a href="ft2-type1_tables.html#ps_fontinforec">PS_FontInfoRec</a><br /> <a href="ft2-type1_tables.html#ps_private">PS_Private</a><br /> <a href="ft2-type1_tables.html#ps_privaterec">PS_PrivateRec</a> </p> <h3 id="r">R<a class="headerlink" href="#r" title="Permanent link">¶</a></h3> <p><a href="ft2-properties.html#random-seed">random-seed</a> </p> <h3 id="s">S<a class="headerlink" href="#s" title="Permanent link">¶</a></h3> <p><a href="ft2-properties.html#svg-hooks">svg-hooks</a><br /> <a href="ft2-svg_fonts.html#svg_lib_free_func">SVG_Lib_Free_Func</a><br /> <a href="ft2-svg_fonts.html#svg_lib_init_func">SVG_Lib_Init_Func</a><br /> <a href="ft2-svg_fonts.html#svg_lib_preset_slot_func">SVG_Lib_Preset_Slot_Func</a><br /> <a href="ft2-svg_fonts.html#svg_lib_render_func">SVG_Lib_Render_Func</a><br /> <a href="ft2-svg_fonts.html#svg_rendererhooks">SVG_RendererHooks</a> </p> <h3 id="t">T<a class="headerlink" href="#t" title="Permanent link">¶</a></h3> <p><a href="ft2-type1_tables.html#t1_blend_flags">T1_BLEND_BLUE_SCALE</a><br /> <a href="ft2-type1_tables.html#t1_blend_flags">T1_BLEND_BLUE_SHIFT</a><br /> <a href="ft2-type1_tables.html#t1_blend_flags">T1_BLEND_BLUE_VALUES</a><br /> <a href="ft2-type1_tables.html#t1_blend_flags">T1_BLEND_FAMILY_BLUES</a><br /> <a href="ft2-type1_tables.html#t1_blend_flags">T1_BLEND_FAMILY_OTHER_BLUES</a><br /> <a href="ft2-type1_tables.html#t1_blend_flags">T1_Blend_Flags</a><br /> |
︙ | ︙ | |||
2170 2171 2172 2173 2174 2175 2176 | <a href="ft2-truetype_tables.html#tt_platform_xxx">TT_PLATFORM_XXX</a><br /> <a href="ft2-truetype_tables.html#tt_postscript">TT_Postscript</a><br /> <a href="ft2-truetype_tables.html#tt_ucr_xxx">TT_UCR_XXX</a><br /> <a href="ft2-truetype_tables.html#tt_vertheader">TT_VertHeader</a> </p> <h3 id="w">W<a class="headerlink" href="#w" title="Permanent link">¶</a></h3> <p><a href="ft2-properties.html#warping">warping</a> </p> <hr /> | | | 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 | <a href="ft2-truetype_tables.html#tt_platform_xxx">TT_PLATFORM_XXX</a><br /> <a href="ft2-truetype_tables.html#tt_postscript">TT_Postscript</a><br /> <a href="ft2-truetype_tables.html#tt_ucr_xxx">TT_UCR_XXX</a><br /> <a href="ft2-truetype_tables.html#tt_vertheader">TT_VertHeader</a> </p> <h3 id="w">W<a class="headerlink" href="#w" title="Permanent link">¶</a></h3> <p><a href="ft2-properties.html#warping">warping</a> </p> <hr /> <div class="timestamp">generated on Thu Mar 31 12:00:59 2022 UTC</div> |
︙ | ︙ | |||
2227 2228 2229 2230 2231 2232 2233 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-layer_management.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Glyph Layer Management - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Glyph Layer Management |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
802 803 804 805 806 807 808 809 810 811 812 813 814 815 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
911 912 913 914 915 916 917 918 919 920 921 922 923 924 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
2737 2738 2739 2740 2741 2742 2743 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-lcd_rendering.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Subpixel Rendering - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Subpixel Rendering |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
647 648 649 650 651 652 653 654 655 656 657 658 659 660 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1444 1445 1446 1447 1448 1449 1450 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-list_processing.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>List Processing - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> List Processing |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1653 1654 1655 1656 1657 1658 1659 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-lzw.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>LZW Streams - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> LZW Streams |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1240 1241 1242 1243 1244 1245 1246 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-mac_specific.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Mac Specific Interface - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Mac Specific Interface |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
620 621 622 623 624 625 626 627 628 629 630 631 632 633 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
729 730 731 732 733 734 735 736 737 738 739 740 741 742 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1512 1513 1514 1515 1516 1517 1518 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-module_management.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Module Management - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Module Management |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
2203 2204 2205 2206 2207 2208 2209 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-multiple_masters.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Multiple Masters - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Multiple Masters |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
718 719 720 721 722 723 724 725 726 727 728 729 730 731 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
827 828 829 830 831 832 833 834 835 836 837 838 839 840 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 | <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » <a href="index.html#format-specific-api">Format-Specific API</a> » Multiple Masters</p> <hr /> <h1 id="multiple-masters">Multiple Masters<a class="headerlink" href="#multiple-masters" title="Permanent link">¶</a></h1> <h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</a></h2> <p>The following types and functions are used to manage Multiple Master fonts, i.e., the selection of specific design instances by setting design axis coordinates.</p> <p>Besides Adobe MM fonts, the interface supports Apple's TrueType GX and OpenType variation fonts. Some of the routines only work with Adobe MM fonts, others will work with all three types. They are similar enough that a consistent interface makes sense.</p> <h2 id="ft_mm_axis">FT_MM_Axis<a class="headerlink" href="#ft_mm_axis" title="Permanent link">¶</a></h2> <p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_MM_Axis_ { <a href="ft2-basic_types.html#ft_string">FT_String</a>* name; <a href="ft2-basic_types.html#ft_long">FT_Long</a> minimum; <a href="ft2-basic_types.html#ft_long">FT_Long</a> maximum; | > | 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 | <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » <a href="index.html#format-specific-api">Format-Specific API</a> » Multiple Masters</p> <hr /> <h1 id="multiple-masters">Multiple Masters<a class="headerlink" href="#multiple-masters" title="Permanent link">¶</a></h1> <h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</a></h2> <p>The following types and functions are used to manage Multiple Master fonts, i.e., the selection of specific design instances by setting design axis coordinates.</p> <p>Besides Adobe MM fonts, the interface supports Apple's TrueType GX and OpenType variation fonts. Some of the routines only work with Adobe MM fonts, others will work with all three types. They are similar enough that a consistent interface makes sense.</p> <p>For Adobe MM fonts, macro <code><a href="ft2-base_interface.html#ft_is_sfnt">FT_IS_SFNT</a></code> returns false. For GX and OpenType variation fonts, it returns true.</p> <h2 id="ft_mm_axis">FT_MM_Axis<a class="headerlink" href="#ft_mm_axis" title="Permanent link">¶</a></h2> <p>Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_MM_Axis_ { <a href="ft2-basic_types.html#ft_string">FT_String</a>* name; <a href="ft2-basic_types.html#ft_long">FT_Long</a> minimum; <a href="ft2-basic_types.html#ft_long">FT_Long</a> maximum; |
︙ | ︙ | |||
2082 2083 2084 2085 2086 2087 2088 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Added jni/freetype/docs/reference/ft2-ot_svg_driver.html.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>The SVG driver - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> <meta name="theme-color" content="#4cae4f"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Serif:300,400,400i,700%7CRoboto+Mono&display=fallback"> <style>:root{--md-text-font-family:"Noto Serif";--md-code-font-family:"Roboto Mono"}</style> <link rel="stylesheet" href="stylesheets/extra.css"> </head> <body dir="ltr" data-md-color-scheme="" data-md-color-primary="green" data-md-color-accent="green"> <script>function __prefix(e){return new URL(".",location).pathname+"."+e}function __get(e,t=localStorage){return JSON.parse(t.getItem(__prefix(e)))}</script> <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> <label class="md-overlay" for="__drawer"></label> <div data-md-component="skip"> <a href="#the-svg-driver" class="md-skip"> Skip to content </a> </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> The SVG driver </span> </div> </div> </div> <label class="md-header__button md-icon" for="__search"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg> </label> <div class="md-search" data-md-component="search" role="dialog"> <label class="md-search__overlay" for="__search"></label> <div class="md-search__inner" role="search"> <form class="md-search__form" name="search"> <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required> <label class="md-search__icon md-icon" for="__search"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> </label> <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg> </button> </form> <div class="md-search__output"> <div class="md-search__scrollwrap" data-md-scrollfix> <div class="md-search-result" data-md-component="search-result"> <div class="md-search-result__meta"> Initializing search </div> <ol class="md-search-result__list"></ol> </div> </div> </div> </div> </div> </nav> </header> <div class="md-container" data-md-component="container"> <main class="md-main" data-md-component="main"> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="index.html" class="md-nav__link"> TOC </a> </li> <li class="md-nav__item"> <a href="ft2-index.html" class="md-nav__link"> Index </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" > <label class="md-nav__link" for="__nav_3"> General Remarks <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="General Remarks" data-md-level="1"> <label class="md-nav__title" for="__nav_3"> <span class="md-nav__icon md-icon"></span> General Remarks </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-preamble.html" class="md-nav__link"> Preamble </a> </li> <li class="md-nav__item"> <a href="ft2-header_inclusion.html" class="md-nav__link"> FreeType's header inclusion scheme </a> </li> <li class="md-nav__item"> <a href="ft2-user_allocation.html" class="md-nav__link"> User allocation </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" > <label class="md-nav__link" for="__nav_4"> Core API <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Core API" data-md-level="1"> <label class="md-nav__title" for="__nav_4"> <span class="md-nav__icon md-icon"></span> Core API </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-version.html" class="md-nav__link"> FreeType Version </a> </li> <li class="md-nav__item"> <a href="ft2-basic_types.html" class="md-nav__link"> Basic Data Types </a> </li> <li class="md-nav__item"> <a href="ft2-base_interface.html" class="md-nav__link"> Base Interface </a> </li> <li class="md-nav__item"> <a href="ft2-glyph_variants.html" class="md-nav__link"> Unicode Variation Sequences </a> </li> <li class="md-nav__item"> <a href="ft2-color_management.html" class="md-nav__link"> Glyph Color Management </a> </li> <li class="md-nav__item"> <a href="ft2-layer_management.html" class="md-nav__link"> Glyph Layer Management </a> </li> <li class="md-nav__item"> <a href="ft2-glyph_management.html" class="md-nav__link"> Glyph Management </a> </li> <li class="md-nav__item"> <a href="ft2-mac_specific.html" class="md-nav__link"> Mac Specific Interface </a> </li> <li class="md-nav__item"> <a href="ft2-sizes_management.html" class="md-nav__link"> Size Management </a> </li> <li class="md-nav__item"> <a href="ft2-header_file_macros.html" class="md-nav__link"> Header File Macros </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" > <label class="md-nav__link" for="__nav_5"> Format-Specific API <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Format-Specific API" data-md-level="1"> <label class="md-nav__title" for="__nav_5"> <span class="md-nav__icon md-icon"></span> Format-Specific API </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-multiple_masters.html" class="md-nav__link"> Multiple Masters </a> </li> <li class="md-nav__item"> <a href="ft2-truetype_tables.html" class="md-nav__link"> TrueType Tables </a> </li> <li class="md-nav__item"> <a href="ft2-type1_tables.html" class="md-nav__link"> Type 1 Tables </a> </li> <li class="md-nav__item"> <a href="ft2-sfnt_names.html" class="md-nav__link"> SFNT Names </a> </li> <li class="md-nav__item"> <a href="ft2-bdf_fonts.html" class="md-nav__link"> BDF and PCF Files </a> </li> <li class="md-nav__item"> <a href="ft2-cid_fonts.html" class="md-nav__link"> CID Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-pfr_fonts.html" class="md-nav__link"> PFR Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-winfnt_fonts.html" class="md-nav__link"> Window FNT Files </a> </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> <li class="md-nav__item"> <a href="ft2-gasp_table.html" class="md-nav__link"> Gasp Table </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" checked> <label class="md-nav__link" for="__nav_6"> Controlling FreeType Modules <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Controlling FreeType Modules" data-md-level="1"> <label class="md-nav__title" for="__nav_6"> <span class="md-nav__icon md-icon"></span> Controlling FreeType Modules </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-auto_hinter.html" class="md-nav__link"> The auto-hinter </a> </li> <li class="md-nav__item"> <a href="ft2-cff_driver.html" class="md-nav__link"> The CFF driver </a> </li> <li class="md-nav__item"> <a href="ft2-t1_cid_driver.html" class="md-nav__link"> The Type 1 and CID drivers </a> </li> <li class="md-nav__item"> <a href="ft2-tt_driver.html" class="md-nav__link"> The TrueType driver </a> </li> <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc"> <label class="md-nav__link md-nav__link--active" for="__toc"> The SVG driver <span class="md-nav__icon md-icon"></span> </label> <a href="ft2-ot_svg_driver.html" class="md-nav__link md-nav__link--active"> The SVG driver </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> <li class="md-nav__item"> <a href="#synopsis" class="md-nav__link"> Synopsis </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="ft2-properties.html" class="md-nav__link"> Driver properties </a> </li> <li class="md-nav__item"> <a href="ft2-parameter_tags.html" class="md-nav__link"> Parameter Tags </a> </li> <li class="md-nav__item"> <a href="ft2-lcd_rendering.html" class="md-nav__link"> Subpixel Rendering </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" > <label class="md-nav__link" for="__nav_7"> Cache Sub-System <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Cache Sub-System" data-md-level="1"> <label class="md-nav__title" for="__nav_7"> <span class="md-nav__icon md-icon"></span> Cache Sub-System </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-cache_subsystem.html" class="md-nav__link"> Cache Sub-System </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8" type="checkbox" id="__nav_8" > <label class="md-nav__link" for="__nav_8"> Support API <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Support API" data-md-level="1"> <label class="md-nav__title" for="__nav_8"> <span class="md-nav__icon md-icon"></span> Support API </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-computations.html" class="md-nav__link"> Computations </a> </li> <li class="md-nav__item"> <a href="ft2-list_processing.html" class="md-nav__link"> List Processing </a> </li> <li class="md-nav__item"> <a href="ft2-outline_processing.html" class="md-nav__link"> Outline Processing </a> </li> <li class="md-nav__item"> <a href="ft2-quick_advance.html" class="md-nav__link"> Quick retrieval of advance values </a> </li> <li class="md-nav__item"> <a href="ft2-bitmap_handling.html" class="md-nav__link"> Bitmap Handling </a> </li> <li class="md-nav__item"> <a href="ft2-raster.html" class="md-nav__link"> Scanline Converter </a> </li> <li class="md-nav__item"> <a href="ft2-glyph_stroker.html" class="md-nav__link"> Glyph Stroker </a> </li> <li class="md-nav__item"> <a href="ft2-system_interface.html" class="md-nav__link"> System Interface </a> </li> <li class="md-nav__item"> <a href="ft2-module_management.html" class="md-nav__link"> Module Management </a> </li> <li class="md-nav__item"> <a href="ft2-gzip.html" class="md-nav__link"> GZIP Streams </a> </li> <li class="md-nav__item"> <a href="ft2-lzw.html" class="md-nav__link"> LZW Streams </a> </li> <li class="md-nav__item"> <a href="ft2-bzip2.html" class="md-nav__link"> BZIP2 Streams </a> </li> <li class="md-nav__item"> <a href="ft2-debugging_apis.html" class="md-nav__link"> External Debugging APIs </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_9" type="checkbox" id="__nav_9" > <label class="md-nav__link" for="__nav_9"> Error Codes <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Error Codes" data-md-level="1"> <label class="md-nav__title" for="__nav_9"> <span class="md-nav__icon md-icon"></span> Error Codes </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-error_enumerations.html" class="md-nav__link"> Error Enumerations </a> </li> <li class="md-nav__item"> <a href="ft2-error_code_values.html" class="md-nav__link"> Error Code Values </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_10" type="checkbox" id="__nav_10" > <label class="md-nav__link" for="__nav_10"> Miscellaneous <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Miscellaneous" data-md-level="1"> <label class="md-nav__title" for="__nav_10"> <span class="md-nav__icon md-icon"></span> Miscellaneous </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-gx_validation.html" class="md-nav__link"> TrueTypeGX/AAT Validation </a> </li> <li class="md-nav__item"> <a href="ft2-incremental.html" class="md-nav__link"> Incremental Loading </a> </li> <li class="md-nav__item"> <a href="ft2-truetype_engine.html" class="md-nav__link"> The TrueType Engine </a> </li> <li class="md-nav__item"> <a href="ft2-ot_validation.html" class="md-nav__link"> OpenType Validation </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> <li class="md-nav__item"> <a href="#synopsis" class="md-nav__link"> Synopsis </a> </li> </ul> </nav> </div> </div> </div> <div class="md-content" data-md-component="content"> <article class="md-content__inner md-typeset"> <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » <a href="index.html#controlling-freetype-modules">Controlling FreeType Modules</a> » The SVG driver</p> <hr /> <h1 id="the-svg-driver">The SVG driver<a class="headerlink" href="#the-svg-driver" title="Permanent link">¶</a></h1> <h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</a></h2> <p>By default, FreeType can only load the ‘SVG ’ table of OpenType fonts if configuration macro <code>FT_CONFIG_OPTION_SVG</code> is defined. To make it render SVG glyphs, an external SVG rendering library is needed. All details on the interface between FreeType and the external library via function hooks can be found in section ‘<a href="ft2-svg_fonts.html#svg_fonts">OpenType SVG Fonts</a>’.</p> <p>The OT-SVG driver's module name is ‘ot-svg’; it supports a single property called <code><a href="ft2-properties.html#svg-hooks">svg-hooks</a></code>, documented below in the ‘<a href="ft2-properties.html#properties">Driver properties</a>’ section.</p> </article> </div> </div> </main> <footer class="md-footer"> <nav class="md-footer__inner md-grid" aria-label="Footer"> <a href="ft2-pcf_driver.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: The PCF driver" rel="prev"> <div class="md-footer__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> </div> <div class="md-footer__title"> <div class="md-ellipsis"> <span class="md-footer__direction"> Previous </span> The PCF driver </div> </div> </a> <a href="ft2-properties.html" class="md-footer__link md-footer__link--next" aria-label="Next: Driver properties" rel="next"> <div class="md-footer__title"> <div class="md-ellipsis"> <span class="md-footer__direction"> Next </span> Driver properties </div> </div> <div class="md-footer__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg> </div> </a> </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> </div> </div> </div> </footer> </div> <div class="md-dialog" data-md-component="dialog"> <div class="md-dialog__inner md-typeset"></div> </div> <script id="__config" type="application/json">{"base": ".", "features": [], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing", "select.version.title": "Select version"}, "search": "assets/javascripts/workers/search.477d984a.min.js", "version": null}</script> <script src="assets/javascripts/bundle.82b56eb2.min.js"></script> <script src="javascripts/extra.js"></script> </body> </html> |
Changes to jni/freetype/docs/reference/ft2-ot_validation.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>OpenType Validation - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> OpenType Validation |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1342 1343 1344 1345 1346 1347 1348 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-outline_processing.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Outline Processing - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Outline Processing |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1911 1912 1913 1914 1915 1916 1917 | </table> <h4>return</h4> <p>FreeType error code. 0 means success.</p> <h4>note</h4> | | | 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 | </table> <h4>return</h4> <p>FreeType error code. 0 means success.</p> <h4>note</h4> <p>Degenerate contours, segments, and Bezier arcs may be reported. In most cases, it is best to filter these out before using the outline for stroking or other path modification purposes (which may cause degenerate segments to become non-degenrate and visible, like when stroke caps are used or the path is otherwise outset). Some glyph outlines may contain deliberate degenerate single points for mark attachement.</p> <p>Similarly, the function returns success for an empty outline also (doing nothing, this is, not calling any emitter); if necessary, you should filter this out, too.</p> <hr> <h2 id="ft_outline_funcs">FT_Outline_Funcs<a class="headerlink" href="#ft_outline_funcs" title="Permanent link">¶</a></h2> <p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Outline_Funcs_ { |
︙ | ︙ | |||
2185 2186 2187 2188 2189 2190 2191 | <tr><td class="val" id="ft_outline_smart_dropouts">FT_OUTLINE_SMART_DROPOUTS</td><td class="desc"> <p>Select smart dropout control. If unset, use simple dropout control. Ignored if <code><a href="ft2-outline_processing.html#ft_outline_xxx">FT_OUTLINE_IGNORE_DROPOUTS</a></code> is set. See below for more information.</p> </td></tr> <tr><td class="val" id="ft_outline_include_stubs">FT_OUTLINE_INCLUDE_STUBS</td><td class="desc"> <p>If set, turn pixels on for ‘stubs’, otherwise exclude them. Ignored if <code><a href="ft2-outline_processing.html#ft_outline_xxx">FT_OUTLINE_IGNORE_DROPOUTS</a></code> is set. See below for more information.</p> </td></tr> <tr><td class="val" id="ft_outline_overlap">FT_OUTLINE_OVERLAP</td><td class="desc"> | | | 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 | <tr><td class="val" id="ft_outline_smart_dropouts">FT_OUTLINE_SMART_DROPOUTS</td><td class="desc"> <p>Select smart dropout control. If unset, use simple dropout control. Ignored if <code><a href="ft2-outline_processing.html#ft_outline_xxx">FT_OUTLINE_IGNORE_DROPOUTS</a></code> is set. See below for more information.</p> </td></tr> <tr><td class="val" id="ft_outline_include_stubs">FT_OUTLINE_INCLUDE_STUBS</td><td class="desc"> <p>If set, turn pixels on for ‘stubs’, otherwise exclude them. Ignored if <code><a href="ft2-outline_processing.html#ft_outline_xxx">FT_OUTLINE_IGNORE_DROPOUTS</a></code> is set. See below for more information.</p> </td></tr> <tr><td class="val" id="ft_outline_overlap">FT_OUTLINE_OVERLAP</td><td class="desc"> <p>[Since 2.10.3] This flag indicates that this outline contains overlapping contours and the anti-aliased renderer should perform oversampling to mitigate possible artifacts. This flag should <em>not</em> be set for well designed glyphs without overlaps because it quadruples the rendering time.</p> </td></tr> <tr><td class="val" id="ft_outline_high_precision">FT_OUTLINE_HIGH_PRECISION</td><td class="desc"> <p>This flag indicates that the scan-line converter should try to convert this outline to bitmaps with the highest possible quality. It is typically set for small character sizes. Note that this is only a hint that might be completely ignored by a given scan-converter.</p> </td></tr> <tr><td class="val" id="ft_outline_single_pass">FT_OUTLINE_SINGLE_PASS</td><td class="desc"> <p>This flag is set to force a given scan-converter to only use a single pass over the outline to render a bitmap glyph image. Normally, it is set for very large character sizes. It is only a hint that might be completely ignored by a given scan-converter.</p> </td></tr> |
︙ | ︙ | |||
2257 2258 2259 2260 2261 2262 2263 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-parameter_tags.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Parameter Tags - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Parameter Tags |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
652 653 654 655 656 657 658 659 660 661 662 663 664 665 | </li> <li class="md-nav__item"> <a href="ft2-properties.html" class="md-nav__link"> Driver properties </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> <a href="ft2-properties.html" class="md-nav__link"> Driver properties </a> </li> |
︙ | ︙ | |||
724 725 726 727 728 729 730 731 732 733 734 735 736 737 | </li> <li class="md-nav__item"> <a href="#ft_param_tag_incremental" class="md-nav__link"> FT_PARAM_TAG_INCREMENTAL </a> </li> <li class="md-nav__item"> <a href="#ft_param_tag_lcd_filter_weights" class="md-nav__link"> FT_PARAM_TAG_LCD_FILTER_WEIGHTS </a> | > > > > > > > | 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 | </li> <li class="md-nav__item"> <a href="#ft_param_tag_incremental" class="md-nav__link"> FT_PARAM_TAG_INCREMENTAL </a> </li> <li class="md-nav__item"> <a href="#ft_param_tag_ignore_sbix" class="md-nav__link"> FT_PARAM_TAG_IGNORE_SBIX </a> </li> <li class="md-nav__item"> <a href="#ft_param_tag_lcd_filter_weights" class="md-nav__link"> FT_PARAM_TAG_LCD_FILTER_WEIGHTS </a> |
︙ | ︙ | |||
1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 | </li> <li class="md-nav__item"> <a href="#ft_param_tag_incremental" class="md-nav__link"> FT_PARAM_TAG_INCREMENTAL </a> </li> <li class="md-nav__item"> <a href="#ft_param_tag_lcd_filter_weights" class="md-nav__link"> FT_PARAM_TAG_LCD_FILTER_WEIGHTS </a> | > > > > > > > | 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 | </li> <li class="md-nav__item"> <a href="#ft_param_tag_incremental" class="md-nav__link"> FT_PARAM_TAG_INCREMENTAL </a> </li> <li class="md-nav__item"> <a href="#ft_param_tag_ignore_sbix" class="md-nav__link"> FT_PARAM_TAG_IGNORE_SBIX </a> </li> <li class="md-nav__item"> <a href="#ft_param_tag_lcd_filter_weights" class="md-nav__link"> FT_PARAM_TAG_LCD_FILTER_WEIGHTS </a> |
︙ | ︙ | |||
1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 | <h2 id="ft_param_tag_incremental">FT_PARAM_TAG_INCREMENTAL<a class="headerlink" href="#ft_param_tag_incremental" title="Permanent link">¶</a></h2> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_PARAM_TAG_INCREMENTAL</b> \ <a href="ft2-basic_types.html#ft_make_tag">FT_MAKE_TAG</a>( 'i', 'n', 'c', 'r' ) </code></pre></div> <p>An <code><a href="ft2-base_interface.html#ft_parameter">FT_Parameter</a></code> tag to be used with <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code> to indicate incremental glyph loading.</p> <hr> <h2 id="ft_param_tag_lcd_filter_weights">FT_PARAM_TAG_LCD_FILTER_WEIGHTS<a class="headerlink" href="#ft_param_tag_lcd_filter_weights" title="Permanent link">¶</a></h2> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_PARAM_TAG_LCD_FILTER_WEIGHTS</b> \ <a href="ft2-basic_types.html#ft_make_tag">FT_MAKE_TAG</a>( 'l', 'c', 'd', 'f' ) </code></pre></div> <p>An <code><a href="ft2-base_interface.html#ft_parameter">FT_Parameter</a></code> tag to be used with <code><a href="ft2-base_interface.html#ft_face_properties">FT_Face_Properties</a></code>. The corresponding argument specifies the five LCD filter weights for a given face (if using <code><a href="ft2-base_interface.html#ft_load_target_xxx">FT_LOAD_TARGET_LCD</a></code>, for example), overriding the global default values or the values set up with <code><a href="ft2-lcd_rendering.html#ft_library_setlcdfilterweights">FT_Library_SetLcdFilterWeights</a></code>.</p> | > > > > > > > > | 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 | <h2 id="ft_param_tag_incremental">FT_PARAM_TAG_INCREMENTAL<a class="headerlink" href="#ft_param_tag_incremental" title="Permanent link">¶</a></h2> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_PARAM_TAG_INCREMENTAL</b> \ <a href="ft2-basic_types.html#ft_make_tag">FT_MAKE_TAG</a>( 'i', 'n', 'c', 'r' ) </code></pre></div> <p>An <code><a href="ft2-base_interface.html#ft_parameter">FT_Parameter</a></code> tag to be used with <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code> to indicate incremental glyph loading.</p> <hr> <h2 id="ft_param_tag_ignore_sbix">FT_PARAM_TAG_IGNORE_SBIX<a class="headerlink" href="#ft_param_tag_ignore_sbix" title="Permanent link">¶</a></h2> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_PARAM_TAG_IGNORE_SBIX</b> \ <a href="ft2-basic_types.html#ft_make_tag">FT_MAKE_TAG</a>( 'i', 's', 'b', 'x' ) </code></pre></div> <p>A tag for <code><a href="ft2-base_interface.html#ft_parameter">FT_Parameter</a></code> to make <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code> ignore an ‘sbix’ table while loading a font. Use this if <code><a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_SBIX</a></code> is set and you want to access the outline glyphs in the font.</p> <hr> <h2 id="ft_param_tag_lcd_filter_weights">FT_PARAM_TAG_LCD_FILTER_WEIGHTS<a class="headerlink" href="#ft_param_tag_lcd_filter_weights" title="Permanent link">¶</a></h2> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_PARAM_TAG_LCD_FILTER_WEIGHTS</b> \ <a href="ft2-basic_types.html#ft_make_tag">FT_MAKE_TAG</a>( 'l', 'c', 'd', 'f' ) </code></pre></div> <p>An <code><a href="ft2-base_interface.html#ft_parameter">FT_Parameter</a></code> tag to be used with <code><a href="ft2-base_interface.html#ft_face_properties">FT_Face_Properties</a></code>. The corresponding argument specifies the five LCD filter weights for a given face (if using <code><a href="ft2-base_interface.html#ft_load_target_xxx">FT_LOAD_TARGET_LCD</a></code>, for example), overriding the global default values or the values set up with <code><a href="ft2-lcd_rendering.html#ft_library_setlcdfilterweights">FT_Library_SetLcdFilterWeights</a></code>.</p> |
︙ | ︙ | |||
1377 1378 1379 1380 1381 1382 1383 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-pcf_driver.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>The PCF driver - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> The PCF driver |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
687 688 689 690 691 692 693 694 695 696 697 698 699 700 | </ul> </nav> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | </ul> </nav> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1177 1178 1179 1180 1181 1182 1183 | The TrueType driver </div> </div> </a> | | | | | 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 | The TrueType driver </div> </div> </a> <a href="ft2-ot_svg_driver.html" class="md-footer__link md-footer__link--next" aria-label="Next: The SVG driver" rel="next"> <div class="md-footer__title"> <div class="md-ellipsis"> <span class="md-footer__direction"> Next </span> The SVG driver </div> </div> <div class="md-footer__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg> </div> </a> </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-pfr_fonts.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>PFR Fonts - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> PFR Fonts |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
599 600 601 602 603 604 605 606 607 608 609 610 611 612 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
708 709 710 711 712 713 714 715 716 717 718 719 720 721 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1353 1354 1355 1356 1357 1358 1359 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-preamble.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Preamble - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Preamble |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
578 579 580 581 582 583 584 585 586 587 588 589 590 591 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
687 688 689 690 691 692 693 694 695 696 697 698 699 700 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1199 1200 1201 1202 1203 1204 1205 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-properties.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Driver properties - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Driver properties |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
651 652 653 654 655 656 657 658 659 660 661 662 663 664 | </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc"> | > > > > > > > > > > > > | 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 | </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc"> |
︙ | ︙ | |||
747 748 749 750 751 752 753 754 755 756 757 758 759 760 | </li> <li class="md-nav__item"> <a href="#interpreter-version" class="md-nav__link"> interpreter-version </a> </li> <li class="md-nav__item"> <a href="#glyph-to-script-map" class="md-nav__link"> glyph-to-script-map </a> | > > > > > > > | 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 | </li> <li class="md-nav__item"> <a href="#interpreter-version" class="md-nav__link"> interpreter-version </a> </li> <li class="md-nav__item"> <a href="#svg-hooks" class="md-nav__link"> svg-hooks </a> </li> <li class="md-nav__item"> <a href="#glyph-to-script-map" class="md-nav__link"> glyph-to-script-map </a> |
︙ | ︙ | |||
1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 | </li> <li class="md-nav__item"> <a href="#interpreter-version" class="md-nav__link"> interpreter-version </a> </li> <li class="md-nav__item"> <a href="#glyph-to-script-map" class="md-nav__link"> glyph-to-script-map </a> | > > > > > > > | 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 | </li> <li class="md-nav__item"> <a href="#interpreter-version" class="md-nav__link"> interpreter-version </a> </li> <li class="md-nav__item"> <a href="#svg-hooks" class="md-nav__link"> svg-hooks </a> </li> <li class="md-nav__item"> <a href="#glyph-to-script-map" class="md-nav__link"> glyph-to-script-map </a> |
︙ | ︙ | |||
1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 | "interpreter-version", &interpreter_version ); </code></pre></div></p> <h4>since</h4> <p>2.5</p> <hr> <h2 id="glyph-to-script-map">glyph-to-script-map<a class="headerlink" href="#glyph-to-script-map" title="Permanent link">¶</a></h2> <p><strong>Experimental only</strong></p> <p>The auto-hinter provides various script modules to hint glyphs. Examples of supported scripts are Latin or CJK. Before a glyph is auto-hinted, the Unicode character map of the font gets examined, and the script is then determined based on Unicode character ranges, see below.</p> <p>OpenType fonts, however, often provide much more glyphs than character codes (small caps, superscripts, ligatures, swashes, etc.), to be controlled by so-called ‘features’. Handling OpenType features can be quite complicated and thus needs a separate library on top of FreeType.</p> <p>The mapping between glyph indices and scripts (in the auto-hinter sense, see the <code><a href="ft2-properties.html#ft_autohinter_script_xxx">FT_AUTOHINTER_SCRIPT_XXX</a></code> values) is stored as an array with <code>num_glyphs</code> elements, as found in the font's <code><a href="ft2-base_interface.html#ft_face">FT_Face</a></code> structure. The <code>glyph-to-script-map</code> property returns a pointer to this array, which can be modified as needed. Note that the modification should happen before the first glyph gets processed by the auto-hinter so that the global analysis of the font shapes actually uses the modified mapping.</p> <h4>example</h4> | > > > > > > > > > > > > > > > > > > > > > > > | 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 | "interpreter-version", &interpreter_version ); </code></pre></div></p> <h4>since</h4> <p>2.5</p> <hr> <h2 id="svg-hooks">svg-hooks<a class="headerlink" href="#svg-hooks" title="Permanent link">¶</a></h2> <p>Set up the interface between FreeType and an extern SVG rendering library like ‘librsvg’. All details on the function hooks can be found in section ‘<a href="ft2-svg_fonts.html#svg_fonts">OpenType SVG Fonts</a>’.</p> <h4>example</h4> <p>The following example code expects that the four hook functions <code>svg_*</code> are defined elsewhere. Error handling is omitted, too. <div class="highlight"><pre><span></span><code> FT_Library library; SVG_RendererHooks hooks = { (SVG_Lib_Init_Func)svg_init, (SVG_Lib_Free_Func)svg_free, (SVG_Lib_Render_Func)svg_render, (SVG_Lib_Preset_Slot_Func)svg_preset_slot }; FT_Init_FreeType( &library ); FT_Property_Set( library, "ot-svg", "svg-hooks", &hooks ); </code></pre></div></p> <h4>since</h4> <p>2.12</p> <hr> <h2 id="glyph-to-script-map">glyph-to-script-map<a class="headerlink" href="#glyph-to-script-map" title="Permanent link">¶</a></h2> <p><strong>Experimental only</strong></p> <p>The auto-hinter provides various script modules to hint glyphs. Examples of supported scripts are Latin or CJK. Before a glyph is auto-hinted, the Unicode character map of the font gets examined, and the script is then determined based on Unicode character ranges, see below.</p> <p>OpenType fonts, however, often provide much more glyphs than character codes (small caps, superscripts, ligatures, swashes, etc.), to be controlled by so-called ‘features’. Handling OpenType features can be quite complicated and thus needs a separate library on top of FreeType.</p> <p>The mapping between glyph indices and scripts (in the auto-hinter sense, see the <code><a href="ft2-properties.html#ft_autohinter_script_xxx">FT_AUTOHINTER_SCRIPT_XXX</a></code> values) is stored as an array with <code>num_glyphs</code> elements, as found in the font's <code><a href="ft2-base_interface.html#ft_face">FT_Face</a></code> structure. The <code>glyph-to-script-map</code> property returns a pointer to this array, which can be modified as needed. Note that the modification should happen before the first glyph gets processed by the auto-hinter so that the global analysis of the font shapes actually uses the modified mapping.</p> <h4>example</h4> |
︙ | ︙ | |||
1876 1877 1878 1879 1880 1881 1882 | <footer class="md-footer"> <nav class="md-footer__inner md-grid" aria-label="Footer"> | | | | 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 | <footer class="md-footer"> <nav class="md-footer__inner md-grid" aria-label="Footer"> <a href="ft2-ot_svg_driver.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: The SVG driver" rel="prev"> <div class="md-footer__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> </div> <div class="md-footer__title"> <div class="md-ellipsis"> <span class="md-footer__direction"> Previous </span> The SVG driver </div> </div> </a> <a href="ft2-parameter_tags.html" class="md-footer__link md-footer__link--next" aria-label="Next: Parameter Tags" rel="next"> |
︙ | ︙ | |||
1913 1914 1915 1916 1917 1918 1919 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-quick_advance.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Quick retrieval of advance values - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Quick retrieval of advance values |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1334 1335 1336 1337 1338 1339 1340 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-raster.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Scanline Converter - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Scanline Converter |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1746 1747 1748 1749 1750 1751 1752 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-sfnt_names.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>SFNT Names - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> SFNT Names |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
613 614 615 616 617 618 619 620 621 622 623 624 625 626 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
722 723 724 725 726 727 728 729 730 731 732 733 734 735 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1439 1440 1441 1442 1443 1444 1445 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-sizes_management.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Size Management - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Size Management |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
599 600 601 602 603 604 605 606 607 608 609 610 611 612 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
708 709 710 711 712 713 714 715 716 717 718 719 720 721 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1313 1314 1315 1316 1317 1318 1319 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Added jni/freetype/docs/reference/ft2-svg_fonts.html.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>OpenType SVG Fonts - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> <meta name="theme-color" content="#4cae4f"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Serif:300,400,400i,700%7CRoboto+Mono&display=fallback"> <style>:root{--md-text-font-family:"Noto Serif";--md-code-font-family:"Roboto Mono"}</style> <link rel="stylesheet" href="stylesheets/extra.css"> </head> <body dir="ltr" data-md-color-scheme="" data-md-color-primary="green" data-md-color-accent="green"> <script>function __prefix(e){return new URL(".",location).pathname+"."+e}function __get(e,t=localStorage){return JSON.parse(t.getItem(__prefix(e)))}</script> <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> <label class="md-overlay" for="__drawer"></label> <div data-md-component="skip"> <a href="#opentype-svg-fonts" class="md-skip"> Skip to content </a> </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> OpenType SVG Fonts </span> </div> </div> </div> <label class="md-header__button md-icon" for="__search"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg> </label> <div class="md-search" data-md-component="search" role="dialog"> <label class="md-search__overlay" for="__search"></label> <div class="md-search__inner" role="search"> <form class="md-search__form" name="search"> <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required> <label class="md-search__icon md-icon" for="__search"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> </label> <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg> </button> </form> <div class="md-search__output"> <div class="md-search__scrollwrap" data-md-scrollfix> <div class="md-search-result" data-md-component="search-result"> <div class="md-search-result__meta"> Initializing search </div> <ol class="md-search-result__list"></ol> </div> </div> </div> </div> </div> </nav> </header> <div class="md-container" data-md-component="container"> <main class="md-main" data-md-component="main"> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="index.html" class="md-nav__link"> TOC </a> </li> <li class="md-nav__item"> <a href="ft2-index.html" class="md-nav__link"> Index </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" > <label class="md-nav__link" for="__nav_3"> General Remarks <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="General Remarks" data-md-level="1"> <label class="md-nav__title" for="__nav_3"> <span class="md-nav__icon md-icon"></span> General Remarks </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-preamble.html" class="md-nav__link"> Preamble </a> </li> <li class="md-nav__item"> <a href="ft2-header_inclusion.html" class="md-nav__link"> FreeType's header inclusion scheme </a> </li> <li class="md-nav__item"> <a href="ft2-user_allocation.html" class="md-nav__link"> User allocation </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" > <label class="md-nav__link" for="__nav_4"> Core API <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Core API" data-md-level="1"> <label class="md-nav__title" for="__nav_4"> <span class="md-nav__icon md-icon"></span> Core API </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-version.html" class="md-nav__link"> FreeType Version </a> </li> <li class="md-nav__item"> <a href="ft2-basic_types.html" class="md-nav__link"> Basic Data Types </a> </li> <li class="md-nav__item"> <a href="ft2-base_interface.html" class="md-nav__link"> Base Interface </a> </li> <li class="md-nav__item"> <a href="ft2-glyph_variants.html" class="md-nav__link"> Unicode Variation Sequences </a> </li> <li class="md-nav__item"> <a href="ft2-color_management.html" class="md-nav__link"> Glyph Color Management </a> </li> <li class="md-nav__item"> <a href="ft2-layer_management.html" class="md-nav__link"> Glyph Layer Management </a> </li> <li class="md-nav__item"> <a href="ft2-glyph_management.html" class="md-nav__link"> Glyph Management </a> </li> <li class="md-nav__item"> <a href="ft2-mac_specific.html" class="md-nav__link"> Mac Specific Interface </a> </li> <li class="md-nav__item"> <a href="ft2-sizes_management.html" class="md-nav__link"> Size Management </a> </li> <li class="md-nav__item"> <a href="ft2-header_file_macros.html" class="md-nav__link"> Header File Macros </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" checked> <label class="md-nav__link" for="__nav_5"> Format-Specific API <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Format-Specific API" data-md-level="1"> <label class="md-nav__title" for="__nav_5"> <span class="md-nav__icon md-icon"></span> Format-Specific API </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-multiple_masters.html" class="md-nav__link"> Multiple Masters </a> </li> <li class="md-nav__item"> <a href="ft2-truetype_tables.html" class="md-nav__link"> TrueType Tables </a> </li> <li class="md-nav__item"> <a href="ft2-type1_tables.html" class="md-nav__link"> Type 1 Tables </a> </li> <li class="md-nav__item"> <a href="ft2-sfnt_names.html" class="md-nav__link"> SFNT Names </a> </li> <li class="md-nav__item"> <a href="ft2-bdf_fonts.html" class="md-nav__link"> BDF and PCF Files </a> </li> <li class="md-nav__item"> <a href="ft2-cid_fonts.html" class="md-nav__link"> CID Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-pfr_fonts.html" class="md-nav__link"> PFR Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-winfnt_fonts.html" class="md-nav__link"> Window FNT Files </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc"> <label class="md-nav__link md-nav__link--active" for="__toc"> OpenType SVG Fonts <span class="md-nav__icon md-icon"></span> </label> <a href="ft2-svg_fonts.html" class="md-nav__link md-nav__link--active"> OpenType SVG Fonts </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> <li class="md-nav__item"> <a href="#synopsis" class="md-nav__link"> Synopsis </a> </li> <li class="md-nav__item"> <a href="#svg_lib_init_func" class="md-nav__link"> SVG_Lib_Init_Func </a> </li> <li class="md-nav__item"> <a href="#svg_lib_free_func" class="md-nav__link"> SVG_Lib_Free_Func </a> </li> <li class="md-nav__item"> <a href="#svg_lib_render_func" class="md-nav__link"> SVG_Lib_Render_Func </a> </li> <li class="md-nav__item"> <a href="#svg_lib_preset_slot_func" class="md-nav__link"> SVG_Lib_Preset_Slot_Func </a> </li> <li class="md-nav__item"> <a href="#svg_rendererhooks" class="md-nav__link"> SVG_RendererHooks </a> </li> <li class="md-nav__item"> <a href="#ft_svg_documentrec" class="md-nav__link"> FT_SVG_DocumentRec </a> </li> <li class="md-nav__item"> <a href="#ft_svg_document" class="md-nav__link"> FT_SVG_Document </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> <li class="md-nav__item"> <a href="ft2-gasp_table.html" class="md-nav__link"> Gasp Table </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" > <label class="md-nav__link" for="__nav_6"> Controlling FreeType Modules <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Controlling FreeType Modules" data-md-level="1"> <label class="md-nav__title" for="__nav_6"> <span class="md-nav__icon md-icon"></span> Controlling FreeType Modules </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-auto_hinter.html" class="md-nav__link"> The auto-hinter </a> </li> <li class="md-nav__item"> <a href="ft2-cff_driver.html" class="md-nav__link"> The CFF driver </a> </li> <li class="md-nav__item"> <a href="ft2-t1_cid_driver.html" class="md-nav__link"> The Type 1 and CID drivers </a> </li> <li class="md-nav__item"> <a href="ft2-tt_driver.html" class="md-nav__link"> The TrueType driver </a> </li> <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> <a href="ft2-properties.html" class="md-nav__link"> Driver properties </a> </li> <li class="md-nav__item"> <a href="ft2-parameter_tags.html" class="md-nav__link"> Parameter Tags </a> </li> <li class="md-nav__item"> <a href="ft2-lcd_rendering.html" class="md-nav__link"> Subpixel Rendering </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" > <label class="md-nav__link" for="__nav_7"> Cache Sub-System <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Cache Sub-System" data-md-level="1"> <label class="md-nav__title" for="__nav_7"> <span class="md-nav__icon md-icon"></span> Cache Sub-System </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-cache_subsystem.html" class="md-nav__link"> Cache Sub-System </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8" type="checkbox" id="__nav_8" > <label class="md-nav__link" for="__nav_8"> Support API <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Support API" data-md-level="1"> <label class="md-nav__title" for="__nav_8"> <span class="md-nav__icon md-icon"></span> Support API </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-computations.html" class="md-nav__link"> Computations </a> </li> <li class="md-nav__item"> <a href="ft2-list_processing.html" class="md-nav__link"> List Processing </a> </li> <li class="md-nav__item"> <a href="ft2-outline_processing.html" class="md-nav__link"> Outline Processing </a> </li> <li class="md-nav__item"> <a href="ft2-quick_advance.html" class="md-nav__link"> Quick retrieval of advance values </a> </li> <li class="md-nav__item"> <a href="ft2-bitmap_handling.html" class="md-nav__link"> Bitmap Handling </a> </li> <li class="md-nav__item"> <a href="ft2-raster.html" class="md-nav__link"> Scanline Converter </a> </li> <li class="md-nav__item"> <a href="ft2-glyph_stroker.html" class="md-nav__link"> Glyph Stroker </a> </li> <li class="md-nav__item"> <a href="ft2-system_interface.html" class="md-nav__link"> System Interface </a> </li> <li class="md-nav__item"> <a href="ft2-module_management.html" class="md-nav__link"> Module Management </a> </li> <li class="md-nav__item"> <a href="ft2-gzip.html" class="md-nav__link"> GZIP Streams </a> </li> <li class="md-nav__item"> <a href="ft2-lzw.html" class="md-nav__link"> LZW Streams </a> </li> <li class="md-nav__item"> <a href="ft2-bzip2.html" class="md-nav__link"> BZIP2 Streams </a> </li> <li class="md-nav__item"> <a href="ft2-debugging_apis.html" class="md-nav__link"> External Debugging APIs </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_9" type="checkbox" id="__nav_9" > <label class="md-nav__link" for="__nav_9"> Error Codes <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Error Codes" data-md-level="1"> <label class="md-nav__title" for="__nav_9"> <span class="md-nav__icon md-icon"></span> Error Codes </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-error_enumerations.html" class="md-nav__link"> Error Enumerations </a> </li> <li class="md-nav__item"> <a href="ft2-error_code_values.html" class="md-nav__link"> Error Code Values </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_10" type="checkbox" id="__nav_10" > <label class="md-nav__link" for="__nav_10"> Miscellaneous <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Miscellaneous" data-md-level="1"> <label class="md-nav__title" for="__nav_10"> <span class="md-nav__icon md-icon"></span> Miscellaneous </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ft2-gx_validation.html" class="md-nav__link"> TrueTypeGX/AAT Validation </a> </li> <li class="md-nav__item"> <a href="ft2-incremental.html" class="md-nav__link"> Incremental Loading </a> </li> <li class="md-nav__item"> <a href="ft2-truetype_engine.html" class="md-nav__link"> The TrueType Engine </a> </li> <li class="md-nav__item"> <a href="ft2-ot_validation.html" class="md-nav__link"> OpenType Validation </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> <li class="md-nav__item"> <a href="#synopsis" class="md-nav__link"> Synopsis </a> </li> <li class="md-nav__item"> <a href="#svg_lib_init_func" class="md-nav__link"> SVG_Lib_Init_Func </a> </li> <li class="md-nav__item"> <a href="#svg_lib_free_func" class="md-nav__link"> SVG_Lib_Free_Func </a> </li> <li class="md-nav__item"> <a href="#svg_lib_render_func" class="md-nav__link"> SVG_Lib_Render_Func </a> </li> <li class="md-nav__item"> <a href="#svg_lib_preset_slot_func" class="md-nav__link"> SVG_Lib_Preset_Slot_Func </a> </li> <li class="md-nav__item"> <a href="#svg_rendererhooks" class="md-nav__link"> SVG_RendererHooks </a> </li> <li class="md-nav__item"> <a href="#ft_svg_documentrec" class="md-nav__link"> FT_SVG_DocumentRec </a> </li> <li class="md-nav__item"> <a href="#ft_svg_document" class="md-nav__link"> FT_SVG_Document </a> </li> </ul> </nav> </div> </div> </div> <div class="md-content" data-md-component="content"> <article class="md-content__inner md-typeset"> <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » <a href="index.html#format-specific-api">Format-Specific API</a> » OpenType SVG Fonts</p> <hr /> <h1 id="opentype-svg-fonts">OpenType SVG Fonts<a class="headerlink" href="#opentype-svg-fonts" title="Permanent link">¶</a></h1> <h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</a></h2> <p>This section describes the four hooks necessary to render SVG ‘documents’ that are contained in an OpenType font's ‘SVG ’ table.</p> <p>For more information on the implementation, see our standard hooks based on ‘librsvg’ in the <a href="https://gitlab.freedesktop.org/freetype/freetype-demos">FreeType Demo Programs</a> repository.</p> <h2 id="svg_lib_init_func">SVG_Lib_Init_Func<a class="headerlink" href="#svg_lib_init_func" title="Permanent link">¶</a></h2> <p>Defined in FT_OTSVG_H (freetype/otsvg.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <a href="ft2-basic_types.html#ft_error">FT_Error</a> (*<b>SVG_Lib_Init_Func</b>)( <a href="ft2-basic_types.html#ft_pointer">FT_Pointer</a> *data_pointer ); </code></pre></div> <p>A callback that is called when the first OT-SVG glyph is rendered in the lifetime of an <code><a href="ft2-base_interface.html#ft_library">FT_Library</a></code> object. In a typical implementation, one would want to allocate a structure and point the <code>data_pointer</code> to it and perform any library initializations that might be needed.</p> <h4>inout</h4> <table class="fields"> <tr><td class="val" id="data_pointer">data_pointer</td><td class="desc"> <p>The SVG rendering module stores a pointer variable that can be used by clients to store any data that needs to be shared across different hooks. <code>data_pointer</code> is essentially a pointer to that pointer such that it can be written to as well as read from.</p> </td></tr> </table> <h4>return</h4> <p>FreeType error code. 0 means success.</p> <h4>since</h4> <p>2.12</p> <hr> <h2 id="svg_lib_free_func">SVG_Lib_Free_Func<a class="headerlink" href="#svg_lib_free_func" title="Permanent link">¶</a></h2> <p>Defined in FT_OTSVG_H (freetype/otsvg.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">void</span> (*<b>SVG_Lib_Free_Func</b>)( <a href="ft2-basic_types.html#ft_pointer">FT_Pointer</a> *data_pointer ); </code></pre></div> <p>A callback that is called when the <code>ot-svg</code> module is being freed. It is only called if the init hook was called earlier. This means that neither the init nor the free hook is called if no OT-SVG glyph is rendered.</p> <p>In a typical implementation, one would want to free any state structure that was allocated in the init hook and perform any library-related closure that might be needed.</p> <h4>inout</h4> <table class="fields"> <tr><td class="val" id="data_pointer">data_pointer</td><td class="desc"> <p>The SVG rendering module stores a pointer variable that can be used by clients to store any data that needs to be shared across different hooks. <code>data_pointer</code> is essentially a pointer to that pointer such that it can be written to as well as read from.</p> </td></tr> </table> <h4>since</h4> <p>2.12</p> <hr> <h2 id="svg_lib_render_func">SVG_Lib_Render_Func<a class="headerlink" href="#svg_lib_render_func" title="Permanent link">¶</a></h2> <p>Defined in FT_OTSVG_H (freetype/otsvg.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <a href="ft2-basic_types.html#ft_error">FT_Error</a> (*<b>SVG_Lib_Render_Func</b>)( <a href="ft2-base_interface.html#ft_glyphslot">FT_GlyphSlot</a> slot, <a href="ft2-basic_types.html#ft_pointer">FT_Pointer</a> *data_pointer ); </code></pre></div> <p>A callback that is called to render an OT-SVG glyph. This callback hook is called right after the preset hook <code><a href="ft2-svg_fonts.html#svg_lib_preset_slot_func">SVG_Lib_Preset_Slot_Func</a></code> has been called with <code>cache</code> set to <code>TRUE</code>. The data necessary to render is available through the handle <code><a href="ft2-svg_fonts.html#ft_svg_document">FT_SVG_Document</a></code>, which is set in the <code>other</code> field of <code><a href="ft2-base_interface.html#ft_glyphslotrec">FT_GlyphSlotRec</a></code>.</p> <p>The render hook is expected to render the SVG glyph to the bitmap buffer that is allocated already at <code>slot->bitmap.buffer</code>. It also sets the <code>num_grays</code> value as well as <code>slot->format</code>.</p> <h4>input</h4> <table class="fields"> <tr><td class="val" id="slot">slot</td><td class="desc"> <p>The slot to render.</p> </td></tr> </table> <h4>inout</h4> <table class="fields"> <tr><td class="val" id="data_pointer">data_pointer</td><td class="desc"> <p>The SVG rendering module stores a pointer variable that can be used by clients to store any data that needs to be shared across different hooks. <code>data_pointer</code> is essentially a pointer to that pointer such that it can be written to as well as read from.</p> </td></tr> </table> <h4>return</h4> <p>FreeType error code. 0 means success.</p> <h4>since</h4> <p>2.12</p> <hr> <h2 id="svg_lib_preset_slot_func">SVG_Lib_Preset_Slot_Func<a class="headerlink" href="#svg_lib_preset_slot_func" title="Permanent link">¶</a></h2> <p>Defined in FT_OTSVG_H (freetype/otsvg.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <a href="ft2-basic_types.html#ft_error">FT_Error</a> (*<b>SVG_Lib_Preset_Slot_Func</b>)( <a href="ft2-base_interface.html#ft_glyphslot">FT_GlyphSlot</a> slot, <a href="ft2-basic_types.html#ft_bool">FT_Bool</a> cache, <a href="ft2-basic_types.html#ft_pointer">FT_Pointer</a> *state ); </code></pre></div> <p>A callback that is called to preset the glyph slot. It is called from two places.</p> <ol> <li> <p>When <code>FT_Load_Glyph</code> needs to preset the glyph slot.</p> </li> <li> <p>Right before the <code>svg</code> module calls the render callback hook.</p> </li> </ol> <p>When it is the former, the argument <code>cache</code> is set to <code>FALSE</code>. When it is the latter, the argument <code>cache</code> is set to <code>TRUE</code>. This distinction has been made because many calculations that are necessary for presetting a glyph slot are the same needed later for the render callback hook. Thus, if <code>cache</code> is <code>TRUE</code>, the hook can <em>cache</em> those calculations in a memory block referenced by the state pointer.</p> <p>This hook is expected to preset the slot by setting parameters such as <code>bitmap_left</code>, <code>bitmap_top</code>, <code>width</code>, <code>rows</code>, <code>pitch</code>, and <code>pixel_mode</code>. It is also expected to set all the metrics for the slot including the vertical advance if it is not already set. Typically, fonts have horizontal advances but not vertical ones. If those are available, they had already been set, otherwise they have to be estimated and set manually. The hook must take into account the transformations that have been set, and translate the transformation matrices into the SVG coordinate system, as the original matrix is intended for the TTF/CFF coordinate system.</p> <h4>input</h4> <table class="fields"> <tr><td class="val" id="slot">slot</td><td class="desc"> <p>The glyph slot that has the SVG document loaded.</p> </td></tr> <tr><td class="val" id="cache">cache</td><td class="desc"> <p>See description.</p> </td></tr> </table> <h4>inout</h4> <table class="fields"> <tr><td class="val" id="data_pointer">data_pointer</td><td class="desc"> <p>The SVG rendering module stores a pointer variable that can be used by clients to store any data that needs to be shared across different hooks. <code>data_pointer</code> is essentially a pointer to that pointer such that it can be written to as well as read from.</p> </td></tr> </table> <h4>return</h4> <p>FreeType error code. 0 means success.</p> <h4>since</h4> <p>2.12</p> <hr> <h2 id="svg_rendererhooks">SVG_RendererHooks<a class="headerlink" href="#svg_rendererhooks" title="Permanent link">¶</a></h2> <p>Defined in FT_OTSVG_H (freetype/otsvg.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> SVG_RendererHooks_ { <a href="ft2-svg_fonts.html#svg_lib_init_func">SVG_Lib_Init_Func</a> init_svg; <a href="ft2-svg_fonts.html#svg_lib_free_func">SVG_Lib_Free_Func</a> free_svg; <a href="ft2-svg_fonts.html#svg_lib_render_func">SVG_Lib_Render_Func</a> render_svg; <a href="ft2-svg_fonts.html#svg_lib_preset_slot_func">SVG_Lib_Preset_Slot_Func</a> preset_slot; } <b>SVG_RendererHooks</b>; </code></pre></div> <p>A structure that stores the four hooks needed to render OT-SVG glyphs properly. The structure is publicly used to set the hooks via the <code><a href="ft2-properties.html#svg-hooks">svg-hooks</a></code> driver property.</p> <p>The behavior of each hook is described in its documentation. One thing to note is that the preset hook and the render hook often need to do the same operations; therefore, it's better to cache the intermediate data in a state structure to avoid calculating it twice. For example, in the preset hook one can draw the glyph on a recorder surface and later create a bitmap surface from it in the render hook.</p> <p>All four hooks must be non-NULL.</p> <h4>fields</h4> <table class="fields"> <tr><td class="val" id="init_svg">init_svg</td><td class="desc"> <p>The initialization hook.</p> </td></tr> <tr><td class="val" id="free_svg">free_svg</td><td class="desc"> <p>The cleanup hook.</p> </td></tr> <tr><td class="val" id="render_hook">render_hook</td><td class="desc"> <p>The render hook.</p> </td></tr> <tr><td class="val" id="preset_slot">preset_slot</td><td class="desc"> <p>The preset hook.</p> </td></tr> </table> <h4>since</h4> <p>2.12</p> <hr> <h2 id="ft_svg_documentrec">FT_SVG_DocumentRec<a class="headerlink" href="#ft_svg_documentrec" title="Permanent link">¶</a></h2> <p>Defined in FT_OTSVG_H (freetype/otsvg.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_SVG_DocumentRec_ { <a href="ft2-basic_types.html#ft_byte">FT_Byte</a>* svg_document; <a href="ft2-basic_types.html#ft_ulong">FT_ULong</a> svg_document_length; <a href="ft2-base_interface.html#ft_size_metrics">FT_Size_Metrics</a> metrics; <a href="ft2-basic_types.html#ft_ushort">FT_UShort</a> units_per_EM; <a href="ft2-basic_types.html#ft_ushort">FT_UShort</a> start_glyph_id; <a href="ft2-basic_types.html#ft_ushort">FT_UShort</a> end_glyph_id; <a href="ft2-basic_types.html#ft_matrix">FT_Matrix</a> transform; <a href="ft2-basic_types.html#ft_vector">FT_Vector</a> delta; } <b>FT_SVG_DocumentRec</b>; </code></pre></div> <p>A structure that models one SVG document.</p> <h4>fields</h4> <table class="fields"> <tr><td class="val" id="svg_document">svg_document</td><td class="desc"> <p>A pointer to the SVG document.</p> </td></tr> <tr><td class="val" id="svg_document_length">svg_document_length</td><td class="desc"> <p>The length of <code>svg_document</code>.</p> </td></tr> <tr><td class="val" id="metrics">metrics</td><td class="desc"> <p>A metrics object storing the size information.</p> </td></tr> <tr><td class="val" id="units_per_em">units_per_EM</td><td class="desc"> <p>The size of the EM square.</p> </td></tr> <tr><td class="val" id="start_glyph_id">start_glyph_id</td><td class="desc"> <p>The first glyph ID in the glyph range covered by this document.</p> </td></tr> <tr><td class="val" id="end_glyph_id">end_glyph_id</td><td class="desc"> <p>The last glyph ID in the glyph range covered by this document.</p> </td></tr> <tr><td class="val" id="transform">transform</td><td class="desc"> <p>A 2x2 transformation matrix to apply to the glyph while rendering it.</p> </td></tr> <tr><td class="val" id="delta">delta</td><td class="desc"> <p>The translation to apply to the glyph while rendering.</p> </td></tr> </table> <h4>note</h4> <p>When an <code><a href="ft2-base_interface.html#ft_glyphslot">FT_GlyphSlot</a></code> object <code>slot</code> is passed down to a renderer, the renderer can only access the <code>metrics</code> and <code>units_per_EM</code> fields via <code>slot->face</code>. However, when <code><a href="ft2-glyph_management.html#ft_glyph_to_bitmap">FT_Glyph_To_Bitmap</a></code> sets up a dummy object, it has no way to set a <code>face</code> object. Thus, metrics information and <code>units_per_EM</code> (which is necessary for OT-SVG) has to be stored separately.</p> <h4>since</h4> <p>2.12</p> <hr> <h2 id="ft_svg_document">FT_SVG_Document<a class="headerlink" href="#ft_svg_document" title="Permanent link">¶</a></h2> <p>Defined in FT_OTSVG_H (freetype/otsvg.h).</p> <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_SVG_DocumentRec_* <b>FT_SVG_Document</b>; FT_END_HEADER #<span class="keyword">endif</span> /* OTSVG_H_ */ /* END */ </code></pre></div> <p>A handle to an <code><a href="ft2-svg_fonts.html#ft_svg_documentrec">FT_SVG_DocumentRec</a></code> object.</p> <h4>since</h4> <p>2.12</p> <hr> </article> </div> </div> </main> <footer class="md-footer"> <nav class="md-footer__inner md-grid" aria-label="Footer"> <a href="ft2-winfnt_fonts.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: Window FNT Files" rel="prev"> <div class="md-footer__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> </div> <div class="md-footer__title"> <div class="md-ellipsis"> <span class="md-footer__direction"> Previous </span> Window FNT Files </div> </div> </a> <a href="ft2-font_formats.html" class="md-footer__link md-footer__link--next" aria-label="Next: Font Formats" rel="next"> <div class="md-footer__title"> <div class="md-ellipsis"> <span class="md-footer__direction"> Next </span> Font Formats </div> </div> <div class="md-footer__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg> </div> </a> </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> </div> </div> </div> </footer> </div> <div class="md-dialog" data-md-component="dialog"> <div class="md-dialog__inner md-typeset"></div> </div> <script id="__config" type="application/json">{"base": ".", "features": [], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing", "select.version.title": "Select version"}, "search": "assets/javascripts/workers/search.477d984a.min.js", "version": null}</script> <script src="assets/javascripts/bundle.82b56eb2.min.js"></script> <script src="javascripts/extra.js"></script> </body> </html> |
Changes to jni/freetype/docs/reference/ft2-system_interface.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>System Interface - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> System Interface |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1583 1584 1585 1586 1587 1588 1589 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-t1_cid_driver.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>The Type 1 and CID drivers - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> The Type 1 and CID drivers |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
687 688 689 690 691 692 693 694 695 696 697 698 699 700 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1201 1202 1203 1204 1205 1206 1207 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-truetype_engine.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>The TrueType Engine - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> The TrueType Engine |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
645 646 647 648 649 650 651 652 653 654 655 656 657 658 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1276 1277 1278 1279 1280 1281 1282 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-truetype_tables.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>TrueType Tables - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> TrueType Tables |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
746 747 748 749 750 751 752 753 754 755 756 757 758 759 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
855 856 857 858 859 860 861 862 863 864 865 866 867 868 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
3181 3182 3183 3184 3185 3186 3187 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-tt_driver.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>The TrueType driver - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> The TrueType driver |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
536 537 538 539 540 541 542 543 544 545 546 547 548 549 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
687 688 689 690 691 692 693 694 695 696 697 698 699 700 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1140 1141 1142 1143 1144 1145 1146 | <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » <a href="index.html#controlling-freetype-modules">Controlling FreeType Modules</a> » The TrueType driver</p> <hr /> <h1 id="the-truetype-driver">The TrueType driver<a class="headerlink" href="#the-truetype-driver" title="Permanent link">¶</a></h1> <h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</a></h2> | | < | | | 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 | <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » <a href="index.html#controlling-freetype-modules">Controlling FreeType Modules</a> » The TrueType driver</p> <hr /> <h1 id="the-truetype-driver">The TrueType driver<a class="headerlink" href="#the-truetype-driver" title="Permanent link">¶</a></h1> <h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</a></h2> <p>While FreeType's TrueType driver doesn't expose API functions by itself, it is possible to control its behaviour with <code><a href="ft2-module_management.html#ft_property_set">FT_Property_Set</a></code> and <code><a href="ft2-module_management.html#ft_property_get">FT_Property_Get</a></code>.</p> <p>The TrueType driver's module name is ‘truetype’; a single property <code><a href="ft2-properties.html#interpreter-version">interpreter-version</a></code> is available, as documented in the ‘<a href="ft2-properties.html#properties">Driver properties</a>’ section.</p> <p>To help understand the differences between interpreter versions, we introduce a list of definitions, kindly provided by Greg Hitchcock.</p> <p><em>Bi-Level Rendering</em></p> <p>Monochromatic rendering, exclusively used in the early days of TrueType by both Apple and Microsoft. Microsoft's GDI interface supported hinting of the right-side bearing point, such that the advance width could be non-linear. Most often this was done to achieve some level of glyph symmetry. To enable reasonable performance (e.g., not having to run hinting on all glyphs just to get the widths) there was a bit in the head table indicating if the side bearing was hinted, and additional tables, ‘hdmx’ and ‘LTSH’, to cache hinting widths across multiple sizes and device aspect ratios.</p> <p><em>Font Smoothing</em></p> <p>Microsoft's GDI implementation of anti-aliasing. Not traditional anti-aliasing as the outlines were hinted before the sampling. The widths matched the bi-level rendering.</p> <p><em>ClearType Rendering</em></p> <p>Technique that uses physical subpixels to improve rendering on LCD (and other) displays. Because of the higher resolution, many methods of improving symmetry in glyphs through hinting the right-side bearing were no longer necessary. This lead to what GDI calls ‘natural widths’ ClearType, see <a href="http://rastertragedy.com/RTRCh4.htm#Sec21">http://rastertragedy.com/RTRCh4.htm#Sec21</a>. Since hinting has extra resolution, most non-linearity went away, but it is still possible for hints to change the advance widths in this mode.</p> <p><em>ClearType Compatible Widths</em></p> |
︙ | ︙ | |||
1214 1215 1216 1217 1218 1219 1220 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-type1_tables.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Type 1 Tables - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Type 1 Tables |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
711 712 713 714 715 716 717 718 719 720 721 722 723 724 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
820 821 822 823 824 825 826 827 828 829 830 831 832 833 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1605 1606 1607 1608 1609 1610 1611 | <p>PostScript face handle.</p> </td></tr> </table> <h4>output</h4> <table class="fields"> <tr><td class="val" id="afont_info">afont_info</td><td class="desc"> | | > > > | > > > > | | > > > > > > > | 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 | <p>PostScript face handle.</p> </td></tr> </table> <h4>output</h4> <table class="fields"> <tr><td class="val" id="afont_info">afont_info</td><td class="desc"> <p>A pointer to a <code><a href="ft2-type1_tables.html#ps_fontinforec">PS_FontInfoRec</a></code> object.</p> </td></tr> </table> <h4>return</h4> <p>FreeType error code. 0 means success.</p> <h4>note</h4> <p>String pointers within the <code><a href="ft2-type1_tables.html#ps_fontinforec">PS_FontInfoRec</a></code> structure are owned by the face and don't need to be freed by the caller. Missing entries in the font's FontInfo dictionary are represented by <code>NULL</code> pointers.</p> <p>The following font formats support this feature: ‘Type 1’, ‘Type 42’, ‘CFF’, ‘CID Type 1’. For other font formats this function returns the <code>FT_Err_Invalid_Argument</code> error code.</p> <h4>example</h4> <div class="highlight"><pre><span></span><code> PS_FontInfoRec font_info; error = FT_Get_PS_Font_Info( face, &font_info ); ... </code></pre></div> <hr> <h2 id="ft_get_ps_font_private">FT_Get_PS_Font_Private<a class="headerlink" href="#ft_get_ps_font_private" title="Permanent link">¶</a></h2> <p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p> <div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> ) <b>FT_Get_PS_Font_Private</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a> face, <a href="ft2-type1_tables.html#ps_private">PS_Private</a> afont_private ); </code></pre></div> <p>Retrieve the <code><a href="ft2-type1_tables.html#ps_privaterec">PS_PrivateRec</a></code> structure corresponding to a given PostScript font.</p> <h4>input</h4> <table class="fields"> <tr><td class="val" id="face">face</td><td class="desc"> <p>PostScript face handle.</p> </td></tr> </table> <h4>output</h4> <table class="fields"> <tr><td class="val" id="afont_private">afont_private</td><td class="desc"> <p>A pointer to a <code><a href="ft2-type1_tables.html#ps_privaterec">PS_PrivateRec</a></code> object.</p> </td></tr> </table> <h4>return</h4> <p>FreeType error code. 0 means success.</p> <h4>note</h4> <p>The string pointers within the <code><a href="ft2-type1_tables.html#ps_privaterec">PS_PrivateRec</a></code> structure are owned by the face and don't need to be freed by the caller.</p> <p>Only the ‘Type 1’ font format supports this feature. For other font formats this function returns the <code>FT_Err_Invalid_Argument</code> error code.</p> <h4>example</h4> <div class="highlight"><pre><span></span><code> PS_PrivateRec font_private; error = FT_Get_PS_Font_Private( face, &font_private ); ... </code></pre></div> <hr> <h2 id="ft_get_ps_font_value">FT_Get_PS_Font_Value<a class="headerlink" href="#ft_get_ps_font_value" title="Permanent link">¶</a></h2> <p>Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h).</p> <div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_long">FT_Long</a> ) <b>FT_Get_PS_Font_Value</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a> face, <a href="ft2-type1_tables.html#ps_dict_keys">PS_Dict_Keys</a> key, |
︙ | ︙ | |||
2132 2133 2134 2135 2136 2137 2138 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-user_allocation.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>User allocation - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> User allocation |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
578 579 580 581 582 583 584 585 586 587 588 589 590 591 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
687 688 689 690 691 692 693 694 695 696 697 698 699 700 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1197 1198 1199 1200 1201 1202 1203 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-version.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>FreeType Version - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> FreeType Version |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
606 607 608 609 610 611 612 613 614 615 616 617 618 619 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
715 716 717 718 719 720 721 722 723 724 725 726 727 728 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1290 1291 1292 1293 1294 1295 1296 | <p>2.3.5</p> <hr> <h2 id="freetype_xxx">FREETYPE_XXX<a class="headerlink" href="#freetype_xxx" title="Permanent link">¶</a></h2> <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-version.html#freetype_major">FREETYPE_MAJOR</a> 2 | | | | 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 | <p>2.3.5</p> <hr> <h2 id="freetype_xxx">FREETYPE_XXX<a class="headerlink" href="#freetype_xxx" title="Permanent link">¶</a></h2> <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p> <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-version.html#freetype_major">FREETYPE_MAJOR</a> 2 #<span class="keyword">define</span> <a href="ft2-version.html#freetype_minor">FREETYPE_MINOR</a> 12 #<span class="keyword">define</span> <a href="ft2-version.html#freetype_patch">FREETYPE_PATCH</a> 0 </code></pre></div> <p>These three macros identify the FreeType source code version. Use <code><a href="ft2-version.html#ft_library_version">FT_Library_Version</a></code> to access them at runtime.</p> <h4>values</h4> <table class="fields"> <tr><td class="val" id="freetype_major">FREETYPE_MAJOR</td><td class="desc"> <p>The major version number.</p> |
︙ | ︙ | |||
1368 1369 1370 1371 1372 1373 1374 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/ft2-winfnt_fonts.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>Window FNT Files - FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
78 79 80 81 82 83 84 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> | | | | 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 | </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Window FNT Files |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
606 607 608 609 610 611 612 613 614 615 616 617 618 619 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
715 716 717 718 719 720 721 722 723 724 725 726 727 728 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1409 1410 1411 1412 1413 1414 1415 | PFR Fonts </div> </div> </a> | | | | | 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 | PFR Fonts </div> </div> </a> <a href="ft2-svg_fonts.html" class="md-footer__link md-footer__link--next" aria-label="Next: OpenType SVG Fonts" rel="next"> <div class="md-footer__title"> <div class="md-ellipsis"> <span class="md-footer__direction"> Next </span> OpenType SVG Fonts </div> </div> <div class="md-footer__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg> </div> </a> </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/index.html.
1 2 3 4 5 6 7 8 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> | | | | 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 | <!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="API Reference Documentation for FreeType-2.12.0"> <meta name="author" content="FreeType Contributors"> <link rel="icon" href="images/favico.ico"> <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9"> <title>FreeType-2.12.0 API Reference</title> <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css"> |
︙ | ︙ | |||
67 68 69 70 71 72 73 | <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> <label class="md-overlay" for="__drawer"></label> <div data-md-component="skip"> | | | | | 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 | <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> <label class="md-overlay" for="__drawer"></label> <div data-md-component="skip"> <a href="#freetype-2120-api-reference" class="md-skip"> Skip to content </a> </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> FreeType-2.12.0 API Reference </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> TOC |
︙ | ︙ | |||
157 158 159 160 161 162 163 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> | | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="index.html" title="FreeType-2.12.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.0 API Reference" data-md-component="logo"> <img src="images/favico.ico" alt="logo"> </a> FreeType-2.12.0 API Reference </label> <ul class="md-nav__list" data-md-scrollfix> |
︙ | ︙ | |||
546 547 548 549 550 551 552 553 554 555 556 557 558 559 | </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> | > > > > > > > > > > > > | 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 | </li> <li class="md-nav__item"> <a href="ft2-svg_fonts.html" class="md-nav__link"> OpenType SVG Fonts </a> </li> <li class="md-nav__item"> <a href="ft2-font_formats.html" class="md-nav__link"> Font Formats </a> </li> |
︙ | ︙ | |||
655 656 657 658 659 660 661 662 663 664 665 666 667 668 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> | > > > > > > > > > > > > | 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 | <li class="md-nav__item"> <a href="ft2-pcf_driver.html" class="md-nav__link"> The PCF driver </a> </li> <li class="md-nav__item"> <a href="ft2-ot_svg_driver.html" class="md-nav__link"> The SVG driver </a> </li> <li class="md-nav__item"> |
︙ | ︙ | |||
1091 1092 1093 1094 1095 1096 1097 | <div class="md-content" data-md-component="content"> <article class="md-content__inner md-typeset"> <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » Table of Contents</p> <hr /> | | | 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 | <div class="md-content" data-md-component="content"> <article class="md-content__inner md-typeset"> <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » Table of Contents</p> <hr /> <h1 id="freetype-2120-api-reference">FreeType-2.12.0 API Reference<a class="headerlink" href="#freetype-2120-api-reference" title="Permanent link">¶</a></h1> <h1 id="table-of-contents">Table of Contents<a class="headerlink" href="#table-of-contents" title="Permanent link">¶</a></h1> <h2 id="general-remarks">General Remarks<a class="headerlink" href="#general-remarks" title="Permanent link">¶</a></h2> <table class="toc"> <tr><td class="link"><a href="ft2-preamble.html">Preamble</a></td><td class="desc"> <p>What FreeType is and isn't</p> </td></tr> <tr><td class="link"><a href="ft2-header_inclusion.html">FreeType's header inclusion scheme</a></td><td class="desc"> |
︙ | ︙ | |||
1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 | <p>CID-keyed font-specific API.</p> </td></tr> <tr><td class="link"><a href="ft2-pfr_fonts.html">PFR Fonts</a></td><td class="desc"> <p>PFR/TrueDoc-specific API.</p> </td></tr> <tr><td class="link"><a href="ft2-winfnt_fonts.html">Window FNT Files</a></td><td class="desc"> <p>Windows FNT-specific API.</p> </td></tr> <tr><td class="link"><a href="ft2-font_formats.html">Font Formats</a></td><td class="desc"> <p>Getting the font format.</p> </td></tr> <tr><td class="link"><a href="ft2-gasp_table.html">Gasp Table</a></td><td class="desc"> <p>Retrieving TrueType ‘gasp’ table entries.</p> </td></tr> | > > > | 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 | <p>CID-keyed font-specific API.</p> </td></tr> <tr><td class="link"><a href="ft2-pfr_fonts.html">PFR Fonts</a></td><td class="desc"> <p>PFR/TrueDoc-specific API.</p> </td></tr> <tr><td class="link"><a href="ft2-winfnt_fonts.html">Window FNT Files</a></td><td class="desc"> <p>Windows FNT-specific API.</p> </td></tr> <tr><td class="link"><a href="ft2-svg_fonts.html">OpenType SVG Fonts</a></td><td class="desc"> <p>OT-SVG API between FreeType and an external SVG rendering library.</p> </td></tr> <tr><td class="link"><a href="ft2-font_formats.html">Font Formats</a></td><td class="desc"> <p>Getting the font format.</p> </td></tr> <tr><td class="link"><a href="ft2-gasp_table.html">Gasp Table</a></td><td class="desc"> <p>Retrieving TrueType ‘gasp’ table entries.</p> </td></tr> |
︙ | ︙ | |||
1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 | <p>Controlling the Type 1 and CID driver modules.</p> </td></tr> <tr><td class="link"><a href="ft2-tt_driver.html">The TrueType driver</a></td><td class="desc"> <p>Controlling the TrueType driver module.</p> </td></tr> <tr><td class="link"><a href="ft2-pcf_driver.html">The PCF driver</a></td><td class="desc"> <p>Controlling the PCF driver module.</p> </td></tr> <tr><td class="link"><a href="ft2-properties.html">Driver properties</a></td><td class="desc"> <p>Controlling driver modules.</p> </td></tr> <tr><td class="link"><a href="ft2-parameter_tags.html">Parameter Tags</a></td><td class="desc"> <p>Macros for driver property and font loading parameter tags.</p> </td></tr> | > > > | 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 | <p>Controlling the Type 1 and CID driver modules.</p> </td></tr> <tr><td class="link"><a href="ft2-tt_driver.html">The TrueType driver</a></td><td class="desc"> <p>Controlling the TrueType driver module.</p> </td></tr> <tr><td class="link"><a href="ft2-pcf_driver.html">The PCF driver</a></td><td class="desc"> <p>Controlling the PCF driver module.</p> </td></tr> <tr><td class="link"><a href="ft2-ot_svg_driver.html">The SVG driver</a></td><td class="desc"> <p>Controlling the external rendering of OT-SVG glyphs.</p> </td></tr> <tr><td class="link"><a href="ft2-properties.html">Driver properties</a></td><td class="desc"> <p>Controlling driver modules.</p> </td></tr> <tr><td class="link"><a href="ft2-parameter_tags.html">Parameter Tags</a></td><td class="desc"> <p>Macros for driver property and font loading parameter tags.</p> </td></tr> |
︙ | ︙ | |||
1272 1273 1274 1275 1276 1277 1278 | </td></tr> <tr><td class="link"><a href="ft2-ot_validation.html">OpenType Validation</a></td><td class="desc"> <p>An API to validate OpenType tables.</p> </td></tr> </table> <h2 id="global-index"><a href="ft2-index.html">Global Index</a><a class="headerlink" href="#global-index" title="Permanent link">¶</a></h2> <hr /> | | | 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 | </td></tr> <tr><td class="link"><a href="ft2-ot_validation.html">OpenType Validation</a></td><td class="desc"> <p>An API to validate OpenType tables.</p> </td></tr> </table> <h2 id="global-index"><a href="ft2-index.html">Global Index</a><a class="headerlink" href="#global-index" title="Permanent link">¶</a></h2> <hr /> <div class="timestamp">generated on Thu Mar 31 12:00:59 2022 UTC</div> |
︙ | ︙ | |||
1314 1315 1316 1317 1318 1319 1320 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> | | | 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 | </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-footer-copyright"> <div class="md-footer-copyright__highlight"> Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> |
︙ | ︙ |
Changes to jni/freetype/docs/reference/search/search_index.json.
cannot compute difference between binary files
Changes to jni/freetype/docs/reference/sitemap.xml.
1 2 3 4 | <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>None</loc> | | | | | | | | | | | | | | | | | | | | | > > > > > | | | | | | | | | | | | > > > > > | | | | | | | | | | | | | | | | | | | | | | 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 | <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>None</loc> <lastmod>2022-03-31</lastmod> <changefreq>daily</changefreq> </url> </urlset> |
Changes to jni/freetype/docs/reference/sitemap.xml.gz.
cannot compute difference between binary files
Changes to jni/freetype/docs/release.
︙ | ︙ | |||
23 24 25 26 27 28 29 | make distclean; make devel; make make distclean; make devel; make multi make distclean; make devel CC=g++; make CC=g++ make distclean; make devel CC=g++; make multi CC=g++ sh autogen.sh | < > > > > > | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | make distclean; make devel; make make distclean; make devel; make multi make distclean; make devel CC=g++; make CC=g++ make distclean; make devel CC=g++; make multi CC=g++ sh autogen.sh make distclean; ./configure CC=g++; make in the cloned repository to test compilation with both gcc and g++. Note that it is normally not necessary to test standard C compilation with the `configure`, `meson`, and `cmake` build tools since this is done by the CI process of 'gitlab.freetype.org' for every commit. . Test C++ compilation for 'freetype-demos' too (using `git clone` as above). . Run `src/tools/chktrcmp.py` and check that there are no undefined `trace_XXXX` macros. |
︙ | ︙ | |||
69 70 71 72 73 74 75 | . Run the following script (with updated `$VERSION`, `$SAVANNAH_USER`, and `$SOURCEFORGE_USER` variables) to sign and upload the bundles to both Savannah and SourceForge. The signing code has been taken from the `gnupload` script (part of the 'automake' bundle). #!/bin/sh | | > | | 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | . Run the following script (with updated `$VERSION`, `$SAVANNAH_USER`, and `$SOURCEFORGE_USER` variables) to sign and upload the bundles to both Savannah and SourceForge. The signing code has been taken from the `gnupload` script (part of the 'automake' bundle). #!/bin/sh VERSION=2.12.0 SAVANNAH_USER=wl SOURCEFORGE_USER=wlemb GPG_KEY_ID=BE6C3AAC63AD8E3F ##################################################################### GPG="/usr/bin/gpg --batch --no-tty --local-user $GPG_KEY_ID" version=`echo $VERSION | sed "s/\\.//g"` FREETYPE_PACKAGES="freetype-$VERSION.tar.gz \ freetype-$VERSION.tar.xz \ ft$version.zip" FT2DEMOS_PACKAGES="ft2demos-$VERSION.tar.gz \ |
︙ | ︙ | |||
173 174 175 176 177 178 179 | 'Windows' and 'Others', respectively. . Trigger the automatic generation of the online API reference by updating the `FT_VERSION` variable in file `.gitlab-ci.yml` of the 'freetype-web' repository. . Announce new release on 'freetype-announce@nongnu.org' and to | | > > > > | | 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 | 'Windows' and 'Others', respectively. . Trigger the automatic generation of the online API reference by updating the `FT_VERSION` variable in file `.gitlab-ci.yml` of the 'freetype-web' repository. . Announce new release on 'freetype-announce@nongnu.org' and to relevant newsgroups. The text should include - SHA256 checksums of all files, - instructions how to verify the bundles using the `.sig` file data, - the PGP public key used to sign the archives. ---------------------------------------------------------------------- Copyright (C) 2003-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. --- end of release --- |
Changes to jni/freetype/include/freetype/config/ftconfig.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftconfig.h * * ANSI-specific configuration file (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftconfig.h * * ANSI-specific configuration file (specification only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/config/ftheader.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftheader.h * * Build macros of the FreeType 2 library. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftheader.h * * Build macros of the FreeType 2 library. * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
772 773 774 775 776 777 778 779 780 781 782 783 784 785 | * * @description: * A macro used in `#include` statements to name the file containing the * FreeType~2 API which handles the OpenType 'CPAL' table. */ #define FT_COLOR_H <freetype/ftcolor.h> /* */ /* These header files don't need to be included by the user. */ #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h> #define FT_PARAMETER_TAGS_H <freetype/ftparams.h> | > > > > > > > > > > > > | 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 | * * @description: * A macro used in `#include` statements to name the file containing the * FreeType~2 API which handles the OpenType 'CPAL' table. */ #define FT_COLOR_H <freetype/ftcolor.h> /************************************************************************** * * @macro: * FT_OTSVG_H * * @description: * A macro used in `#include` statements to name the file containing the * FreeType~2 API which handles the OpenType 'SVG~' glyphs. */ #define FT_OTSVG_H <freetype/otsvg.h> /* */ /* These header files don't need to be included by the user. */ #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h> #define FT_PARAMETER_TAGS_H <freetype/ftparams.h> |
︙ | ︙ |
Changes to jni/freetype/include/freetype/config/ftmodule.h.
︙ | ︙ | |||
24 25 26 27 28 29 30 31 32 | FT_USE_MODULE( FT_Module_Class, psnames_module_class ) FT_USE_MODULE( FT_Module_Class, pshinter_module_class ) FT_USE_MODULE( FT_Module_Class, sfnt_module_class ) FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class ) FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class ) FT_USE_MODULE( FT_Renderer_Class, ft_sdf_renderer_class ) FT_USE_MODULE( FT_Renderer_Class, ft_bitmap_sdf_renderer_class ) /* EOF */ | > | 24 25 26 27 28 29 30 31 32 33 | FT_USE_MODULE( FT_Module_Class, psnames_module_class ) FT_USE_MODULE( FT_Module_Class, pshinter_module_class ) FT_USE_MODULE( FT_Module_Class, sfnt_module_class ) FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class ) FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class ) FT_USE_MODULE( FT_Renderer_Class, ft_sdf_renderer_class ) FT_USE_MODULE( FT_Renderer_Class, ft_bitmap_sdf_renderer_class ) FT_USE_MODULE( FT_Renderer_Class, ft_svg_renderer_class ) /* EOF */ |
Changes to jni/freetype/include/freetype/config/ftoption.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftoption.h * * User-selectable configuration macros (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftoption.h * * User-selectable configuration macros (specification only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
217 218 219 220 221 222 223 224 225 226 227 228 229 230 | * * Do not `#undef` this macro here since the build system might define * it for certain configurations only. * * If you use a build system like cmake or the `configure` script, * options set by those programs have precedence, overwriting the value * here with the configured one. */ /* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ /************************************************************************** * * Bzip2-compressed file support. | > > > > | 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 | * * Do not `#undef` this macro here since the build system might define * it for certain configurations only. * * If you use a build system like cmake or the `configure` script, * options set by those programs have precedence, overwriting the value * here with the configured one. * * If you use the GNU make build system directly (that is, without the * `configure` script) and you define this macro, you also have to pass * `SYSTEM_ZLIB=yes` as an argument to make. */ /* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ /************************************************************************** * * Bzip2-compressed file support. |
︙ | ︙ | |||
520 521 522 523 524 525 526 527 528 529 530 531 532 533 | * would break source compatibility of certain programs that use * FreeType~2. * * More details can be found in the files `ftmoderr.h` and `fterrors.h`. */ #undef FT_CONFIG_OPTION_USE_MODULE_ERRORS /************************************************************************** * * Error Strings * * If this macro is set, `FT_Error_String` will return meaningful * descriptions. This is not enabled by default to reduce the overall | > > > > > > > > > > > > > > | 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 | * would break source compatibility of certain programs that use * FreeType~2. * * More details can be found in the files `ftmoderr.h` and `fterrors.h`. */ #undef FT_CONFIG_OPTION_USE_MODULE_ERRORS /************************************************************************** * * OpenType SVG Glyph Support * * Setting this macro enables support for OpenType SVG glyphs. By * default, FreeType can only fetch SVG documents. However, it can also * render them if external rendering hook functions are plugged in at * runtime. * * More details on the hooks can be found in file `otsvg.h`. */ #define FT_CONFIG_OPTION_SVG /************************************************************************** * * Error Strings * * If this macro is set, `FT_Error_String` will return meaningful * descriptions. This is not enabled by default to reduce the overall |
︙ | ︙ | |||
1000 1001 1002 1003 1004 1005 1006 | CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 > 500 || \ CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 > 500 || \ CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 > 500 || \ CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 > 500 #error "Invalid CFF darkening parameters!" #endif | < > | 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 | CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 > 500 || \ CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 > 500 || \ CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 > 500 || \ CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 > 500 #error "Invalid CFF darkening parameters!" #endif FT_END_HEADER #endif /* FTOPTION_H_ */ /* END */ |
Changes to jni/freetype/include/freetype/config/ftstdlib.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * ftstdlib.h * * ANSI-specific library and header configuration file (specification * only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * ftstdlib.h * * ANSI-specific library and header configuration file (specification * only). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/config/integer-types.h.
1 2 3 4 5 6 | /**************************************************************************** * * config/integer-types.h * * FreeType integer types definitions. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * config/integer-types.h * * FreeType integer types definitions. * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
217 218 219 220 221 222 223 | /* XXXX: We should probably check the value of `__BORLANDC__` in order */ /* to test the compiler version. */ /* this compiler provides the `__int64` type */ #define FT_INT64 __int64 #define FT_UINT64 unsigned __int64 | | | > | 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 | /* XXXX: We should probably check the value of `__BORLANDC__` in order */ /* to test the compiler version. */ /* this compiler provides the `__int64` type */ #define FT_INT64 __int64 #define FT_UINT64 unsigned __int64 #elif defined( __WATCOMC__ ) && __WATCOMC__ >= 1100 /* Watcom C++ */ #define FT_INT64 long long int #define FT_UINT64 unsigned long long int #elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */ #define FT_INT64 long long int #define FT_UINT64 unsigned long long int #elif defined( __GNUC__ ) |
︙ | ︙ |
Changes to jni/freetype/include/freetype/config/mac-support.h.
1 2 3 4 5 6 | /**************************************************************************** * * config/mac-support.h * * Mac/OS X support configuration header. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * config/mac-support.h * * Mac/OS X support configuration header. * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/config/public-macros.h.
1 2 3 4 5 6 | /**************************************************************************** * * config/public-macros.h * * Define a set of compiler macros used in public FreeType headers. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * config/public-macros.h * * Define a set of compiler macros used in public FreeType headers. * * Copyright (C) 2020-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/freetype.h.
1 2 3 4 5 6 | /**************************************************************************** * * freetype.h * * FreeType high-level API and common types (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * freetype.h * * FreeType high-level API and common types (specification only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 | * FT_FACE_FLAG_TRICKY * FT_FACE_FLAG_KERNING * FT_FACE_FLAG_MULTIPLE_MASTERS * FT_FACE_FLAG_VARIATION * FT_FACE_FLAG_GLYPH_NAMES * FT_FACE_FLAG_EXTERNAL_STREAM * FT_FACE_FLAG_HINTER * * FT_HAS_HORIZONTAL * FT_HAS_VERTICAL * FT_HAS_KERNING * FT_HAS_FIXED_SIZES * FT_HAS_GLYPH_NAMES * FT_HAS_COLOR * FT_HAS_MULTIPLE_MASTERS * * FT_IS_SFNT * FT_IS_SCALABLE * FT_IS_FIXED_WIDTH * FT_IS_CID_KEYED * FT_IS_TRICKY * FT_IS_NAMED_INSTANCE | > > > > > > | 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 | * FT_FACE_FLAG_TRICKY * FT_FACE_FLAG_KERNING * FT_FACE_FLAG_MULTIPLE_MASTERS * FT_FACE_FLAG_VARIATION * FT_FACE_FLAG_GLYPH_NAMES * FT_FACE_FLAG_EXTERNAL_STREAM * FT_FACE_FLAG_HINTER * FT_FACE_FLAG_SVG * FT_FACE_FLAG_SBIX * FT_FACE_FLAG_SBIX_OVERLAY * * FT_HAS_HORIZONTAL * FT_HAS_VERTICAL * FT_HAS_KERNING * FT_HAS_FIXED_SIZES * FT_HAS_GLYPH_NAMES * FT_HAS_COLOR * FT_HAS_MULTIPLE_MASTERS * FT_HAS_SVG * FT_HAS_SBIX * FT_HAS_SBIX_OVERLAY * * FT_IS_SFNT * FT_IS_SCALABLE * FT_IS_FIXED_WIDTH * FT_IS_CID_KEYED * FT_IS_TRICKY * FT_IS_NAMED_INSTANCE |
︙ | ︙ | |||
221 222 223 224 225 226 227 228 229 230 231 232 233 234 | * FT_LOAD_DEFAULT * FT_LOAD_RENDER * FT_LOAD_MONOCHROME * FT_LOAD_LINEAR_DESIGN * FT_LOAD_NO_SCALE * FT_LOAD_NO_HINTING * FT_LOAD_NO_BITMAP * FT_LOAD_NO_AUTOHINT * FT_LOAD_COLOR * * FT_LOAD_VERTICAL_LAYOUT * FT_LOAD_IGNORE_TRANSFORM * FT_LOAD_FORCE_AUTOHINT * FT_LOAD_NO_RECURSE | > | 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 | * FT_LOAD_DEFAULT * FT_LOAD_RENDER * FT_LOAD_MONOCHROME * FT_LOAD_LINEAR_DESIGN * FT_LOAD_NO_SCALE * FT_LOAD_NO_HINTING * FT_LOAD_NO_BITMAP * FT_LOAD_SBITS_ONLY * FT_LOAD_NO_AUTOHINT * FT_LOAD_COLOR * * FT_LOAD_VERTICAL_LAYOUT * FT_LOAD_IGNORE_TRANSFORM * FT_LOAD_FORCE_AUTOHINT * FT_LOAD_NO_RECURSE |
︙ | ︙ | |||
518 519 520 521 522 523 524 | * FT_Size * * @description: * A handle to an object that models a face scaled to a given character * size. * * @note: | | | | > | | > | 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 | * FT_Size * * @description: * A handle to an object that models a face scaled to a given character * size. * * @note: * An @FT_Face has one _active_ `FT_Size` object that is used by * functions like @FT_Load_Glyph to determine the scaling transformation * that in turn is used to load and hint glyphs and metrics. * * A newly created `FT_Size` object contains only meaningless zero values. * You must use @FT_Set_Char_Size, @FT_Set_Pixel_Sizes, @FT_Request_Size * or even @FT_Select_Size to change the content (i.e., the scaling * values) of the active `FT_Size`. Otherwise, the scaling and hinting * will not be performed. * * You can use @FT_New_Size to create additional size objects for a given * @FT_Face, but they won't be used by other functions until you activate * it through @FT_Activate_Size. Only one size can be activated at any * given time per face. * * @also: |
︙ | ︙ | |||
1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 | * for more information. * * FT_FACE_FLAG_VARIATION :: * [Since 2.9] Set if the current face (or named instance) has been * altered with @FT_Set_MM_Design_Coordinates, * @FT_Set_Var_Design_Coordinates, or @FT_Set_Var_Blend_Coordinates. * This flag is unset by a call to @FT_Set_Named_Instance. */ #define FT_FACE_FLAG_SCALABLE ( 1L << 0 ) #define FT_FACE_FLAG_FIXED_SIZES ( 1L << 1 ) #define FT_FACE_FLAG_FIXED_WIDTH ( 1L << 2 ) #define FT_FACE_FLAG_SFNT ( 1L << 3 ) #define FT_FACE_FLAG_HORIZONTAL ( 1L << 4 ) #define FT_FACE_FLAG_VERTICAL ( 1L << 5 ) #define FT_FACE_FLAG_KERNING ( 1L << 6 ) #define FT_FACE_FLAG_FAST_GLYPHS ( 1L << 7 ) #define FT_FACE_FLAG_MULTIPLE_MASTERS ( 1L << 8 ) #define FT_FACE_FLAG_GLYPH_NAMES ( 1L << 9 ) #define FT_FACE_FLAG_EXTERNAL_STREAM ( 1L << 10 ) #define FT_FACE_FLAG_HINTER ( 1L << 11 ) #define FT_FACE_FLAG_CID_KEYED ( 1L << 12 ) #define FT_FACE_FLAG_TRICKY ( 1L << 13 ) #define FT_FACE_FLAG_COLOR ( 1L << 14 ) #define FT_FACE_FLAG_VARIATION ( 1L << 15 ) /************************************************************************** * * @macro: * FT_HAS_HORIZONTAL * | > > > > > > > > > > > > > > > > | 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 | * for more information. * * FT_FACE_FLAG_VARIATION :: * [Since 2.9] Set if the current face (or named instance) has been * altered with @FT_Set_MM_Design_Coordinates, * @FT_Set_Var_Design_Coordinates, or @FT_Set_Var_Blend_Coordinates. * This flag is unset by a call to @FT_Set_Named_Instance. * * FT_FACE_FLAG_SVG :: * [Since 2.12] The face has an 'SVG~' OpenType table. * * FT_FACE_FLAG_SBIX :: * [Since 2.12] The face has an 'sbix' OpenType table *and* outlines. * For such fonts, @FT_FACE_FLAG_SCALABLE is not set by default to * retain backward compatibility. * * FT_FACE_FLAG_SBIX_OVERLAY :: * [Since 2.12] The face has an 'sbix' OpenType table where outlines * should be drawn on top of bitmap strikes. * */ #define FT_FACE_FLAG_SCALABLE ( 1L << 0 ) #define FT_FACE_FLAG_FIXED_SIZES ( 1L << 1 ) #define FT_FACE_FLAG_FIXED_WIDTH ( 1L << 2 ) #define FT_FACE_FLAG_SFNT ( 1L << 3 ) #define FT_FACE_FLAG_HORIZONTAL ( 1L << 4 ) #define FT_FACE_FLAG_VERTICAL ( 1L << 5 ) #define FT_FACE_FLAG_KERNING ( 1L << 6 ) #define FT_FACE_FLAG_FAST_GLYPHS ( 1L << 7 ) #define FT_FACE_FLAG_MULTIPLE_MASTERS ( 1L << 8 ) #define FT_FACE_FLAG_GLYPH_NAMES ( 1L << 9 ) #define FT_FACE_FLAG_EXTERNAL_STREAM ( 1L << 10 ) #define FT_FACE_FLAG_HINTER ( 1L << 11 ) #define FT_FACE_FLAG_CID_KEYED ( 1L << 12 ) #define FT_FACE_FLAG_TRICKY ( 1L << 13 ) #define FT_FACE_FLAG_COLOR ( 1L << 14 ) #define FT_FACE_FLAG_VARIATION ( 1L << 15 ) #define FT_FACE_FLAG_SVG ( 1L << 16 ) #define FT_FACE_FLAG_SBIX ( 1L << 17 ) #define FT_FACE_FLAG_SBIX_OVERLAY ( 1L << 18 ) /************************************************************************** * * @macro: * FT_HAS_HORIZONTAL * |
︙ | ︙ | |||
1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 | * @since: * 2.5.1 * */ #define FT_HAS_COLOR( face ) \ ( !!( (face)->face_flags & FT_FACE_FLAG_COLOR ) ) /************************************************************************** * * @enum: * FT_STYLE_FLAG_XXX * * @description: | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 | * @since: * 2.5.1 * */ #define FT_HAS_COLOR( face ) \ ( !!( (face)->face_flags & FT_FACE_FLAG_COLOR ) ) /************************************************************************** * * @macro: * FT_HAS_SVG * * @description: * A macro that returns true whenever a face object contains an 'SVG~' * OpenType table. * * @since: * 2.12 */ #define FT_HAS_SVG( face ) \ ( !!( (face)->face_flags & FT_FACE_FLAG_SVG ) ) /************************************************************************** * * @macro: * FT_HAS_SBIX * * @description: * A macro that returns true whenever a face object contains an 'sbix' * OpenType table *and* outline glyphs. * * Currently, FreeType only supports bitmap glyphs in PNG format for this * table (i.e., JPEG and TIFF formats are unsupported, as are * Apple-specific formats not part of the OpenType specification). * * @note: * For backward compatibility, a font with an 'sbix' table is treated as * a bitmap-only face. Using @FT_Open_Face with * @FT_PARAM_TAG_IGNORE_SBIX, an application can switch off 'sbix' * handling so that the face is treated as an ordinary outline font with * scalable outlines. * * Here is some pseudo code that roughly illustrates how to implement * 'sbix' handling according to the OpenType specification. * * ``` * if ( FT_HAS_SBIX( face ) ) * { * // open font as a scalable one without sbix handling * FT_Face face2; * FT_Parameter param = { FT_PARAM_TAG_IGNORE_SBIX, NULL }; * FT_Open_Args args = { FT_OPEN_PARAMS | ..., * ..., * 1, ¶m }; * * * FT_Open_Face( library, &args, 0, &face2 ); * * <sort `face->available_size` as necessary into * `preferred_sizes`[*]> * * for ( i = 0; i < face->num_fixed_sizes; i++ ) * { * size = preferred_sizes[i].size; * * error = FT_Set_Pixel_Sizes( face, size, size ); * <error handling omitted> * * // check whether we have a glyph in a bitmap strike * error = FT_Load_Glyph( face, * glyph_index, * FT_LOAD_SBITS_ONLY | * FT_LOAD_BITMAP_METRICS_ONLY ); * if ( error == FT_Err_Invalid_Argument ) * continue; * else if ( error ) * <other error handling omitted> * else * break; * } * * if ( i != face->num_fixed_sizes ) * <load embedded bitmap with `FT_Load_Glyph`, * scale it, display it, etc.> * * if ( i == face->num_fixed_sizes || * FT_HAS_SBIX_OVERLAY( face ) ) * <use `face2` to load outline glyph with `FT_Load_Glyph`, * scale it, display it on top of the bitmap, etc.> * } * ``` * * [*] Assuming a target value of 400dpi and available strike sizes 100, * 200, 300, and 400dpi, a possible order might be [400, 200, 300, 100]: * scaling 200dpi to 400dpi usually gives better results than scaling * 300dpi to 400dpi; it is also much faster. However, scaling 100dpi to * 400dpi can yield a too pixelated result, thus the preference might be * 300dpi over 100dpi. * * @since: * 2.12 */ #define FT_HAS_SBIX( face ) \ ( !!( (face)->face_flags & FT_FACE_FLAG_SBIX ) ) /************************************************************************** * * @macro: * FT_HAS_SBIX_OVERLAY * * @description: * A macro that returns true whenever a face object contains an 'sbix' * OpenType table with bit~1 in its `flags` field set, instructing the * application to overlay the bitmap strike with the corresponding * outline glyph. See @FT_HAS_SBIX for pseudo code how to use it. * * @since: * 2.12 */ #define FT_HAS_SBIX_OVERLAY( face ) \ ( !!( (face)->face_flags & FT_FACE_FLAG_SBIX_OVERLAY ) ) /************************************************************************** * * @enum: * FT_STYLE_FLAG_XXX * * @description: |
︙ | ︙ | |||
2698 2699 2700 2701 2702 2703 2704 | * The relation between the requested size and the resulting glyph size * is dependent entirely on how the size is defined in the source face. * The font designer chooses the final size of each glyph relative to * this size. For more information refer to * 'https://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html'. * * Contrary to @FT_Set_Char_Size, this function doesn't have special code | | | | 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 | * The relation between the requested size and the resulting glyph size * is dependent entirely on how the size is defined in the source face. * The font designer chooses the final size of each glyph relative to * this size. For more information refer to * 'https://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html'. * * Contrary to @FT_Set_Char_Size, this function doesn't have special code * to normalize zero-valued widths, heights, or resolutions, which are * treated as @FT_LOAD_NO_SCALE. * * Don't use this function if you are using the FreeType cache API. */ FT_EXPORT( FT_Error ) FT_Request_Size( FT_Face face, FT_Size_Request req ); |
︙ | ︙ | |||
2815 2816 2817 2818 2819 2820 2821 | * glyph_index :: * The index of the glyph in the font file. For CID-keyed fonts * (either in PS or in CFF format) this argument specifies the CID * value. * * load_flags :: * A flag indicating what to load for this glyph. The @FT_LOAD_XXX | | > > > | < | 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 | * glyph_index :: * The index of the glyph in the font file. For CID-keyed fonts * (either in PS or in CFF format) this argument specifies the CID * value. * * load_flags :: * A flag indicating what to load for this glyph. The @FT_LOAD_XXX * flags can be used to control the glyph loading process (e.g., * whether the outline should be scaled, whether to load bitmaps or * not, whether to hint the outline, etc). * * @return: * FreeType error code. 0~means success. * * @note: * For proper scaling and hinting, the active @FT_Size object owned by * the face has to be meaningfully initialized by calling * @FT_Set_Char_Size before this function, for example. The loaded * glyph may be transformed. See @FT_Set_Transform for the details. * * For subsetted CID-keyed fonts, `FT_Err_Invalid_Argument` is returned * for invalid CID values (this is, for CID values that don't have a * corresponding glyph in the font). See the discussion of the * @FT_FACE_FLAG_CID_KEYED flag for more details. * * If you receive `FT_Err_Glyph_Too_Big`, try getting the glyph outline |
︙ | ︙ | |||
2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 | * * Note that by default the glyph loader doesn't render outlines into * bitmaps. The following flags are used to modify this default * behaviour to more specific and useful cases. * * FT_LOAD_NO_SCALE :: * Don't scale the loaded outline glyph but keep it in font units. * * This flag implies @FT_LOAD_NO_HINTING and @FT_LOAD_NO_BITMAP, and * unsets @FT_LOAD_RENDER. * * If the font is 'tricky' (see @FT_FACE_FLAG_TRICKY for more), using * `FT_LOAD_NO_SCALE` usually yields meaningless outlines because the * subglyphs must be scaled and positioned with hinting instructions. | > > | 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 | * * Note that by default the glyph loader doesn't render outlines into * bitmaps. The following flags are used to modify this default * behaviour to more specific and useful cases. * * FT_LOAD_NO_SCALE :: * Don't scale the loaded outline glyph but keep it in font units. * This flag is also assumed if @FT_Size owned by the face was not * properly initialized. * * This flag implies @FT_LOAD_NO_HINTING and @FT_LOAD_NO_BITMAP, and * unsets @FT_LOAD_RENDER. * * If the font is 'tricky' (see @FT_FACE_FLAG_TRICKY for more), using * `FT_LOAD_NO_SCALE` usually yields meaningless outlines because the * subglyphs must be scaled and positioned with hinting instructions. |
︙ | ︙ | |||
2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 | * * FT_LOAD_NO_BITMAP :: * Ignore bitmap strikes when loading. Bitmap-only fonts ignore this * flag. * * @FT_LOAD_NO_SCALE always sets this flag. * * FT_LOAD_VERTICAL_LAYOUT :: * Load the glyph for vertical text layout. In particular, the * `advance` value in the @FT_GlyphSlotRec structure is set to the * `vertAdvance` value of the `metrics` field. * * In case @FT_HAS_VERTICAL doesn't return true, you shouldn't use this * flag currently. Reason is that in this case vertical metrics get | > > > > > > > > > | 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 | * * FT_LOAD_NO_BITMAP :: * Ignore bitmap strikes when loading. Bitmap-only fonts ignore this * flag. * * @FT_LOAD_NO_SCALE always sets this flag. * * FT_LOAD_SBITS_ONLY :: * [Since 2.12] This is the opposite of @FT_LOAD_NO_BITMAP, more or * less: @FT_Load_Glyph returns `FT_Err_Invalid_Argument` if the face * contains a bitmap strike for the given size (or the strike selected * by @FT_Select_Size) but there is no glyph in the strike. * * Note that this load flag was part of FreeType since version 2.0.6 * but previously tagged as internal. * * FT_LOAD_VERTICAL_LAYOUT :: * Load the glyph for vertical text layout. In particular, the * `advance` value in the @FT_GlyphSlotRec structure is set to the * `vertAdvance` value of the `metrics` field. * * In case @FT_HAS_VERTICAL doesn't return true, you shouldn't use this * flag currently. Reason is that in this case vertical metrics get |
︙ | ︙ | |||
3000 3001 3002 3003 3004 3005 3006 | * Keep `linearHoriAdvance` and `linearVertAdvance` fields of * @FT_GlyphSlotRec in font units. See @FT_GlyphSlotRec for details. * * FT_LOAD_NO_AUTOHINT :: * Disable the auto-hinter. See also the note below. * * FT_LOAD_COLOR :: | > | < | > | | | | > > > > > > > | > > | | 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 | * Keep `linearHoriAdvance` and `linearVertAdvance` fields of * @FT_GlyphSlotRec in font units. See @FT_GlyphSlotRec for details. * * FT_LOAD_NO_AUTOHINT :: * Disable the auto-hinter. See also the note below. * * FT_LOAD_COLOR :: * Load colored glyphs. FreeType searches in the following order; * there are slight differences depending on the font format. * * [Since 2.5] Load embedded color bitmap images (provided * @FT_LOAD_NO_BITMAP is not set). The resulting color bitmaps, if * available, have the @FT_PIXEL_MODE_BGRA format, with pre-multiplied * color channels. If the flag is not set and color bitmaps are found, * they are converted to 256-level gray bitmaps, using the * @FT_PIXEL_MODE_GRAY format. * * [Since 2.12] If the glyph index maps to an entry in the face's * 'SVG~' table, load the associated SVG document from this table and * set the `format` field of @FT_GlyphSlotRec to @FT_GLYPH_FORMAT_SVG. * Note that FreeType itself can't render SVG documents; however, the * library provides hooks to seamlessly integrate an external renderer. * See sections @ot_svg_driver and @svg_fonts for more. * * [Since 2.10, experimental] If the glyph index maps to an entry in * the face's 'COLR' table with a 'CPAL' palette table (as defined in * the OpenType specification), make @FT_Render_Glyph provide a default * blending of the color glyph layers associated with the glyph index, * using the same bitmap format as embedded color bitmap images. This * is mainly for convenience and works only for glyphs in 'COLR' v0 * tables (or glyphs in 'COLR' v1 tables that exclusively use v0 * features). For full control of color layers use * @FT_Get_Color_Glyph_Layer and FreeType's color functions like * @FT_Palette_Select instead of setting @FT_LOAD_COLOR for rendering * so that the client application can handle blending by itself. * * FT_LOAD_COMPUTE_METRICS :: * [Since 2.6.1] Compute glyph metrics from the glyph data, without the * use of bundled metrics tables (for example, the 'hdmx' table in |
︙ | ︙ | |||
3065 3066 3067 3068 3069 3070 3071 | * font provides an incorrect mapping (for example, assigning the * character code U+005A, LATIN CAPITAL LETTER~Z, to a glyph depicting a * mathematical integral sign), the auto-hinter might produce useless * results. * */ #define FT_LOAD_DEFAULT 0x0 | | | | | | | | | | > | | | 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 | * font provides an incorrect mapping (for example, assigning the * character code U+005A, LATIN CAPITAL LETTER~Z, to a glyph depicting a * mathematical integral sign), the auto-hinter might produce useless * results. * */ #define FT_LOAD_DEFAULT 0x0 #define FT_LOAD_NO_SCALE ( 1L << 0 ) #define FT_LOAD_NO_HINTING ( 1L << 1 ) #define FT_LOAD_RENDER ( 1L << 2 ) #define FT_LOAD_NO_BITMAP ( 1L << 3 ) #define FT_LOAD_VERTICAL_LAYOUT ( 1L << 4 ) #define FT_LOAD_FORCE_AUTOHINT ( 1L << 5 ) #define FT_LOAD_CROP_BITMAP ( 1L << 6 ) #define FT_LOAD_PEDANTIC ( 1L << 7 ) #define FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH ( 1L << 9 ) #define FT_LOAD_NO_RECURSE ( 1L << 10 ) #define FT_LOAD_IGNORE_TRANSFORM ( 1L << 11 ) #define FT_LOAD_MONOCHROME ( 1L << 12 ) #define FT_LOAD_LINEAR_DESIGN ( 1L << 13 ) #define FT_LOAD_SBITS_ONLY ( 1L << 14 ) #define FT_LOAD_NO_AUTOHINT ( 1L << 15 ) /* Bits 16-19 are used by `FT_LOAD_TARGET_` */ #define FT_LOAD_COLOR ( 1L << 20 ) #define FT_LOAD_COMPUTE_METRICS ( 1L << 21 ) #define FT_LOAD_BITMAP_METRICS_ONLY ( 1L << 22 ) /* */ /* used internally only by certain font drivers */ #define FT_LOAD_ADVANCE_ONLY ( 1L << 8 ) #define FT_LOAD_SVG_ONLY ( 1L << 23 ) /************************************************************************** * * @enum: * FT_LOAD_TARGET_XXX * |
︙ | ︙ | |||
3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 | * // Convert to pixel values. * sd = ( sd / 128.0f ) * spread; * * // Store `sd` in a buffer or use as required. * } * * ``` */ typedef enum FT_Render_Mode_ { FT_RENDER_MODE_NORMAL = 0, FT_RENDER_MODE_LIGHT, FT_RENDER_MODE_MONO, FT_RENDER_MODE_LCD, | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 | * // Convert to pixel values. * sd = ( sd / 128.0f ) * spread; * * // Store `sd` in a buffer or use as required. * } * * ``` * * FreeType has two rasterizers for generating SDF, namely: * * 1. `sdf` for generating SDF directly from glyph's outline, and * * 2. `bsdf` for generating SDF from rasterized bitmaps. * * Depending on the glyph type (i.e., outline or bitmap), one of the two * rasterizers is chosen at runtime and used for generating SDFs. To * force the use of `bsdf` you should render the glyph with any of the * FreeType's other rendering modes (e.g., `FT_RENDER_MODE_NORMAL`) and * then re-render with `FT_RENDER_MODE_SDF`. * * There are some issues with stability and possible failures of the SDF * renderers (specifically `sdf`). * * 1. The `sdf` rasterizer is sensitive to really small features (e.g., * sharp turns that are less than 1~pixel) and imperfections in the * glyph's outline, causing artifacts in the final output. * * 2. The `sdf` rasterizer has limited support for handling intersecting * contours and *cannot* handle self-intersecting contours whatsoever. * Self-intersection happens when a single connected contour intersect * itself at some point; having these in your font definitely pose a * problem to the rasterizer and cause artifacts, too. * * 3. Generating SDF for really small glyphs may result in undesirable * output; the pixel grid (which stores distance information) becomes * too coarse. * * 4. Since the output buffer is normalized, precision at smaller spreads * is greater than precision at larger spread values because the * output range of [0..255] gets mapped to a smaller SDF range. A * spread of~2 should be sufficient in most cases. * * Points (1) and (2) can be avoided by using the `bsdf` rasterizer, * which is more stable than the `sdf` rasterizer in general. * */ typedef enum FT_Render_Mode_ { FT_RENDER_MODE_NORMAL = 0, FT_RENDER_MODE_LIGHT, FT_RENDER_MODE_MONO, FT_RENDER_MODE_LCD, |
︙ | ︙ | |||
3406 3407 3408 3409 3410 3411 3412 | * * @input: * render_mode :: * The render mode used to render the glyph image into a bitmap. See * @FT_Render_Mode for a list of possible values. * * If @FT_RENDER_MODE_NORMAL is used, a previous call of @FT_Load_Glyph | | < < < | 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 | * * @input: * render_mode :: * The render mode used to render the glyph image into a bitmap. See * @FT_Render_Mode for a list of possible values. * * If @FT_RENDER_MODE_NORMAL is used, a previous call of @FT_Load_Glyph * with flag @FT_LOAD_COLOR makes `FT_Render_Glyph` provide a default * blending of colored glyph layers associated with the current glyph * slot (provided the font contains such layers) instead of rendering * the glyph slot's outline. This is an experimental feature; see * @FT_LOAD_COLOR for more information. * * @return: * FreeType error code. 0~means success. * * @note: * When FreeType outputs a bitmap of a glyph, it really outputs an alpha * coverage map. If a pixel is completely covered by a filled-in * outline, the bitmap contains 0xFF at that pixel, meaning that * 0xFF/0xFF fraction of that pixel is covered, meaning the pixel is 100% * black (or 0% bright). If a pixel is only 50% covered (value 0x80), * the pixel is made 50% black (50% bright or a middle shade of grey). * 0% covered means 0% black (100% bright or white). |
︙ | ︙ | |||
4735 4736 4737 4738 4739 4740 4741 | * * @note: * The version number of FreeType if built as a dynamic link library with * the 'libtool' package is _not_ controlled by these three macros. * */ #define FREETYPE_MAJOR 2 | | | | 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 | * * @note: * The version number of FreeType if built as a dynamic link library with * the 'libtool' package is _not_ controlled by these three macros. * */ #define FREETYPE_MAJOR 2 #define FREETYPE_MINOR 12 #define FREETYPE_PATCH 0 /************************************************************************** * * @function: * FT_Library_Version * |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftadvanc.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftadvanc.h * * Quick computation of advance widths (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftadvanc.h * * Quick computation of advance widths (specification only). * * Copyright (C) 2008-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftbbox.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftbbox.h * * FreeType exact bbox computation (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftbbox.h * * FreeType exact bbox computation (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftbdf.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftbdf.h * * FreeType API for accessing BDF-specific strings (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftbdf.h * * FreeType API for accessing BDF-specific strings (specification). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftbitmap.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftbitmap.h * * FreeType utility functions for bitmaps (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftbitmap.h * * FreeType utility functions for bitmaps (specification). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftbzip2.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftbzip2.h * * Bzip2-compressed stream support. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftbzip2.h * * Bzip2-compressed stream support. * * Copyright (C) 2010-2022 by * Joel Klinghed. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftcache.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftcache.h * * FreeType Cache subsystem (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcache.h * * FreeType Cache subsystem (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftchapters.h.
︙ | ︙ | |||
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 | * truetype_tables * type1_tables * sfnt_names * bdf_fonts * cid_fonts * pfr_fonts * winfnt_fonts * font_formats * gasp_table * */ /************************************************************************** * * @chapter: * module_specific * * @title: * Controlling FreeType Modules * * @sections: * auto_hinter * cff_driver * t1_cid_driver * tt_driver * pcf_driver * properties * parameter_tags * lcd_rendering * */ | > > | 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 | * truetype_tables * type1_tables * sfnt_names * bdf_fonts * cid_fonts * pfr_fonts * winfnt_fonts * svg_fonts * font_formats * gasp_table * */ /************************************************************************** * * @chapter: * module_specific * * @title: * Controlling FreeType Modules * * @sections: * auto_hinter * cff_driver * t1_cid_driver * tt_driver * pcf_driver * ot_svg_driver * properties * parameter_tags * lcd_rendering * */ |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftcid.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftcid.h * * FreeType API for accessing CID font information (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcid.h * * FreeType API for accessing CID font information (specification). * * Copyright (C) 2007-2022 by * Dereg Clegg and Michael Toftdal. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftcolor.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftcolor.h * * FreeType's glyph color management (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcolor.h * * FreeType's glyph color management (specification). * * Copyright (C) 2018-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftdriver.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftdriver.h * * FreeType API for controlling driver modules (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftdriver.h * * FreeType API for controlling driver modules (specification only). * * Copyright (C) 2017-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
208 209 210 211 212 213 214 | * * @abstract: * Controlling the TrueType driver module. * * @description: * While FreeType's TrueType driver doesn't expose API functions by * itself, it is possible to control its behaviour with @FT_Property_Set | | < | < | | > | < | 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 | * * @abstract: * Controlling the TrueType driver module. * * @description: * While FreeType's TrueType driver doesn't expose API functions by * itself, it is possible to control its behaviour with @FT_Property_Set * and @FT_Property_Get. * * The TrueType driver's module name is 'truetype'; a single property * @interpreter-version is available, as documented in the @properties * section. * * To help understand the differences between interpreter versions, we * introduce a list of definitions, kindly provided by Greg Hitchcock. * * _Bi-Level Rendering_ * * Monochromatic rendering, exclusively used in the early days of * TrueType by both Apple and Microsoft. Microsoft's GDI interface * supported hinting of the right-side bearing point, such that the * advance width could be non-linear. Most often this was done to |
︙ | ︙ | |||
295 296 297 298 299 300 301 302 303 304 305 306 307 308 | * * (Not to be confused with 'natural widths'.) This mode removes all the * exceptions in the TrueType interpreter when running with ClearType. * Any issues on widths would still apply, though. * */ /************************************************************************** * * @section: * properties * * @title: | > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | * * (Not to be confused with 'natural widths'.) This mode removes all the * exceptions in the TrueType interpreter when running with ClearType. * Any issues on widths would still apply, though. * */ /************************************************************************** * * @section: * ot_svg_driver * * @title: * The SVG driver * * @abstract: * Controlling the external rendering of OT-SVG glyphs. * * @description: * By default, FreeType can only load the 'SVG~' table of OpenType fonts * if configuration macro `FT_CONFIG_OPTION_SVG` is defined. To make it * render SVG glyphs, an external SVG rendering library is needed. All * details on the interface between FreeType and the external library * via function hooks can be found in section @svg_fonts. * * The OT-SVG driver's module name is 'ot-svg'; it supports a single * property called @svg-hooks, documented below in the @properties * section. * */ /************************************************************************** * * @section: * properties * * @title: |
︙ | ︙ | |||
793 794 795 796 797 798 799 800 801 802 803 804 805 806 | * &interpreter_version ); * ``` * * @since: * 2.5 */ /************************************************************************** * * @property: * glyph-to-script-map * * @description: | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | * &interpreter_version ); * ``` * * @since: * 2.5 */ /************************************************************************** * * @property: * svg-hooks * * @description: * Set up the interface between FreeType and an extern SVG rendering * library like 'librsvg'. All details on the function hooks can be * found in section @svg_fonts. * * @example: * The following example code expects that the four hook functions * `svg_*` are defined elsewhere. Error handling is omitted, too. * * ``` * FT_Library library; * SVG_RendererHooks hooks = { * (SVG_Lib_Init_Func)svg_init, * (SVG_Lib_Free_Func)svg_free, * (SVG_Lib_Render_Func)svg_render, * (SVG_Lib_Preset_Slot_Func)svg_preset_slot }; * * * FT_Init_FreeType( &library ); * * FT_Property_Set( library, "ot-svg", * "svg-hooks", &hooks ); * ``` * * @since: * 2.12 */ /************************************************************************** * * @property: * glyph-to-script-map * * @description: |
︙ | ︙ |
Changes to jni/freetype/include/freetype/fterrdef.h.
1 2 3 4 5 6 | /**************************************************************************** * * fterrdef.h * * FreeType error codes (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * fterrdef.h * * FreeType error codes (specification). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
97 98 99 100 101 102 103 104 105 106 107 108 109 110 | "invalid outline" ) FT_ERRORDEF_( Invalid_Composite, 0x15, "invalid composite glyph" ) FT_ERRORDEF_( Too_Many_Hints, 0x16, "too many hints" ) FT_ERRORDEF_( Invalid_Pixel_Size, 0x17, "invalid pixel size" ) /* handle errors */ FT_ERRORDEF_( Invalid_Handle, 0x20, "invalid object handle" ) FT_ERRORDEF_( Invalid_Library_Handle, 0x21, "invalid library handle" ) | > > | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | "invalid outline" ) FT_ERRORDEF_( Invalid_Composite, 0x15, "invalid composite glyph" ) FT_ERRORDEF_( Too_Many_Hints, 0x16, "too many hints" ) FT_ERRORDEF_( Invalid_Pixel_Size, 0x17, "invalid pixel size" ) FT_ERRORDEF_( Invalid_SVG_Document, 0x18, "invalid SVG document" ) /* handle errors */ FT_ERRORDEF_( Invalid_Handle, 0x20, "invalid object handle" ) FT_ERRORDEF_( Invalid_Library_Handle, 0x21, "invalid library handle" ) |
︙ | ︙ | |||
230 231 232 233 234 235 236 237 238 239 240 241 242 243 | "invalid PostScript (post) table format" ) FT_ERRORDEF_( Invalid_Post_Table, 0x9B, "invalid PostScript (post) table" ) FT_ERRORDEF_( DEF_In_Glyf_Bytecode, 0x9C, "found FDEF or IDEF opcode in glyf bytecode" ) FT_ERRORDEF_( Missing_Bitmap, 0x9D, "missing bitmap in strike" ) /* CFF, CID, and Type 1 errors */ FT_ERRORDEF_( Syntax_Error, 0xA0, "opcode syntax error" ) FT_ERRORDEF_( Stack_Underflow, 0xA1, "argument stack underflow" ) | > > | 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 | "invalid PostScript (post) table format" ) FT_ERRORDEF_( Invalid_Post_Table, 0x9B, "invalid PostScript (post) table" ) FT_ERRORDEF_( DEF_In_Glyf_Bytecode, 0x9C, "found FDEF or IDEF opcode in glyf bytecode" ) FT_ERRORDEF_( Missing_Bitmap, 0x9D, "missing bitmap in strike" ) FT_ERRORDEF_( Missing_SVG_Hooks, 0x9E, "SVG hooks have not been set" ) /* CFF, CID, and Type 1 errors */ FT_ERRORDEF_( Syntax_Error, 0xA0, "opcode syntax error" ) FT_ERRORDEF_( Stack_Underflow, 0xA1, "argument stack underflow" ) |
︙ | ︙ |
Changes to jni/freetype/include/freetype/fterrors.h.
1 2 3 4 5 6 | /**************************************************************************** * * fterrors.h * * FreeType error code handling (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * fterrors.h * * FreeType error code handling (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftfntfmt.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftfntfmt.h * * Support functions for font formats. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftfntfmt.h * * Support functions for font formats. * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftgasp.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftgasp.h * * Access of TrueType's 'gasp' table (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftgasp.h * * Access of TrueType's 'gasp' table (specification). * * Copyright (C) 2007-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftglyph.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftglyph.h * * FreeType convenience functions to handle glyphs (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftglyph.h * * FreeType convenience functions to handle glyphs (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
122 123 124 125 126 127 128 | /************************************************************************** * * @type: * FT_BitmapGlyph * * @description: * A handle to an object used to model a bitmap glyph image. This is a | | | | 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 | /************************************************************************** * * @type: * FT_BitmapGlyph * * @description: * A handle to an object used to model a bitmap glyph image. This is a * 'sub-class' of @FT_Glyph, and a pointer to @FT_BitmapGlyphRec. */ typedef struct FT_BitmapGlyphRec_* FT_BitmapGlyph; /************************************************************************** * * @struct: * FT_BitmapGlyphRec * * @description: * A structure used for bitmap glyph images. This really is a * 'sub-class' of @FT_GlyphRec. * * @fields: * root :: * The root fields of @FT_Glyph. * * left :: * The left-side bearing, i.e., the horizontal distance from the * current pen position to the left border of the glyph bitmap. * * top :: * The top-side bearing, i.e., the vertical distance from the current |
︙ | ︙ | |||
177 178 179 180 181 182 183 | /************************************************************************** * * @type: * FT_OutlineGlyph * * @description: * A handle to an object used to model an outline glyph image. This is a | | | 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | /************************************************************************** * * @type: * FT_OutlineGlyph * * @description: * A handle to an object used to model an outline glyph image. This is a * 'sub-class' of @FT_Glyph, and a pointer to @FT_OutlineGlyphRec. */ typedef struct FT_OutlineGlyphRec_* FT_OutlineGlyph; /************************************************************************** * * @struct: |
︙ | ︙ | |||
217 218 219 220 221 222 223 224 225 226 227 228 229 230 | typedef struct FT_OutlineGlyphRec_ { FT_GlyphRec root; FT_Outline outline; } FT_OutlineGlyphRec; /************************************************************************** * * @function: * FT_New_Glyph * * @description: | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | typedef struct FT_OutlineGlyphRec_ { FT_GlyphRec root; FT_Outline outline; } FT_OutlineGlyphRec; /************************************************************************** * * @type: * FT_SvgGlyph * * @description: * A handle to an object used to model an SVG glyph. This is a * 'sub-class' of @FT_Glyph, and a pointer to @FT_SvgGlyphRec. * * @since: * 2.12 */ typedef struct FT_SvgGlyphRec_* FT_SvgGlyph; /************************************************************************** * * @struct: * FT_SvgGlyphRec * * @description: * A structure used for OT-SVG glyphs. This is a 'sub-class' of * @FT_GlyphRec. * * @fields: * root :: * The root @FT_GlyphRec fields. * * svg_document :: * A pointer to the SVG document. * * svg_document_length :: * The length of `svg_document`. * * glyph_index :: * The index of the glyph to be rendered. * * metrics :: * A metrics object storing the size information. * * units_per_EM :: * The size of the EM square. * * start_glyph_id :: * The first glyph ID in the glyph range covered by this document. * * end_glyph_id :: * The last glyph ID in the glyph range covered by this document. * * transform :: * A 2x2 transformation matrix to apply to the glyph while rendering * it. * * delta :: * Translation to apply to the glyph while rendering. * * @note: * The Glyph Management API requires @FT_Glyph or its 'sub-class' to have * all the information needed to completely define the glyph's rendering. * Outline-based glyphs can directly apply transformations to the outline * but this is not possible for an SVG document that hasn't been parsed. * Therefore, the transformation is stored along with the document. In * the absence of a 'ViewBox' or 'Width'/'Height' attribute, the size of * the ViewPort should be assumed to be 'units_per_EM'. */ typedef struct FT_SvgGlyphRec_ { FT_GlyphRec root; FT_Byte* svg_document; FT_ULong svg_document_length; FT_UInt glyph_index; FT_Size_Metrics metrics; FT_UShort units_per_EM; FT_UShort start_glyph_id; FT_UShort end_glyph_id; FT_Matrix transform; FT_Vector delta; } FT_SvgGlyphRec; /************************************************************************** * * @function: * FT_New_Glyph * * @description: |
︙ | ︙ | |||
494 495 496 497 498 499 500 | * * @note: * This function does nothing if the glyph format isn't scalable. * * The glyph image is translated with the `origin` vector before * rendering. * | | | | | | 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 | * * @note: * This function does nothing if the glyph format isn't scalable. * * The glyph image is translated with the `origin` vector before * rendering. * * The first parameter is a pointer to an @FT_Glyph handle that will be * _replaced_ by this function (with newly allocated data). Typically, * you would do something like the following (omitting error handling). * * ``` * FT_Glyph glyph; * FT_BitmapGlyph glyph_bitmap; * * * // load glyph * error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAULT ); * * // extract glyph image * error = FT_Get_Glyph( face->glyph, &glyph ); * * // convert to a bitmap (default render mode + destroying old) * if ( glyph->format != FT_GLYPH_FORMAT_BITMAP ) * { * error = FT_Glyph_To_Bitmap( &glyph, FT_RENDER_MODE_NORMAL, * 0, 1 ); * if ( error ) // `glyph' unchanged * ... * } * * // access bitmap content by typecasting * glyph_bitmap = (FT_BitmapGlyph)glyph; * * // do funny stuff with it, like blitting/drawing * ... * * // discard glyph image (bitmap or not) * FT_Done_Glyph( glyph ); * ``` * * Here is another example, again without error handling. * * ``` * FT_Glyph glyphs[MAX_GLYPHS] * * * ... * |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftgxval.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftgxval.h * * FreeType API for validating TrueTypeGX/AAT tables (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftgxval.h * * FreeType API for validating TrueTypeGX/AAT tables (specification). * * Copyright (C) 2004-2022 by * Masatake YAMATO, Redhat K.K, * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftgzip.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftgzip.h * * Gzip-compressed stream support. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftgzip.h * * Gzip-compressed stream support. * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftimage.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * ftimage.h * * FreeType glyph image formats and default raster interface * (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * ftimage.h * * FreeType glyph image formats and default raster interface * (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
397 398 399 400 401 402 403 | * * FT_OUTLINE_INCLUDE_STUBS :: * If set, turn pixels on for 'stubs', otherwise exclude them. Ignored * if @FT_OUTLINE_IGNORE_DROPOUTS is set. See below for more * information. * * FT_OUTLINE_OVERLAP :: | | | | | | | 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 | * * FT_OUTLINE_INCLUDE_STUBS :: * If set, turn pixels on for 'stubs', otherwise exclude them. Ignored * if @FT_OUTLINE_IGNORE_DROPOUTS is set. See below for more * information. * * FT_OUTLINE_OVERLAP :: * [Since 2.10.3] This flag indicates that this outline contains * overlapping contours and the anti-aliased renderer should perform * oversampling to mitigate possible artifacts. This flag should _not_ * be set for well designed glyphs without overlaps because it quadruples * the rendering time. * * FT_OUTLINE_HIGH_PRECISION :: * This flag indicates that the scan-line converter should try to * convert this outline to bitmaps with the highest possible quality. * It is typically set for small character sizes. Note that this is * only a hint that might be completely ignored by a given * scan-converter. |
︙ | ︙ | |||
737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 | * to read it. * * FT_GLYPH_FORMAT_PLOTTER :: * The glyph image is a vectorial path with no inside and outside * contours. Some Type~1 fonts, like those in the Hershey family, * contain glyphs in this format. These are described as @FT_Outline, * but FreeType isn't currently capable of rendering them correctly. */ typedef enum FT_Glyph_Format_ { FT_IMAGE_TAG( FT_GLYPH_FORMAT_NONE, 0, 0, 0, 0 ), FT_IMAGE_TAG( FT_GLYPH_FORMAT_COMPOSITE, 'c', 'o', 'm', 'p' ), FT_IMAGE_TAG( FT_GLYPH_FORMAT_BITMAP, 'b', 'i', 't', 's' ), FT_IMAGE_TAG( FT_GLYPH_FORMAT_OUTLINE, 'o', 'u', 't', 'l' ), | > > > > | > | 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 | * to read it. * * FT_GLYPH_FORMAT_PLOTTER :: * The glyph image is a vectorial path with no inside and outside * contours. Some Type~1 fonts, like those in the Hershey family, * contain glyphs in this format. These are described as @FT_Outline, * but FreeType isn't currently capable of rendering them correctly. * * FT_GLYPH_FORMAT_SVG :: * [Since 2.12] The glyph is represented by an SVG document in the * 'SVG~' table. */ typedef enum FT_Glyph_Format_ { FT_IMAGE_TAG( FT_GLYPH_FORMAT_NONE, 0, 0, 0, 0 ), FT_IMAGE_TAG( FT_GLYPH_FORMAT_COMPOSITE, 'c', 'o', 'm', 'p' ), FT_IMAGE_TAG( FT_GLYPH_FORMAT_BITMAP, 'b', 'i', 't', 's' ), FT_IMAGE_TAG( FT_GLYPH_FORMAT_OUTLINE, 'o', 'u', 't', 'l' ), FT_IMAGE_TAG( FT_GLYPH_FORMAT_PLOTTER, 'p', 'l', 'o', 't' ), FT_IMAGE_TAG( FT_GLYPH_FORMAT_SVG, 'S', 'V', 'G', ' ' ) } FT_Glyph_Format; /* these constants are deprecated; use the corresponding */ /* `FT_Glyph_Format` values instead. */ #define ft_glyph_format_none FT_GLYPH_FORMAT_NONE |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftincrem.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftincrem.h * * FreeType incremental loading (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftincrem.h * * FreeType incremental loading (specification). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftlcdfil.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * ftlcdfil.h * * FreeType API for color filtering of subpixel bitmap glyphs * (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * ftlcdfil.h * * FreeType API for color filtering of subpixel bitmap glyphs * (specification). * * Copyright (C) 2006-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftlist.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftlist.h * * Generic list support for FreeType (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftlist.h * * Generic list support for FreeType (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftlogging.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftlogging.h * * Additional debugging APIs. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftlogging.h * * Additional debugging APIs. * * Copyright (C) 2020-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftlzw.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftlzw.h * * LZW-compressed stream support. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftlzw.h * * LZW-compressed stream support. * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftmac.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftmac.h * * Additional Mac-specific API. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftmac.h * * Additional Mac-specific API. * * Copyright (C) 1996-2022 by * Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftmm.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftmm.h * * FreeType Multiple Master font interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftmm.h * * FreeType Multiple Master font interface (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
42 43 44 45 46 47 48 49 50 51 52 53 54 55 | * fonts, i.e., the selection of specific design instances by setting * design axis coordinates. * * Besides Adobe MM fonts, the interface supports Apple's TrueType GX and * OpenType variation fonts. Some of the routines only work with Adobe * MM fonts, others will work with all three types. They are similar * enough that a consistent interface makes sense. * */ /************************************************************************** * * @struct: | > > > | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | * fonts, i.e., the selection of specific design instances by setting * design axis coordinates. * * Besides Adobe MM fonts, the interface supports Apple's TrueType GX and * OpenType variation fonts. Some of the routines only work with Adobe * MM fonts, others will work with all three types. They are similar * enough that a consistent interface makes sense. * * For Adobe MM fonts, macro @FT_IS_SFNT returns false. For GX and * OpenType variation fonts, it returns true. * */ /************************************************************************** * * @struct: |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftmodapi.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftmodapi.h * * FreeType modules public interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftmodapi.h * * FreeType modules public interface (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftmoderr.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftmoderr.h * * FreeType module error offsets (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftmoderr.h * * FreeType module error offsets (specification). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftotval.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftotval.h * * FreeType API for validating OpenType tables (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftotval.h * * FreeType API for validating OpenType tables (specification). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftoutln.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * ftoutln.h * * Support for the FT_Outline type used to store glyph shapes of * most scalable font formats (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * ftoutln.h * * Support for the FT_Outline type used to store glyph shapes of * most scalable font formats (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
105 106 107 108 109 110 111 | * decomposition. It can be used to store the state during the * decomposition. * * @return: * FreeType error code. 0~means success. * * @note: | | < | | > > > | | 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | * decomposition. It can be used to store the state during the * decomposition. * * @return: * FreeType error code. 0~means success. * * @note: * Degenerate contours, segments, and Bezier arcs may be reported. In * most cases, it is best to filter these out before using the outline * for stroking or other path modification purposes (which may cause * degenerate segments to become non-degenrate and visible, like when * stroke caps are used or the path is otherwise outset). Some glyph * outlines may contain deliberate degenerate single points for mark * attachement. * * Similarly, the function returns success for an empty outline also * (doing nothing, this is, not calling any emitter); if necessary, you * should filter this out, too. */ FT_EXPORT( FT_Error ) FT_Outline_Decompose( FT_Outline* outline, |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftparams.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftparams.h * * FreeType API for possible FT_Parameter tags (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftparams.h * * FreeType API for possible FT_Parameter tags (specification only). * * Copyright (C) 2017-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
107 108 109 110 111 112 113 114 115 116 117 118 119 120 | * An @FT_Parameter tag to be used with @FT_Open_Face to indicate * incremental glyph loading. * */ #define FT_PARAM_TAG_INCREMENTAL \ FT_MAKE_TAG( 'i', 'n', 'c', 'r' ) /************************************************************************** * * @enum: * FT_PARAM_TAG_LCD_FILTER_WEIGHTS * * @description: | > > > > > > > > > > > > > > > | 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 | * An @FT_Parameter tag to be used with @FT_Open_Face to indicate * incremental glyph loading. * */ #define FT_PARAM_TAG_INCREMENTAL \ FT_MAKE_TAG( 'i', 'n', 'c', 'r' ) /************************************************************************** * * @enum: * FT_PARAM_TAG_IGNORE_SBIX * * @description: * A tag for @FT_Parameter to make @FT_Open_Face ignore an 'sbix' table * while loading a font. Use this if @FT_FACE_FLAG_SBIX is set and you * want to access the outline glyphs in the font. * */ #define FT_PARAM_TAG_IGNORE_SBIX \ FT_MAKE_TAG( 'i', 's', 'b', 'x' ) /************************************************************************** * * @enum: * FT_PARAM_TAG_LCD_FILTER_WEIGHTS * * @description: |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftpfr.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftpfr.h * * FreeType API for accessing PFR-specific data (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftpfr.h * * FreeType API for accessing PFR-specific data (specification only). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftrender.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftrender.h * * FreeType renderer modules public interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftrender.h * * FreeType renderer modules public interface (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftsizes.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftsizes.h * * FreeType size objects management (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsizes.h * * FreeType size objects management (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftsnames.h.
1 2 3 4 5 6 7 8 9 | /**************************************************************************** * * ftsnames.h * * Simple interface to access SFNT 'name' tables (which are used * to hold font names, copyright info, notices, etc.) (specification). * * This is _not_ used to retrieve glyph names! * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /**************************************************************************** * * ftsnames.h * * Simple interface to access SFNT 'name' tables (which are used * to hold font names, copyright info, notices, etc.) (specification). * * This is _not_ used to retrieve glyph names! * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftstroke.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftstroke.h * * FreeType path stroker (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftstroke.h * * FreeType path stroker (specification). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftsynth.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * ftsynth.h * * FreeType synthesizing code for emboldening and slanting * (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * ftsynth.h * * FreeType synthesizing code for emboldening and slanting * (specification). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftsystem.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftsystem.h * * FreeType low-level system interface definition (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsystem.h * * FreeType low-level system interface definition (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/fttrigon.h.
1 2 3 4 5 6 | /**************************************************************************** * * fttrigon.h * * FreeType trigonometric functions (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * fttrigon.h * * FreeType trigonometric functions (specification). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/fttypes.h.
1 2 3 4 5 6 | /**************************************************************************** * * fttypes.h * * FreeType simple types definitions (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * fttypes.h * * FreeType simple types definitions (specification only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ftwinfnt.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftwinfnt.h * * FreeType API for accessing Windows fnt-specific data. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftwinfnt.h * * FreeType API for accessing Windows fnt-specific data. * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/autohint.h.
1 2 3 4 5 6 | /**************************************************************************** * * autohint.h * * High-level 'autohint' module-specific interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * autohint.h * * High-level 'autohint' module-specific interface (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/cffotypes.h.
1 2 3 4 5 6 | /**************************************************************************** * * cffotypes.h * * Basic OpenType/CFF object type definitions (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cffotypes.h * * Basic OpenType/CFF object type definitions (specification). * * Copyright (C) 2017-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/cfftypes.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * cfftypes.h * * Basic OpenType/CFF type definitions and interface (specification * only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * cfftypes.h * * Basic OpenType/CFF type definitions and interface (specification * only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/compiler-macros.h.
1 2 3 4 5 6 | /**************************************************************************** * * internal/compiler-macros.h * * Compiler-specific macro definitions used internally by FreeType. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * internal/compiler-macros.h * * Compiler-specific macro definitions used internally by FreeType. * * Copyright (C) 2020-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
295 296 297 298 299 300 301 | */ #ifdef __cplusplus #define FT_CALLBACK_DEF( x ) extern "C" x #else #define FT_CALLBACK_DEF( x ) static x #endif | | | > > | 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 | */ #ifdef __cplusplus #define FT_CALLBACK_DEF( x ) extern "C" x #else #define FT_CALLBACK_DEF( x ) static x #endif #if defined( __GNUC__ ) && defined( __i386__ ) #define FT_COMPARE_DEF( x ) FT_CALLBACK_DEF( x ) __attribute__(( cdecl )) #elif defined( _MSC_VER ) && defined( _M_IX86 ) #define FT_COMPARE_DEF( x ) FT_CALLBACK_DEF( x ) __cdecl #elif defined( __WATCOMC__ ) && __WATCOMC__ >= 1240 #define FT_COMPARE_DEF( x ) FT_CALLBACK_DEF( x ) __watcall #else #define FT_COMPARE_DEF( x ) FT_CALLBACK_DEF( x ) #endif #define FT_BASE_CALLBACK( x ) FT_FUNCTION_DECLARATION( x ) #define FT_BASE_CALLBACK_DEF( x ) FT_FUNCTION_DEFINITION( x ) |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/ftcalc.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftcalc.h * * Arithmetic computations (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcalc.h * * Arithmetic computations (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
403 404 405 406 407 408 409 410 411 412 413 414 415 416 | return (FT_Int32)where; } #define FT_MSB( x ) FT_MSB_i386( x ) #endif #elif defined( __DECC ) || defined( __DECCXX ) #include <builtins.h> #define FT_MSB( x ) (FT_Int)( 63 - _leadz( x ) ) | > > > > > > > > > > > > > | 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 | return (FT_Int32)where; } #define FT_MSB( x ) FT_MSB_i386( x ) #endif #elif defined( __WATCOMC__ ) && defined( __386__ ) extern __inline FT_Int32 FT_MSB_i386( FT_UInt32 x ); #pragma aux FT_MSB_i386 = \ "bsr eax, eax" \ parm [eax] nomemory \ value [eax] \ modify exact [eax] nomemory; #define FT_MSB( x ) FT_MSB_i386( x ) #elif defined( __DECC ) || defined( __DECCXX ) #include <builtins.h> #define FT_MSB( x ) (FT_Int)( 63 - _leadz( x ) ) |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/ftdebug.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftdebug.h * * Debugging and logging component (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftdebug.h * * Debugging and logging component (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/ftdrv.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftdrv.h * * FreeType internal font driver interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftdrv.h * * FreeType internal font driver interface (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/ftgloadr.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftgloadr.h * * The FreeType glyph loader (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftgloadr.h * * The FreeType glyph loader (specification). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/ftmemory.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftmemory.h * * The FreeType memory management macros (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftmemory.h * * The FreeType memory management macros (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/ftobjs.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftobjs.h * * The FreeType private base classes (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftobjs.h * * The FreeType private base classes (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
414 415 416 417 418 419 420 | * Format-specific glyph hints management. * * load_flags :: * The load flags passed as an argument to @FT_Load_Glyph while * initializing the glyph slot. */ | | > | 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 | * Format-specific glyph hints management. * * load_flags :: * The load flags passed as an argument to @FT_Load_Glyph while * initializing the glyph slot. */ #define FT_GLYPH_OWN_BITMAP 0x1U #define FT_GLYPH_OWN_GZIP_SVG 0x2U typedef struct FT_Slot_InternalRec_ { FT_GlyphLoader loader; FT_UInt flags; FT_Bool glyph_transformed; FT_Matrix glyph_matrix; |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/ftpsprop.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftpsprop.h * * Get and set properties of PostScript drivers (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftpsprop.h * * Get and set properties of PostScript drivers (specification). * * Copyright (C) 2017-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/ftrfork.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftrfork.h * * Embedded resource forks accessor (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftrfork.h * * Embedded resource forks accessor (specification). * * Copyright (C) 2004-2022 by * Masatake YAMATO and Redhat K.K. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/ftserv.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftserv.h * * The FreeType services (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftserv.h * * The FreeType services (specification only). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/ftstream.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftstream.h * * Stream handling (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftstream.h * * Stream handling (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/fttrace.h.
1 2 3 4 5 6 | /**************************************************************************** * * fttrace.h * * Tracing handling (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * fttrace.h * * Tracing handling (specification only). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
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 | FT_TRACE_DEF( raccess ) /* resource fork accessor (ftrfork.c) */ FT_TRACE_DEF( synth ) /* bold/slant synthesizer (ftsynth.c) */ /* rasterizers */ FT_TRACE_DEF( raster ) /* monochrome rasterizer (ftraster.c) */ FT_TRACE_DEF( smooth ) /* anti-aliasing raster (ftgrays.c) */ /* cache sub-system */ FT_TRACE_DEF( cache ) /* cache sub-system (ftcache.c, etc.) */ /* SFNT driver components */ FT_TRACE_DEF( sfdriver ) /* SFNT font driver (sfdriver.c) */ FT_TRACE_DEF( sfobjs ) /* SFNT object handler (sfobjs.c) */ FT_TRACE_DEF( sfwoff ) /* WOFF format handler (sfwoff.c) */ FT_TRACE_DEF( sfwoff2 ) /* WOFF2 format handler (sfwoff2.c) */ FT_TRACE_DEF( ttbdf ) /* TrueType embedded BDF (ttbdf.c) */ FT_TRACE_DEF( ttcmap ) /* charmap handler (ttcmap.c) */ FT_TRACE_DEF( ttcolr ) /* glyph layer table (ttcolr.c) */ FT_TRACE_DEF( ttcpal ) /* color palette table (ttcpal.c) */ FT_TRACE_DEF( ttkern ) /* kerning handler (ttkern.c) */ FT_TRACE_DEF( ttload ) /* basic TrueType tables (ttload.c) */ FT_TRACE_DEF( ttmtx ) /* metrics-related tables (ttmtx.c) */ FT_TRACE_DEF( ttpost ) /* PS table processing (ttpost.c) */ FT_TRACE_DEF( ttsbit ) /* TrueType sbit handling (ttsbit.c) */ /* TrueType driver components */ | > > > > | 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 | FT_TRACE_DEF( raccess ) /* resource fork accessor (ftrfork.c) */ FT_TRACE_DEF( synth ) /* bold/slant synthesizer (ftsynth.c) */ /* rasterizers */ FT_TRACE_DEF( raster ) /* monochrome rasterizer (ftraster.c) */ FT_TRACE_DEF( smooth ) /* anti-aliasing raster (ftgrays.c) */ /* ot-svg module */ FT_TRACE_DEF( otsvg ) /* OT-SVG renderer (ftsvg.c) */ /* cache sub-system */ FT_TRACE_DEF( cache ) /* cache sub-system (ftcache.c, etc.) */ /* SFNT driver components */ FT_TRACE_DEF( sfdriver ) /* SFNT font driver (sfdriver.c) */ FT_TRACE_DEF( sfobjs ) /* SFNT object handler (sfobjs.c) */ FT_TRACE_DEF( sfwoff ) /* WOFF format handler (sfwoff.c) */ FT_TRACE_DEF( sfwoff2 ) /* WOFF2 format handler (sfwoff2.c) */ FT_TRACE_DEF( ttbdf ) /* TrueType embedded BDF (ttbdf.c) */ FT_TRACE_DEF( ttcmap ) /* charmap handler (ttcmap.c) */ FT_TRACE_DEF( ttcolr ) /* glyph layer table (ttcolr.c) */ FT_TRACE_DEF( ttcpal ) /* color palette table (ttcpal.c) */ FT_TRACE_DEF( ttsvg ) /* OpenType SVG table (ttsvg.c) */ FT_TRACE_DEF( ttkern ) /* kerning handler (ttkern.c) */ FT_TRACE_DEF( ttload ) /* basic TrueType tables (ttload.c) */ FT_TRACE_DEF( ttmtx ) /* metrics-related tables (ttmtx.c) */ FT_TRACE_DEF( ttpost ) /* PS table processing (ttpost.c) */ FT_TRACE_DEF( ttsbit ) /* TrueType sbit handling (ttsbit.c) */ /* TrueType driver components */ |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/ftvalid.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftvalid.h * * FreeType validation support (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftvalid.h * * FreeType validation support (specification). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/psaux.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * psaux.h * * Auxiliary functions and data structures related to PostScript fonts * (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * psaux.h * * Auxiliary functions and data structures related to PostScript fonts * (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/pshints.h.
1 2 3 4 5 6 7 8 | /**************************************************************************** * * pshints.h * * Interface to Postscript-specific (Type 1 and Type 2) hints * recorders (specification only). These are used to support native * T1/T2 hints in the 'type1', 'cid', and 'cff' font drivers. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /**************************************************************************** * * pshints.h * * Interface to Postscript-specific (Type 1 and Type 2) hints * recorders (specification only). These are used to support native * T1/T2 hints in the 'type1', 'cid', and 'cff' font drivers. * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svbdf.h.
1 2 3 4 5 6 | /**************************************************************************** * * svbdf.h * * The FreeType BDF services (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svbdf.h * * The FreeType BDF services (specification). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svcfftl.h.
1 2 3 4 5 6 | /**************************************************************************** * * svcfftl.h * * The FreeType CFF tables loader service (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svcfftl.h * * The FreeType CFF tables loader service (specification). * * Copyright (C) 2017-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svcid.h.
1 2 3 4 5 6 | /**************************************************************************** * * svcid.h * * The FreeType CID font services (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svcid.h * * The FreeType CID font services (specification). * * Copyright (C) 2007-2022 by * Derek Clegg and Michael Toftdal. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svfntfmt.h.
1 2 3 4 5 6 | /**************************************************************************** * * svfntfmt.h * * The FreeType font format service (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svfntfmt.h * * The FreeType font format service (specification only). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svgldict.h.
1 2 3 4 5 6 | /**************************************************************************** * * svgldict.h * * The FreeType glyph dictionary services (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svgldict.h * * The FreeType glyph dictionary services (specification). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svgxval.h.
1 2 3 4 5 6 | /**************************************************************************** * * svgxval.h * * FreeType API for validating TrueTypeGX/AAT tables (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svgxval.h * * FreeType API for validating TrueTypeGX/AAT tables (specification). * * Copyright (C) 2004-2022 by * Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svkern.h.
1 2 3 4 5 6 | /**************************************************************************** * * svkern.h * * The FreeType Kerning service (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svkern.h * * The FreeType Kerning service (specification). * * Copyright (C) 2006-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svmetric.h.
1 2 3 4 5 6 | /**************************************************************************** * * svmetric.h * * The FreeType services for metrics variations (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svmetric.h * * The FreeType services for metrics variations (specification). * * Copyright (C) 2016-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svmm.h.
1 2 3 4 5 6 | /**************************************************************************** * * svmm.h * * The FreeType Multiple Masters and GX var services (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svmm.h * * The FreeType Multiple Masters and GX var services (specification). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svotval.h.
1 2 3 4 5 6 | /**************************************************************************** * * svotval.h * * The FreeType OpenType validation service (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svotval.h * * The FreeType OpenType validation service (specification). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svpfr.h.
1 2 3 4 5 6 | /**************************************************************************** * * svpfr.h * * Internal PFR service functions (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svpfr.h * * Internal PFR service functions (specification). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svpostnm.h.
1 2 3 4 5 6 | /**************************************************************************** * * svpostnm.h * * The FreeType PostScript name services (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svpostnm.h * * The FreeType PostScript name services (specification). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svprop.h.
1 2 3 4 5 6 | /**************************************************************************** * * svprop.h * * The FreeType property service (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svprop.h * * The FreeType property service (specification). * * Copyright (C) 2012-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svpscmap.h.
1 2 3 4 5 6 | /**************************************************************************** * * svpscmap.h * * The FreeType PostScript charmap service (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svpscmap.h * * The FreeType PostScript charmap service (specification). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svpsinfo.h.
1 2 3 4 5 6 | /**************************************************************************** * * svpsinfo.h * * The FreeType PostScript info service (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svpsinfo.h * * The FreeType PostScript info service (specification). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svsfnt.h.
1 2 3 4 5 6 | /**************************************************************************** * * svsfnt.h * * The FreeType SFNT table loading service (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svsfnt.h * * The FreeType SFNT table loading service (specification). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svttcmap.h.
1 2 3 4 5 6 | /**************************************************************************** * * svttcmap.h * * The FreeType TrueType/sfnt cmap extra information service. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svttcmap.h * * The FreeType TrueType/sfnt cmap extra information service. * * Copyright (C) 2003-2022 by * Masatake YAMATO, Redhat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svtteng.h.
1 2 3 4 5 6 | /**************************************************************************** * * svtteng.h * * The FreeType TrueType engine query service (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svtteng.h * * The FreeType TrueType engine query service (specification). * * Copyright (C) 2006-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svttglyf.h.
1 2 3 4 5 6 | /**************************************************************************** * * svttglyf.h * * The FreeType TrueType glyph service. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svttglyf.h * * The FreeType TrueType glyph service. * * Copyright (C) 2007-2022 by * David Turner. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/services/svwinfnt.h.
1 2 3 4 5 6 | /**************************************************************************** * * svwinfnt.h * * The FreeType Windows FNT/FONT service (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * svwinfnt.h * * The FreeType Windows FNT/FONT service (specification). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/sfnt.h.
1 2 3 4 5 6 | /**************************************************************************** * * sfnt.h * * High-level 'sfnt' driver interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * sfnt.h * * High-level 'sfnt' driver interface (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
306 307 308 309 310 311 312 313 314 315 316 317 318 319 | FT_ULong strike_index, FT_UInt glyph_index, FT_UInt load_flags, FT_Stream stream, FT_Bitmap *amap, TT_SBit_MetricsRec *ametrics ); /************************************************************************** * * @functype: * TT_Set_SBit_Strike_Func * * @description: | > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | FT_ULong strike_index, FT_UInt glyph_index, FT_UInt load_flags, FT_Stream stream, FT_Bitmap *amap, TT_SBit_MetricsRec *ametrics ); /************************************************************************** * * @functype: * TT_Load_Svg_Doc_Func * * @description: * Scan the SVG document list to find the document containing the glyph * that has the ID 'glyph*XXX*', where *XXX* is the value of * `glyph_index` as a decimal integer. * * @inout: * glyph :: * The glyph slot from which pointers to the SVG document list is to be * grabbed. The results are stored back in the slot. * * @input: * glyph_index :: * The index of the glyph that is to be looked up. * * @return: * FreeType error code. 0 means success. */ typedef FT_Error (*TT_Load_Svg_Doc_Func)( FT_GlyphSlot glyph, FT_UInt glyph_index ); /************************************************************************** * * @functype: * TT_Set_SBit_Strike_Func * * @description: |
︙ | ︙ | |||
942 943 944 945 946 947 948 949 950 951 952 953 954 955 | TT_Blend_Colr_Func colr_blend; TT_Get_Metrics_Func get_metrics; TT_Get_Name_Func get_name; TT_Get_Name_ID_Func get_name_id; } SFNT_Interface; /* transitional */ typedef SFNT_Interface* SFNT_Service; | > > > > > | 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 | TT_Blend_Colr_Func colr_blend; TT_Get_Metrics_Func get_metrics; TT_Get_Name_Func get_name; TT_Get_Name_ID_Func get_name_id; /* OpenType SVG Support */ TT_Load_Table_Func load_svg; TT_Free_Table_Func free_svg; TT_Load_Svg_Doc_Func load_svg_doc; } SFNT_Interface; /* transitional */ typedef SFNT_Interface* SFNT_Service; |
︙ | ︙ | |||
993 994 995 996 997 998 999 | get_color_glyph_clipbox, \ get_paint_layers_, \ get_colorline_stops_, \ get_paint_, \ colr_blend_, \ get_metrics_, \ get_name_, \ | > > > | | 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 | get_color_glyph_clipbox, \ get_paint_layers_, \ get_colorline_stops_, \ get_paint_, \ colr_blend_, \ get_metrics_, \ get_name_, \ get_name_id_, \ load_svg_, \ free_svg_, \ load_svg_doc_ ) \ static const SFNT_Interface class_ = \ { \ goto_table_, \ init_face_, \ load_face_, \ done_face_, \ get_interface_, \ |
︙ | ︙ | |||
1038 1039 1040 1041 1042 1043 1044 | get_color_glyph_clipbox, \ get_paint_layers_, \ get_colorline_stops_, \ get_paint_, \ colr_blend_, \ get_metrics_, \ get_name_, \ | > | > > | 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 | get_color_glyph_clipbox, \ get_paint_layers_, \ get_colorline_stops_, \ get_paint_, \ colr_blend_, \ get_metrics_, \ get_name_, \ get_name_id_, \ load_svg_, \ free_svg_, \ load_svg_doc_ \ }; FT_END_HEADER #endif /* SFNT_H_ */ /* END */ |
Added jni/freetype/include/freetype/internal/svginterface.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /**************************************************************************** * * svginterface.h * * Interface of ot-svg module (specification only). * * Copyright (C) 2022 by * David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. * */ #ifndef SVGINTERFACE_H_ #define SVGINTERFACE_H_ #include <ft2build.h> #include <freetype/otsvg.h> FT_BEGIN_HEADER typedef FT_Error (*Preset_Bitmap_Func)( FT_Module module, FT_GlyphSlot slot, FT_Bool cache ); typedef struct SVG_Interface_ { Preset_Bitmap_Func preset_slot; } SVG_Interface; typedef SVG_Interface* SVG_Service; FT_END_HEADER #endif /* SVGINTERFACE_H_ */ /* END */ |
Changes to jni/freetype/include/freetype/internal/t1types.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * t1types.h * * Basic Type1/Type2 type definitions and interface (specification * only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * t1types.h * * Basic Type1/Type2 type definitions and interface (specification * only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/internal/tttypes.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * tttypes.h * * Basic SFNT/TrueType type definitions and interface (specification * only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * tttypes.h * * Basic SFNT/TrueType type definitions and interface (specification * only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
1386 1387 1388 1389 1390 1391 1392 | * * hdmx_record_count :: * The number of hdmx records. * * hdmx_record_size :: * The size of a single hdmx record. * | | | | 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 | * * hdmx_record_count :: * The number of hdmx records. * * hdmx_record_size :: * The size of a single hdmx record. * * hdmx_records :: * A array of pointers to the 'hdmx' table records sorted by ppem. * * sbit_table :: * A pointer to the font's embedded bitmap location table. * * sbit_table_size :: * The size of `sbit_table`. * |
︙ | ︙ | |||
1601 1602 1603 1604 1605 1606 1607 | FT_ULong num_locations; /* up to 0xFFFF + 1 */ FT_Byte* glyph_locations; FT_Byte* hdmx_table; FT_ULong hdmx_table_size; FT_UInt hdmx_record_count; FT_ULong hdmx_record_size; | | | 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 | FT_ULong num_locations; /* up to 0xFFFF + 1 */ FT_Byte* glyph_locations; FT_Byte* hdmx_table; FT_ULong hdmx_table_size; FT_UInt hdmx_record_count; FT_ULong hdmx_record_size; FT_Byte** hdmx_records; FT_Byte* sbit_table; FT_ULong sbit_table_size; TT_SbitTableType sbit_table_type; FT_UInt sbit_num_strikes; FT_UInt* sbit_strike_map; |
︙ | ︙ | |||
1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 | FT_ULong ebdt_size; #endif /* since 2.10 */ void* cpal; void* colr; } TT_FaceRec; /************************************************************************** * * @struct: * TT_GlyphZoneRec | > > > | 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 | FT_ULong ebdt_size; #endif /* since 2.10 */ void* cpal; void* colr; /* since 2.12 */ void* svg; } TT_FaceRec; /************************************************************************** * * @struct: * TT_GlyphZoneRec |
︙ | ︙ | |||
1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 | /* since version 2.2.1 */ FT_Byte* cursor; FT_Byte* limit; /* since version 2.6.2 */ FT_ListRec composites; } TT_LoaderRec; FT_END_HEADER #endif /* TTTYPES_H_ */ /* END */ | > > > | 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 | /* since version 2.2.1 */ FT_Byte* cursor; FT_Byte* limit; /* since version 2.6.2 */ FT_ListRec composites; /* since version 2.11.2 */ FT_Byte* widthp; } TT_LoaderRec; FT_END_HEADER #endif /* TTTYPES_H_ */ /* END */ |
Changes to jni/freetype/include/freetype/internal/wofftypes.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * wofftypes.h * * Basic WOFF/WOFF2 type definitions and interface (specification * only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * wofftypes.h * * Basic WOFF/WOFF2 type definitions and interface (specification * only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Added jni/freetype/include/freetype/otsvg.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /**************************************************************************** * * otsvg.h * * Interface for OT-SVG support related things (specification). * * Copyright (C) 2022 by * David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. * */ #ifndef OTSVG_H_ #define OTSVG_H_ #include <freetype/freetype.h> #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" #error "Please fix the directory search order for header files" #error "so that freetype.h of FreeType 2 is found first." #endif FT_BEGIN_HEADER /************************************************************************** * * @section: * svg_fonts * * @title: * OpenType SVG Fonts * * @abstract: * OT-SVG API between FreeType and an external SVG rendering library. * * @description: * This section describes the four hooks necessary to render SVG * 'documents' that are contained in an OpenType font's 'SVG~' table. * * For more information on the implementation, see our standard hooks * based on 'librsvg' in the [FreeType Demo * Programs](https://gitlab.freedesktop.org/freetype/freetype-demos) * repository. * */ /************************************************************************** * * @functype: * SVG_Lib_Init_Func * * @description: * A callback that is called when the first OT-SVG glyph is rendered in * the lifetime of an @FT_Library object. In a typical implementation, * one would want to allocate a structure and point the `data_pointer` * to it and perform any library initializations that might be needed. * * @inout: * data_pointer :: * The SVG rendering module stores a pointer variable that can be used * by clients to store any data that needs to be shared across * different hooks. `data_pointer` is essentially a pointer to that * pointer such that it can be written to as well as read from. * * @return: * FreeType error code. 0 means success. * * @since: * 2.12 */ typedef FT_Error (*SVG_Lib_Init_Func)( FT_Pointer *data_pointer ); /************************************************************************** * * @functype: * SVG_Lib_Free_Func * * @description: * A callback that is called when the `ot-svg` module is being freed. * It is only called if the init hook was called earlier. This means * that neither the init nor the free hook is called if no OT-SVG glyph * is rendered. * * In a typical implementation, one would want to free any state * structure that was allocated in the init hook and perform any * library-related closure that might be needed. * * @inout: * data_pointer :: * The SVG rendering module stores a pointer variable that can be used * by clients to store any data that needs to be shared across * different hooks. `data_pointer` is essentially a pointer to that * pointer such that it can be written to as well as read from. * * @since: * 2.12 */ typedef void (*SVG_Lib_Free_Func)( FT_Pointer *data_pointer ); /************************************************************************** * * @functype: * SVG_Lib_Render_Func * * @description: * A callback that is called to render an OT-SVG glyph. This callback * hook is called right after the preset hook @SVG_Lib_Preset_Slot_Func * has been called with `cache` set to `TRUE`. The data necessary to * render is available through the handle @FT_SVG_Document, which is set * in the `other` field of @FT_GlyphSlotRec. * * The render hook is expected to render the SVG glyph to the bitmap * buffer that is allocated already at `slot->bitmap.buffer`. It also * sets the `num_grays` value as well as `slot->format`. * * @input: * slot :: * The slot to render. * * @inout: * data_pointer :: * The SVG rendering module stores a pointer variable that can be used * by clients to store any data that needs to be shared across * different hooks. `data_pointer` is essentially a pointer to that * pointer such that it can be written to as well as read from. * * @return: * FreeType error code. 0 means success. * * @since: * 2.12 */ typedef FT_Error (*SVG_Lib_Render_Func)( FT_GlyphSlot slot, FT_Pointer *data_pointer ); /************************************************************************** * * @functype: * SVG_Lib_Preset_Slot_Func * * @description: * A callback that is called to preset the glyph slot. It is called from * two places. * * 1. When `FT_Load_Glyph` needs to preset the glyph slot. * * 2. Right before the `svg` module calls the render callback hook. * * When it is the former, the argument `cache` is set to `FALSE`. When * it is the latter, the argument `cache` is set to `TRUE`. This * distinction has been made because many calculations that are necessary * for presetting a glyph slot are the same needed later for the render * callback hook. Thus, if `cache` is `TRUE`, the hook can _cache_ those * calculations in a memory block referenced by the state pointer. * * This hook is expected to preset the slot by setting parameters such as * `bitmap_left`, `bitmap_top`, `width`, `rows`, `pitch`, and * `pixel_mode`. It is also expected to set all the metrics for the slot * including the vertical advance if it is not already set. Typically, * fonts have horizontal advances but not vertical ones. If those are * available, they had already been set, otherwise they have to be * estimated and set manually. The hook must take into account the * transformations that have been set, and translate the transformation * matrices into the SVG coordinate system, as the original matrix is * intended for the TTF/CFF coordinate system. * * @input: * slot :: * The glyph slot that has the SVG document loaded. * * cache :: * See description. * * @inout: * data_pointer :: * The SVG rendering module stores a pointer variable that can be used * by clients to store any data that needs to be shared across * different hooks. `data_pointer` is essentially a pointer to that * pointer such that it can be written to as well as read from. * * @return: * FreeType error code. 0 means success. * * @since: * 2.12 */ typedef FT_Error (*SVG_Lib_Preset_Slot_Func)( FT_GlyphSlot slot, FT_Bool cache, FT_Pointer *state ); /************************************************************************** * * @struct: * SVG_RendererHooks * * @description: * A structure that stores the four hooks needed to render OT-SVG glyphs * properly. The structure is publicly used to set the hooks via the * @svg-hooks driver property. * * The behavior of each hook is described in its documentation. One * thing to note is that the preset hook and the render hook often need * to do the same operations; therefore, it's better to cache the * intermediate data in a state structure to avoid calculating it twice. * For example, in the preset hook one can draw the glyph on a recorder * surface and later create a bitmap surface from it in the render hook. * * All four hooks must be non-NULL. * * @fields: * init_svg :: * The initialization hook. * * free_svg :: * The cleanup hook. * * render_hook :: * The render hook. * * preset_slot :: * The preset hook. * * @since: * 2.12 */ typedef struct SVG_RendererHooks_ { SVG_Lib_Init_Func init_svg; SVG_Lib_Free_Func free_svg; SVG_Lib_Render_Func render_svg; SVG_Lib_Preset_Slot_Func preset_slot; } SVG_RendererHooks; /************************************************************************** * * @struct: * FT_SVG_DocumentRec * * @description: * A structure that models one SVG document. * * @fields: * svg_document :: * A pointer to the SVG document. * * svg_document_length :: * The length of `svg_document`. * * metrics :: * A metrics object storing the size information. * * units_per_EM :: * The size of the EM square. * * start_glyph_id :: * The first glyph ID in the glyph range covered by this document. * * end_glyph_id :: * The last glyph ID in the glyph range covered by this document. * * transform :: * A 2x2 transformation matrix to apply to the glyph while rendering * it. * * delta :: * The translation to apply to the glyph while rendering. * * @note: * When an @FT_GlyphSlot object `slot` is passed down to a renderer, the * renderer can only access the `metrics` and `units_per_EM` fields via * `slot->face`. However, when @FT_Glyph_To_Bitmap sets up a dummy * object, it has no way to set a `face` object. Thus, metrics * information and `units_per_EM` (which is necessary for OT-SVG) has to * be stored separately. * * @since: * 2.12 */ typedef struct FT_SVG_DocumentRec_ { FT_Byte* svg_document; FT_ULong svg_document_length; FT_Size_Metrics metrics; FT_UShort units_per_EM; FT_UShort start_glyph_id; FT_UShort end_glyph_id; FT_Matrix transform; FT_Vector delta; } FT_SVG_DocumentRec; /************************************************************************** * * @type: * FT_SVG_Document * * @description: * A handle to an @FT_SVG_DocumentRec object. * * @since: * 2.12 */ typedef struct FT_SVG_DocumentRec_* FT_SVG_Document; FT_END_HEADER #endif /* OTSVG_H_ */ /* END */ |
Changes to jni/freetype/include/freetype/t1tables.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * t1tables.h * * Basic Type 1/Type 2 tables definitions and interface (specification * only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * t1tables.h * * Basic Type 1/Type 2 tables definitions and interface (specification * only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
449 450 451 452 453 454 455 | */ typedef CID_FaceInfoRec CID_Info; /************************************************************************** * * @function: | | | | | | | | | | | | | | | | | | | | | > | | > > > > > > > > > | | | | | | | | | | | | > > > > > > > > > > | 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 | */ typedef CID_FaceInfoRec CID_Info; /************************************************************************** * * @function: * FT_Has_PS_Glyph_Names * * @description: * Return true if a given face provides reliable PostScript glyph names. * This is similar to using the @FT_HAS_GLYPH_NAMES macro, except that * certain fonts (mostly TrueType) contain incorrect glyph name tables. * * When this function returns true, the caller is sure that the glyph * names returned by @FT_Get_Glyph_Name are reliable. * * @input: * face :: * face handle * * @return: * Boolean. True if glyph names are reliable. * */ FT_EXPORT( FT_Int ) FT_Has_PS_Glyph_Names( FT_Face face ); /************************************************************************** * * @function: * FT_Get_PS_Font_Info * * @description: * Retrieve the @PS_FontInfoRec structure corresponding to a given * PostScript font. * * @input: * face :: * PostScript face handle. * * @output: * afont_info :: * A pointer to a @PS_FontInfoRec object. * * @return: * FreeType error code. 0~means success. * * @note: * String pointers within the @PS_FontInfoRec structure are owned by the * face and don't need to be freed by the caller. Missing entries in the * font's FontInfo dictionary are represented by `NULL` pointers. * * The following font formats support this feature: 'Type~1', 'Type~42', * 'CFF', 'CID~Type~1'. For other font formats this function returns the * `FT_Err_Invalid_Argument` error code. * * @example: * ``` * PS_FontInfoRec font_info; * * * error = FT_Get_PS_Font_Info( face, &font_info ); * ... * ``` * */ FT_EXPORT( FT_Error ) FT_Get_PS_Font_Info( FT_Face face, PS_FontInfo afont_info ); /************************************************************************** * * @function: * FT_Get_PS_Font_Private * * @description: * Retrieve the @PS_PrivateRec structure corresponding to a given * PostScript font. * * @input: * face :: * PostScript face handle. * * @output: * afont_private :: * A pointer to a @PS_PrivateRec object. * * @return: * FreeType error code. 0~means success. * * @note: * The string pointers within the @PS_PrivateRec structure are owned by * the face and don't need to be freed by the caller. * * Only the 'Type~1' font format supports this feature. For other font * formats this function returns the `FT_Err_Invalid_Argument` error * code. * * @example: * ``` * PS_PrivateRec font_private; * * * error = FT_Get_PS_Font_Private( face, &font_private ); * ... * ``` * */ FT_EXPORT( FT_Error ) FT_Get_PS_Font_Private( FT_Face face, PS_Private afont_private ); |
︙ | ︙ | |||
689 690 691 692 693 694 695 | } PS_Dict_Keys; /************************************************************************** * * @function: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 | } PS_Dict_Keys; /************************************************************************** * * @function: * FT_Get_PS_Font_Value * * @description: * Retrieve the value for the supplied key from a PostScript font. * * @input: * face :: * PostScript face handle. * * key :: * An enumeration value representing the dictionary key to retrieve. * * idx :: * For array values, this specifies the index to be returned. * * value :: * A pointer to memory into which to write the value. * * valen_len :: * The size, in bytes, of the memory supplied for the value. * * @output: * value :: * The value matching the above key, if it exists. * * @return: * The amount of memory (in bytes) required to hold the requested value * (if it exists, -1 otherwise). * * @note: * The values returned are not pointers into the internal structures of * the face, but are 'fresh' copies, so that the memory containing them * belongs to the calling application. This also enforces the * 'read-only' nature of these values, i.e., this function cannot be * used to manipulate the face. * * `value` is a void pointer because the values returned can be of * various types. * * If either `value` is `NULL` or `value_len` is too small, just the * required memory size for the requested entry is returned. * * The `idx` parameter is used, not only to retrieve elements of, for * example, the FontMatrix or FontBBox, but also to retrieve name keys * from the CharStrings dictionary, and the charstrings themselves. It * is ignored for atomic values. * * `PS_DICT_BLUE_SCALE` returns a value that is scaled up by 1000. To * get the value as in the font stream, you need to divide by 65536000.0 * (to remove the FT_Fixed scale, and the x1000 scale). * * IMPORTANT: Only key/value pairs read by the FreeType interpreter can * be retrieved. So, for example, PostScript procedures such as NP, ND, * and RD are not available. Arbitrary keys are, obviously, not be * available either. * * If the font's format is not PostScript-based, this function returns * the `FT_Err_Invalid_Argument` error code. * * @since: * 2.4.8 * */ FT_EXPORT( FT_Long ) FT_Get_PS_Font_Value( FT_Face face, PS_Dict_Keys key, FT_UInt idx, void *value, |
︙ | ︙ |
Changes to jni/freetype/include/freetype/ttnameid.h.
1 2 3 4 5 6 | /**************************************************************************** * * ttnameid.h * * TrueType name ID definitions (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttnameid.h * * TrueType name ID definitions (specification only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/tttables.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * tttables.h * * Basic SFNT/TrueType tables definitions and interface * (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * tttables.h * * Basic SFNT/TrueType tables definitions and interface * (specification only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/include/freetype/tttags.h.
1 2 3 4 5 6 | /**************************************************************************** * * tttags.h * * Tags for TrueType and OpenType tables (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * tttags.h * * Tags for TrueType and OpenType tables (specification only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
91 92 93 94 95 96 97 98 99 100 101 102 103 104 | #define TTAG_POST FT_MAKE_TAG( 'P', 'O', 'S', 'T' ) #define TTAG_post FT_MAKE_TAG( 'p', 'o', 's', 't' ) #define TTAG_prep FT_MAKE_TAG( 'p', 'r', 'e', 'p' ) #define TTAG_prop FT_MAKE_TAG( 'p', 'r', 'o', 'p' ) #define TTAG_sbix FT_MAKE_TAG( 's', 'b', 'i', 'x' ) #define TTAG_sfnt FT_MAKE_TAG( 's', 'f', 'n', 't' ) #define TTAG_SING FT_MAKE_TAG( 'S', 'I', 'N', 'G' ) #define TTAG_trak FT_MAKE_TAG( 't', 'r', 'a', 'k' ) #define TTAG_true FT_MAKE_TAG( 't', 'r', 'u', 'e' ) #define TTAG_ttc FT_MAKE_TAG( 't', 't', 'c', ' ' ) #define TTAG_ttcf FT_MAKE_TAG( 't', 't', 'c', 'f' ) #define TTAG_TYP1 FT_MAKE_TAG( 'T', 'Y', 'P', '1' ) #define TTAG_typ1 FT_MAKE_TAG( 't', 'y', 'p', '1' ) #define TTAG_VDMX FT_MAKE_TAG( 'V', 'D', 'M', 'X' ) | > | 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | #define TTAG_POST FT_MAKE_TAG( 'P', 'O', 'S', 'T' ) #define TTAG_post FT_MAKE_TAG( 'p', 'o', 's', 't' ) #define TTAG_prep FT_MAKE_TAG( 'p', 'r', 'e', 'p' ) #define TTAG_prop FT_MAKE_TAG( 'p', 'r', 'o', 'p' ) #define TTAG_sbix FT_MAKE_TAG( 's', 'b', 'i', 'x' ) #define TTAG_sfnt FT_MAKE_TAG( 's', 'f', 'n', 't' ) #define TTAG_SING FT_MAKE_TAG( 'S', 'I', 'N', 'G' ) #define TTAG_SVG FT_MAKE_TAG( 'S', 'V', 'G', ' ' ) #define TTAG_trak FT_MAKE_TAG( 't', 'r', 'a', 'k' ) #define TTAG_true FT_MAKE_TAG( 't', 'r', 'u', 'e' ) #define TTAG_ttc FT_MAKE_TAG( 't', 't', 'c', ' ' ) #define TTAG_ttcf FT_MAKE_TAG( 't', 't', 'c', 'f' ) #define TTAG_TYP1 FT_MAKE_TAG( 'T', 'Y', 'P', '1' ) #define TTAG_typ1 FT_MAKE_TAG( 't', 'y', 'p', '1' ) #define TTAG_VDMX FT_MAKE_TAG( 'V', 'D', 'M', 'X' ) |
︙ | ︙ |
Changes to jni/freetype/include/ft2build.h.
1 2 3 4 5 6 | /**************************************************************************** * * ft2build.h * * FreeType 2 build and setup macros. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ft2build.h * * FreeType 2 build and setup macros. * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/meson.build.
1 2 3 4 | # # Meson project file for FreeType 2 # | | | 1 2 3 4 5 6 7 8 9 10 11 12 | # # Meson project file for FreeType 2 # # Copyright (C) 2020-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ | |||
23 24 25 26 27 28 29 | # meson setup -Ddefault_library=shared # project('freetype2', 'c', meson_version: '>= 0.55.0', default_options: ['default_library=both'], version: run_command('builds/meson/extract_freetype_version.py', | | > < | | > | > | 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 | # meson setup -Ddefault_library=shared # project('freetype2', 'c', meson_version: '>= 0.55.0', default_options: ['default_library=both'], version: run_command('builds/meson/extract_freetype_version.py', 'include/freetype/freetype.h', check: true).stdout().strip(), ) # Only meson >= 0.57 can read a file and assign its contents to a # variable; we thus use an external command to have this functionality # with older versions, too. python_exe = find_program('python3') ft2_so_version = run_command(python_exe, files('builds/meson/extract_libtool_version.py'), '--soversion', files('builds/unix/configure.raw'), check: true).stdout().strip() ft2_pkgconfig_version = run_command(python_exe, files('builds/meson/extract_libtool_version.py'), files('builds/unix/configure.raw'), check: true).stdout().strip() ft2_includes = include_directories('include') freetype_includedir = join_paths(get_option('includedir'), 'freetype2') # Generate a custom `ftmodule.h` version based on the content of # `modules.cfg`. |
︙ | ︙ | |||
66 67 68 69 70 71 72 | # FreeType 2 modules. ft_main_modules = run_command(python_exe, files('builds/meson/parse_modules_cfg.py'), '--format=main-modules', | | > | > | 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 | # FreeType 2 modules. ft_main_modules = run_command(python_exe, files('builds/meson/parse_modules_cfg.py'), '--format=main-modules', files('modules.cfg'), check: true).stdout().strip().split() ft2_sources += files([ 'src/base/ftbase.c', 'src/base/ftinit.c', ]) foreach mod: ft_main_modules source = mod if mod == 'winfonts' source = 'winfnt' elif mod == 'cid' source = 'type1cid' endif ft2_sources += 'src/@0@/@1@.c'.format(mod, source) endforeach # NOTE: The `bzip2` aux module is handled through options. ft_aux_modules = run_command(python_exe, files('builds/meson/parse_modules_cfg.py'), '--format=aux-modules', files('modules.cfg'), check: true).stdout().strip().split() foreach auxmod: ft_aux_modules source = auxmod # Most sources are named `src/<module>/<module>.c`, but there are a few # exceptions handled here. if auxmod == 'cache' source = 'ftcache' |
︙ | ︙ | |||
113 114 115 116 117 118 119 | # FreeType 2 base extensions. # To be configured in `modules.cfg`. base_extensions = run_command(python_exe, files('builds/meson/parse_modules_cfg.py'), '--format=base-extensions-list', | | > | 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | # FreeType 2 base extensions. # To be configured in `modules.cfg`. base_extensions = run_command(python_exe, files('builds/meson/parse_modules_cfg.py'), '--format=base-extensions-list', files('modules.cfg'), check: true).stdout().split() foreach ext: base_extensions ft2_sources += files('src/base/' + ext) endforeach # Header files. |
︙ | ︙ | |||
163 164 165 166 167 168 169 170 171 172 173 174 175 176 | 'include/freetype/ftsnames.h', 'include/freetype/ftstroke.h', 'include/freetype/ftsynth.h', 'include/freetype/ftsystem.h', 'include/freetype/fttrigon.h', 'include/freetype/fttypes.h', 'include/freetype/ftwinfnt.h', 'include/freetype/t1tables.h', 'include/freetype/ttnameid.h', 'include/freetype/tttables.h', 'include/freetype/tttags.h', ]) ft2_config_headers = files([ | > | 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | 'include/freetype/ftsnames.h', 'include/freetype/ftstroke.h', 'include/freetype/ftsynth.h', 'include/freetype/ftsystem.h', 'include/freetype/fttrigon.h', 'include/freetype/fttypes.h', 'include/freetype/ftwinfnt.h', 'include/freetype/otsvg.h', 'include/freetype/t1tables.h', 'include/freetype/ttnameid.h', 'include/freetype/tttables.h', 'include/freetype/tttags.h', ]) ft2_config_headers = files([ |
︙ | ︙ | |||
258 259 260 261 262 263 264 | process_header_command = [python_exe, files('builds/meson/process_ftoption_h.py'), '@INPUT@', '--output=@OUTPUT@'] ftoption_command = process_header_command # external GZip support | > > > > > > > > > > > > | | | > > > > > > > > > > > > > > > | > > > > > > | > | | 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 | process_header_command = [python_exe, files('builds/meson/process_ftoption_h.py'), '@INPUT@', '--output=@OUTPUT@'] ftoption_command = process_header_command # external GZip support zlib_option = get_option('zlib') # Backwards-compatible aliases. if zlib_option == 'disabled' zlib_option = 'none' elif zlib_option == 'enabled' zlib_option = 'auto' endif if zlib_option == 'auto' # First try to find a system installation, otherwise fall back to # the subproject. zlib_dep = dependency('zlib', required: false) if zlib_dep.found() zlib_option = 'system' else zlib_option = 'external' endif endif if zlib_option == 'none' ftoption_command += [ '--disable=FT_CONFIG_OPTION_USE_ZLIB' ] elif zlib_option == 'internal' ftoption_command += [ '--enable=FT_CONFIG_OPTION_USE_ZLIB' ] elif zlib_option == 'external' ftoption_command += [ '--enable=FT_CONFIG_OPTION_USE_ZLIB' ] zlib_project = subproject('zlib', required: true, default_options: 'default_library=static') zlib_dep = zlib_project.get_variable('zlib_dep') ft2_deps += [zlib_dep] elif zlib_option == 'system' zlib_dep = dependency('zlib', required: true) assert(zlib_dep.found(), 'Could not find system zlib installation!') ftoption_command += [ '--enable=FT_CONFIG_OPTION_USE_ZLIB', '--enable=FT_CONFIG_OPTION_SYSTEM_ZLIB', ] ft2_deps += [zlib_dep] else assert(false, 'Invalid zlib option ' + zlib_option) endif # BZip2 support bzip2_dep = cc.find_library('bz2', required: get_option('bzip2')) if bzip2_dep.found() |
︙ | ︙ | |||
413 414 415 416 417 418 419 | ], ) summary({'OS': host_machine.system(), }, section: 'Operating System') | | | 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 | ], ) summary({'OS': host_machine.system(), }, section: 'Operating System') summary({'Zlib': zlib_option, 'Bzip2': bzip2_dep.found() ? 'yes' : 'no', 'Png': libpng_dep.found() ? 'yes' : 'no', 'Harfbuzz': harfbuzz_dep.found() ? 'yes' : 'no', 'Brotli': brotli_dep.found() ? 'yes' : 'no', }, section: 'Used Libraries') # EOF |
Changes to jni/freetype/meson_options.txt.
1 2 3 4 | # # meson_options.txt # | | | 1 2 3 4 5 6 7 8 9 10 11 12 | # # meson_options.txt # # Copyright (C) 2020-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ | |||
42 43 44 45 46 47 48 | option('tests', type: 'feature', value: 'disabled', description: 'Enable FreeType unit and regression tests') option('zlib', | | | > > | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | option('tests', type: 'feature', value: 'disabled', description: 'Enable FreeType unit and regression tests') option('zlib', type: 'combo', choices: [ 'auto', 'none', 'internal', 'external', 'system', 'disabled', 'enabled' ], description: 'Support reading gzip-compressed font files') # EOF |
Changes to jni/freetype/modules.cfg.
1 2 | # modules.cfg # | | | 1 2 3 4 5 6 7 8 9 10 | # modules.cfg # # Copyright (C) 2005-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ | |||
95 96 97 98 99 100 101 102 103 104 105 106 107 108 | # Anti-aliasing rasterizer. RASTER_MODULES += smooth # Monochrome rasterizer. RASTER_MODULES += raster # Signed distance field rasterizer. RASTER_MODULES += sdf #### #### auxiliary modules #### | > > > | 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | # Anti-aliasing rasterizer. RASTER_MODULES += smooth # Monochrome rasterizer. RASTER_MODULES += raster # OT-SVG. RASTER_MODULES += svg # Signed distance field rasterizer. RASTER_MODULES += sdf #### #### auxiliary modules #### |
︙ | ︙ |
Added jni/freetype/objs/ftmodule.h.
> > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /* This is a generated file. */ FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class ) FT_USE_MODULE( FT_Driver_ClassRec, t1_driver_class ) FT_USE_MODULE( FT_Driver_ClassRec, cff_driver_class ) FT_USE_MODULE( FT_Driver_ClassRec, t1cid_driver_class ) FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class ) FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class ) FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class ) FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class ) FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class ) FT_USE_MODULE( FT_Module_Class, sfnt_module_class ) FT_USE_MODULE( FT_Module_Class, autofit_module_class ) FT_USE_MODULE( FT_Module_Class, pshinter_module_class ) FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class ) FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class ) FT_USE_MODULE( FT_Renderer_Class, ft_svg_renderer_class ) FT_USE_MODULE( FT_Renderer_Class, ft_sdf_renderer_class ) FT_USE_MODULE( FT_Renderer_Class, ft_bitmap_sdf_renderer_class ) FT_USE_MODULE( FT_Module_Class, psaux_module_class ) FT_USE_MODULE( FT_Module_Class, psnames_module_class ) /* EOF */ |
Changes to jni/freetype/src/autofit/afblue.c.
1 2 3 4 5 6 7 8 9 | /* This file has been generated by the Perl script `afblue.pl', */ /* using data from file `afblue.dat'. */ /**************************************************************************** * * afblue.c * * Auto-fitter data for blue strings (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /* This file has been generated by the Perl script `afblue.pl', */ /* using data from file `afblue.dat'. */ /**************************************************************************** * * afblue.c * * Auto-fitter data for blue strings (body). * * Copyright (C) 2013-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afblue.cin.
1 2 3 4 5 6 | /**************************************************************************** * * afblue.c * * Auto-fitter data for blue strings (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afblue.c * * Auto-fitter data for blue strings (body). * * Copyright (C) 2013-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afblue.dat.
1 2 3 4 | // afblue.dat // // Auto-fitter data for blue strings. // | | | 1 2 3 4 5 6 7 8 9 10 11 12 | // afblue.dat // // Auto-fitter data for blue strings. // // Copyright (C) 2013-2022 by // David Turner, Robert Wilhelm, and Werner Lemberg. // // This file is part of the FreeType project, and may only be used, // modified, and distributed under the terms of the FreeType project // license, LICENSE.TXT. By continuing to use, modify, or distribute // this file you indicate that you have read the license and // understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afblue.h.
1 2 3 4 5 6 7 8 9 | /* This file has been generated by the Perl script `afblue.pl', */ /* using data from file `afblue.dat'. */ /**************************************************************************** * * afblue.h * * Auto-fitter data for blue strings (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /* This file has been generated by the Perl script `afblue.pl', */ /* using data from file `afblue.dat'. */ /**************************************************************************** * * afblue.h * * Auto-fitter data for blue strings (specification). * * Copyright (C) 2013-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afblue.hin.
1 2 3 4 5 6 | /**************************************************************************** * * afblue.h * * Auto-fitter data for blue strings (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afblue.h * * Auto-fitter data for blue strings (specification). * * Copyright (C) 2013-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afcjk.c.
1 2 3 4 5 6 | /**************************************************************************** * * afcjk.c * * Auto-fitter hinting routines for CJK writing system (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afcjk.c * * Auto-fitter hinting routines for CJK writing system (body). * * Copyright (C) 2006-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
839 840 841 842 843 844 845 | static void af_cjk_hints_link_segments( AF_GlyphHints hints, AF_Dimension dim ) { AF_AxisHints axis = &hints->axis[dim]; AF_Segment segments = axis->segments; | | | 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 | static void af_cjk_hints_link_segments( AF_GlyphHints hints, AF_Dimension dim ) { AF_AxisHints axis = &hints->axis[dim]; AF_Segment segments = axis->segments; AF_Segment segment_limit = FT_OFFSET( segments, axis->num_segments ); AF_Direction major_dir = axis->major_dir; AF_Segment seg1, seg2; FT_Pos len_threshold; FT_Pos dist_threshold; len_threshold = AF_LATIN_CONSTANT( hints->metrics, 8 ); |
︙ | ︙ | |||
1001 1002 1003 1004 1005 1006 1007 | { AF_AxisHints axis = &hints->axis[dim]; FT_Error error = FT_Err_Ok; FT_Memory memory = hints->memory; AF_CJKAxis laxis = &((AF_CJKMetrics)hints->metrics)->axis[dim]; AF_Segment segments = axis->segments; | | | 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 | { AF_AxisHints axis = &hints->axis[dim]; FT_Error error = FT_Err_Ok; FT_Memory memory = hints->memory; AF_CJKAxis laxis = &((AF_CJKMetrics)hints->metrics)->axis[dim]; AF_Segment segments = axis->segments; AF_Segment segment_limit = FT_OFFSET( segments, axis->num_segments ); AF_Segment seg; FT_Fixed scale; FT_Pos edge_distance_threshold; axis->num_edges = 0; |
︙ | ︙ | |||
1149 1150 1151 1152 1153 1154 1155 | /* * Note that removing this loop and setting the `edge' field of each * segment directly in the code above slows down execution speed for * some reasons on platforms like the Sun. */ { AF_Edge edges = axis->edges; | | | 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 | /* * Note that removing this loop and setting the `edge' field of each * segment directly in the code above slows down execution speed for * some reasons on platforms like the Sun. */ { AF_Edge edges = axis->edges; AF_Edge edge_limit = FT_OFFSET( edges, axis->num_edges ); AF_Edge edge; for ( edge = edges; edge < edge_limit; edge++ ) { seg = edge->first; if ( seg ) |
︙ | ︙ | |||
1287 1288 1289 1290 1291 1292 1293 | static void af_cjk_hints_compute_blue_edges( AF_GlyphHints hints, AF_CJKMetrics metrics, AF_Dimension dim ) { AF_AxisHints axis = &hints->axis[dim]; AF_Edge edge = axis->edges; | | | 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 | static void af_cjk_hints_compute_blue_edges( AF_GlyphHints hints, AF_CJKMetrics metrics, AF_Dimension dim ) { AF_AxisHints axis = &hints->axis[dim]; AF_Edge edge = axis->edges; AF_Edge edge_limit = FT_OFFSET( edge, axis->num_edges ); AF_CJKAxis cjk = &metrics->axis[dim]; FT_Fixed scale = cjk->scale; FT_Pos best_dist0; /* initial threshold */ /* compute the initial threshold as a fraction of the EM size */ best_dist0 = FT_MulFix( metrics->units_per_em / 40, scale ); |
︙ | ︙ | |||
1794 1795 1796 1797 1798 1799 1800 | static void af_cjk_hint_edges( AF_GlyphHints hints, AF_Dimension dim ) { AF_AxisHints axis = &hints->axis[dim]; AF_Edge edges = axis->edges; | | | 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 | static void af_cjk_hint_edges( AF_GlyphHints hints, AF_Dimension dim ) { AF_AxisHints axis = &hints->axis[dim]; AF_Edge edges = axis->edges; AF_Edge edge_limit = FT_OFFSET( edges, axis->num_edges ); FT_PtrDist n_edges; AF_Edge edge; AF_Edge anchor = NULL; FT_Pos delta = 0; FT_Int skipped = 0; FT_Bool has_last_stem = FALSE; FT_Pos last_stem_pos = 0; |
︙ | ︙ | |||
2173 2174 2175 2176 2177 2178 2179 | static void af_cjk_align_edge_points( AF_GlyphHints hints, AF_Dimension dim ) { AF_AxisHints axis = & hints->axis[dim]; AF_Edge edges = axis->edges; | | | 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 | static void af_cjk_align_edge_points( AF_GlyphHints hints, AF_Dimension dim ) { AF_AxisHints axis = & hints->axis[dim]; AF_Edge edges = axis->edges; AF_Edge edge_limit = FT_OFFSET( edges, axis->num_edges ); AF_Edge edge; FT_Bool snapping; snapping = FT_BOOL( ( dim == AF_DIMENSION_HORZ && AF_LATIN_HINTS_DO_HORZ_SNAP( hints ) ) || ( dim == AF_DIMENSION_VERT && |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afcjk.h.
1 2 3 4 5 6 | /**************************************************************************** * * afcjk.h * * Auto-fitter hinting routines for CJK writing system (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afcjk.h * * Auto-fitter hinting routines for CJK writing system (specification). * * Copyright (C) 2006-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afcover.h.
1 2 3 4 5 6 | /**************************************************************************** * * afcover.h * * Auto-fitter coverages (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afcover.h * * Auto-fitter coverages (specification only). * * Copyright (C) 2013-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afdummy.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * afdummy.c * * Auto-fitter dummy routines to be used if no hinting should be * performed (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * afdummy.c * * Auto-fitter dummy routines to be used if no hinting should be * performed (body). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afdummy.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * afdummy.h * * Auto-fitter dummy routines to be used if no hinting should be * performed (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * afdummy.h * * Auto-fitter dummy routines to be used if no hinting should be * performed (specification). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/aferrors.h.
1 2 3 4 5 6 | /**************************************************************************** * * aferrors.h * * Autofitter error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * aferrors.h * * Autofitter error codes (specification only). * * Copyright (C) 2005-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afglobal.c.
1 2 3 4 5 6 | /**************************************************************************** * * afglobal.c * * Auto-fitter routines to compute global hinting values (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afglobal.c * * Auto-fitter routines to compute global hinting values (body). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
333 334 335 336 337 338 339 | AF_FaceGlobals globals = NULL; memory = face->memory; /* we allocate an AF_FaceGlobals structure together */ /* with the glyph_styles array */ | | | | > > | 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 | AF_FaceGlobals globals = NULL; memory = face->memory; /* we allocate an AF_FaceGlobals structure together */ /* with the glyph_styles array */ if ( FT_QALLOC( globals, sizeof ( *globals ) + (FT_ULong)face->num_glyphs * sizeof ( FT_UShort ) ) ) goto Exit; FT_ZERO( &globals->metrics ); globals->face = face; globals->glyph_count = face->num_glyphs; /* right after the globals structure come the glyph styles */ globals->glyph_styles = (FT_UShort*)( globals + 1 ); globals->module = module; globals->stem_darkening_for_ppem = 0; |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afglobal.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * afglobal.h * * Auto-fitter routines to compute global hinting values * (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * afglobal.h * * Auto-fitter routines to compute global hinting values * (specification). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afhints.c.
1 2 3 4 5 6 | /**************************************************************************** * * afhints.c * * Auto-fitter hinting routines (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afhints.c * * Auto-fitter hinting routines (body). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
1312 1313 1314 1315 1316 1317 1318 | FT_LOCAL_DEF( void ) af_glyph_hints_align_edge_points( AF_GlyphHints hints, AF_Dimension dim ) { AF_AxisHints axis = & hints->axis[dim]; AF_Segment segments = axis->segments; | | | 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 | FT_LOCAL_DEF( void ) af_glyph_hints_align_edge_points( AF_GlyphHints hints, AF_Dimension dim ) { AF_AxisHints axis = & hints->axis[dim]; AF_Segment segments = axis->segments; AF_Segment segment_limit = FT_OFFSET( segments, axis->num_segments ); AF_Segment seg; if ( dim == AF_DIMENSION_HORZ ) { for ( seg = segments; seg < segment_limit; seg++ ) { |
︙ | ︙ | |||
1389 1390 1391 1392 1393 1394 1395 | af_glyph_hints_align_strong_points( AF_GlyphHints hints, AF_Dimension dim ) { AF_Point points = hints->points; AF_Point point_limit = points + hints->num_points; AF_AxisHints axis = &hints->axis[dim]; AF_Edge edges = axis->edges; | | | 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 | af_glyph_hints_align_strong_points( AF_GlyphHints hints, AF_Dimension dim ) { AF_Point points = hints->points; AF_Point point_limit = points + hints->num_points; AF_AxisHints axis = &hints->axis[dim]; AF_Edge edges = axis->edges; AF_Edge edge_limit = FT_OFFSET( edges, axis->num_edges ); FT_UInt touch_flag; if ( dim == AF_DIMENSION_HORZ ) touch_flag = AF_FLAG_TOUCH_X; else touch_flag = AF_FLAG_TOUCH_Y; |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afhints.h.
1 2 3 4 5 6 | /**************************************************************************** * * afhints.h * * Auto-fitter hinting routines (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afhints.h * * Auto-fitter hinting routines (specification). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afindic.c.
1 2 3 4 5 6 | /**************************************************************************** * * afindic.c * * Auto-fitter hinting routines for Indic writing system (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afindic.c * * Auto-fitter hinting routines for Indic writing system (body). * * Copyright (C) 2007-2022 by * Rahul Bhalerao <rahul.bhalerao@redhat.com>, <b.rahul.pm@gmail.com>. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afindic.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * afindic.h * * Auto-fitter hinting routines for Indic writing system * (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * afindic.h * * Auto-fitter hinting routines for Indic writing system * (specification). * * Copyright (C) 2007-2022 by * Rahul Bhalerao <rahul.bhalerao@redhat.com>, <b.rahul.pm@gmail.com>. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/aflatin.c.
1 2 3 4 5 6 | /**************************************************************************** * * aflatin.c * * Auto-fitter hinting routines for latin writing system (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * aflatin.c * * Auto-fitter hinting routines for latin writing system (body). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
196 197 198 199 200 201 202 | */ af_latin_hints_link_segments( hints, 0, NULL, (AF_Dimension)dim ); seg = axhints->segments; | | | 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 | */ af_latin_hints_link_segments( hints, 0, NULL, (AF_Dimension)dim ); seg = axhints->segments; limit = FT_OFFSET( seg, axhints->num_segments ); for ( ; seg < limit; seg++ ) { link = seg->link; /* we only consider stem segments there! */ if ( link && link->link == seg && link > seg ) |
︙ | ︙ | |||
1985 1986 1987 1988 1989 1990 1991 | af_latin_hints_link_segments( AF_GlyphHints hints, FT_UInt width_count, AF_WidthRec* widths, AF_Dimension dim ) { AF_AxisHints axis = &hints->axis[dim]; AF_Segment segments = axis->segments; | | | 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 | af_latin_hints_link_segments( AF_GlyphHints hints, FT_UInt width_count, AF_WidthRec* widths, AF_Dimension dim ) { AF_AxisHints axis = &hints->axis[dim]; AF_Segment segments = axis->segments; AF_Segment segment_limit = FT_OFFSET( segments, axis->num_segments ); FT_Pos len_threshold, len_score, dist_score, max_width; AF_Segment seg1, seg2; if ( width_count ) max_width = widths[width_count - 1].org; else |
︙ | ︙ | |||
2130 2131 2132 2133 2134 2135 2136 | AF_StyleClass style_class = hints->metrics->style_class; AF_ScriptClass script_class = af_script_classes[style_class->script]; FT_Bool top_to_bottom_hinting = 0; AF_Segment segments = axis->segments; | | | 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 | AF_StyleClass style_class = hints->metrics->style_class; AF_ScriptClass script_class = af_script_classes[style_class->script]; FT_Bool top_to_bottom_hinting = 0; AF_Segment segments = axis->segments; AF_Segment segment_limit = FT_OFFSET( segments, axis->num_segments ); AF_Segment seg; #if 0 AF_Direction up_dir; #endif FT_Fixed scale; FT_Pos edge_distance_threshold; |
︙ | ︙ | |||
2496 2497 2498 2499 2500 2501 2502 | static void af_latin_hints_compute_blue_edges( AF_GlyphHints hints, AF_LatinMetrics metrics ) { AF_AxisHints axis = &hints->axis[AF_DIMENSION_VERT]; AF_Edge edge = axis->edges; | | | 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 | static void af_latin_hints_compute_blue_edges( AF_GlyphHints hints, AF_LatinMetrics metrics ) { AF_AxisHints axis = &hints->axis[AF_DIMENSION_VERT]; AF_Edge edge = axis->edges; AF_Edge edge_limit = FT_OFFSET( edge, axis->num_edges ); AF_LatinAxis latin = &metrics->axis[AF_DIMENSION_VERT]; FT_Fixed scale = latin->scale; /* compute which blue zones are active, i.e. have their scaled */ /* size < 3/4 pixels */ |
︙ | ︙ | |||
2989 2990 2991 2992 2993 2994 2995 | static void af_latin_hint_edges( AF_GlyphHints hints, AF_Dimension dim ) { AF_AxisHints axis = &hints->axis[dim]; AF_Edge edges = axis->edges; | | | 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 | static void af_latin_hint_edges( AF_GlyphHints hints, AF_Dimension dim ) { AF_AxisHints axis = &hints->axis[dim]; AF_Edge edges = axis->edges; AF_Edge edge_limit = FT_OFFSET( edges, axis->num_edges ); FT_PtrDist n_edges; AF_Edge edge; AF_Edge anchor = NULL; FT_Int has_serifs = 0; AF_StyleClass style_class = hints->metrics->style_class; AF_ScriptClass script_class = af_script_classes[style_class->script]; |
︙ | ︙ |
Changes to jni/freetype/src/autofit/aflatin.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * aflatin.h * * Auto-fitter hinting routines for latin writing system * (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * aflatin.h * * Auto-fitter hinting routines for latin writing system * (specification). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afloader.c.
1 2 3 4 5 6 | /**************************************************************************** * * afloader.c * * Auto-fitter glyph loading routines (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afloader.c * * Auto-fitter glyph loading routines (body). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afloader.h.
1 2 3 4 5 6 | /**************************************************************************** * * afloader.h * * Auto-fitter glyph loading routines (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afloader.h * * Auto-fitter glyph loading routines (specification). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afmodule.c.
1 2 3 4 5 6 | /**************************************************************************** * * afmodule.c * * Auto-fitter module implementation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afmodule.c * * Auto-fitter module implementation (body). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afmodule.h.
1 2 3 4 5 6 | /**************************************************************************** * * afmodule.h * * Auto-fitter module implementation (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afmodule.h * * Auto-fitter module implementation (specification). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afranges.c.
1 2 3 4 5 6 | /**************************************************************************** * * afranges.c * * Auto-fitter Unicode script ranges (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afranges.c * * Auto-fitter Unicode script ranges (body). * * Copyright (C) 2013-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afranges.h.
1 2 3 4 5 6 | /**************************************************************************** * * afranges.h * * Auto-fitter Unicode script ranges (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afranges.h * * Auto-fitter Unicode script ranges (specification). * * Copyright (C) 2013-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afscript.h.
1 2 3 4 5 6 | /**************************************************************************** * * afscript.h * * Auto-fitter scripts (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afscript.h * * Auto-fitter scripts (specification only). * * Copyright (C) 2013-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afshaper.c.
1 2 3 4 5 6 | /**************************************************************************** * * afshaper.c * * HarfBuzz interface for accessing OpenType features (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afshaper.c * * HarfBuzz interface for accessing OpenType features (body). * * Copyright (C) 2013-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afshaper.h.
1 2 3 4 5 6 | /**************************************************************************** * * afshaper.h * * HarfBuzz interface for accessing OpenType features (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afshaper.h * * HarfBuzz interface for accessing OpenType features (specification). * * Copyright (C) 2013-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afstyles.h.
1 2 3 4 5 6 | /**************************************************************************** * * afstyles.h * * Auto-fitter styles (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afstyles.h * * Auto-fitter styles (specification only). * * Copyright (C) 2013-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/aftypes.h.
1 2 3 4 5 6 | /**************************************************************************** * * aftypes.h * * Auto-fitter types (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * aftypes.h * * Auto-fitter types (specification only). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afws-decl.h.
1 2 3 4 5 6 | /**************************************************************************** * * afws-decl.h * * Auto-fitter writing system declarations (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afws-decl.h * * Auto-fitter writing system declarations (specification only). * * Copyright (C) 2013-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/afws-iter.h.
1 2 3 4 5 6 | /**************************************************************************** * * afws-iter.h * * Auto-fitter writing systems iterator (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afws-iter.h * * Auto-fitter writing systems iterator (specification only). * * Copyright (C) 2013-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/autofit.c.
1 2 3 4 5 6 | /**************************************************************************** * * autofit.c * * Auto-fitter module (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * autofit.c * * Auto-fitter module (body). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/module.mk.
1 2 3 4 5 | # # FreeType 2 auto-fitter module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 auto-fitter module definition # # Copyright (C) 2003-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/autofit/rules.mk.
1 2 3 4 5 | # # FreeType 2 auto-fitter module configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 auto-fitter module configuration rules # # Copyright (C) 2003-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftadvanc.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftadvanc.c * * Quick computation of advance widths (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftadvanc.c * * Quick computation of advance widths (body). * * Copyright (C) 2008-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftbase.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftbase.c * * Single object library component (body only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftbase.c * * Single object library component (body only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftbase.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftbase.h * * Private functions used in the `base' module (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftbase.h * * Private functions used in the `base' module (specification). * * Copyright (C) 2008-2022 by * David Turner, Robert Wilhelm, Werner Lemberg, and suzuki toshiya. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
24 25 26 27 28 29 30 31 32 33 34 35 36 37 | FT_BEGIN_HEADER FT_DECLARE_GLYPH( ft_bitmap_glyph_class ) FT_DECLARE_GLYPH( ft_outline_glyph_class ) #ifdef FT_CONFIG_OPTION_MAC_FONTS /* MacOS resource fork cannot exceed 16MB at least for Carbon code; */ /* see https://support.microsoft.com/en-us/kb/130437 */ #define FT_MAC_RFORK_MAX_LEN 0x00FFFFFFUL | > | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | FT_BEGIN_HEADER FT_DECLARE_GLYPH( ft_bitmap_glyph_class ) FT_DECLARE_GLYPH( ft_outline_glyph_class ) FT_DECLARE_GLYPH( ft_svg_glyph_class ) #ifdef FT_CONFIG_OPTION_MAC_FONTS /* MacOS resource fork cannot exceed 16MB at least for Carbon code; */ /* see https://support.microsoft.com/en-us/kb/130437 */ #define FT_MAC_RFORK_MAX_LEN 0x00FFFFFFUL |
︙ | ︙ |
Changes to jni/freetype/src/base/ftbbox.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftbbox.c * * FreeType bbox computation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftbbox.c * * FreeType bbox computation (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used * modified and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftbdf.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftbdf.c * * FreeType API for accessing BDF-specific strings (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftbdf.c * * FreeType API for accessing BDF-specific strings (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftbitmap.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftbitmap.c * * FreeType utility functions for bitmaps (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftbitmap.c * * FreeType utility functions for bitmaps (body). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
476 477 478 479 480 481 482 | /* * Luminosity for sRGB is defined using ~0.2126,0.7152,0.0722 * coefficients for RGB channels *on the linear colors*. * A gamma of 2.2 is fair to assume. And then, we need to * undo the premultiplication too. * | | | | | | 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 | /* * Luminosity for sRGB is defined using ~0.2126,0.7152,0.0722 * coefficients for RGB channels *on the linear colors*. * A gamma of 2.2 is fair to assume. And then, we need to * undo the premultiplication too. * * http://www.brucelindbloom.com/index.html?WorkingSpaceInfo.html#SideNotes * * We do the computation with integers only, applying a gamma of 2.0. * We guarantee 32-bit arithmetic to avoid overflow but the resulting * luminosity fits into 16 bits. * */ l = ( 4731UL /* 0.072186 * 65536 */ * bgra[0] * bgra[0] + 46868UL /* 0.715158 * 65536 */ * bgra[1] * bgra[1] + 13937UL /* 0.212656 * 65536 */ * bgra[2] * bgra[2] ) >> 16; /* * Final transparency can be determined as follows. * * - If alpha is zero, we want 0. * - If alpha is zero and luminosity is zero, we want 255. * - If alpha is zero and luminosity is one, we want 0. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftcalc.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftcalc.c * * Arithmetic computations (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcalc.c * * Arithmetic computations (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftcid.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftcid.c * * FreeType API for accessing CID font information. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcid.c * * FreeType API for accessing CID font information. * * Copyright (C) 2007-2022 by * Derek Clegg and Michael Toftdal. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftcolor.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftcolor.c * * FreeType's glyph color management (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcolor.c * * FreeType's glyph color management (body). * * Copyright (C) 2018-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftdbgmem.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftdbgmem.c * * Memory debugger (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftdbgmem.c * * Memory debugger (body). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftdebug.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftdebug.c * * Debugging and logging component (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftdebug.c * * Debugging and logging component (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/fterrors.c.
1 2 3 4 5 6 | /**************************************************************************** * * fterrors.c * * FreeType API for error code handling. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * fterrors.c * * FreeType API for error code handling. * * Copyright (C) 2018-2022 by * Armin Hasitzka, David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftfntfmt.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftfntfmt.c * * FreeType utility file for font formats (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftfntfmt.c * * FreeType utility file for font formats (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftfstype.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftfstype.c * * FreeType utility file to access FSType data (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftfstype.c * * FreeType utility file to access FSType data (body). * * Copyright (C) 2008-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftgasp.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftgasp.c * * Access of TrueType's `gasp' table (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftgasp.c * * Access of TrueType's `gasp' table (body). * * Copyright (C) 2007-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftgloadr.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftgloadr.c * * The FreeType glyph loader (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftgloadr.c * * The FreeType glyph loader (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftglyph.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftglyph.c * * FreeType convenience functions to handle glyphs (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftglyph.c * * FreeType convenience functions to handle glyphs (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #include <freetype/internal/ftdebug.h> #include <freetype/ftglyph.h> #include <freetype/ftoutln.h> #include <freetype/ftbitmap.h> #include <freetype/internal/ftobjs.h> #include "ftbase.h" /************************************************************************** * * The macro FT_COMPONENT is used in trace mode. It is an implicit | > | 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include <freetype/internal/ftdebug.h> #include <freetype/ftglyph.h> #include <freetype/ftoutln.h> #include <freetype/ftbitmap.h> #include <freetype/internal/ftobjs.h> #include <freetype/otsvg.h> #include "ftbase.h" /************************************************************************** * * The macro FT_COMPONENT is used in trace mode. It is an implicit |
︙ | ︙ | |||
272 273 274 275 276 277 278 279 280 281 282 283 284 285 | ft_outline_glyph_done, /* FT_Glyph_DoneFunc glyph_done */ ft_outline_glyph_copy, /* FT_Glyph_CopyFunc glyph_copy */ ft_outline_glyph_transform, /* FT_Glyph_TransformFunc glyph_transform */ ft_outline_glyph_bbox, /* FT_Glyph_GetBBoxFunc glyph_bbox */ ft_outline_glyph_prepare /* FT_Glyph_PrepareFunc glyph_prepare */ ) /*************************************************************************/ /*************************************************************************/ /**** ****/ /**** FT_Glyph class and API ****/ /**** ****/ /*************************************************************************/ | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | ft_outline_glyph_done, /* FT_Glyph_DoneFunc glyph_done */ ft_outline_glyph_copy, /* FT_Glyph_CopyFunc glyph_copy */ ft_outline_glyph_transform, /* FT_Glyph_TransformFunc glyph_transform */ ft_outline_glyph_bbox, /* FT_Glyph_GetBBoxFunc glyph_bbox */ ft_outline_glyph_prepare /* FT_Glyph_PrepareFunc glyph_prepare */ ) #ifdef FT_CONFIG_OPTION_SVG /*************************************************************************/ /*************************************************************************/ /**** ****/ /**** FT_SvgGlyph support ****/ /**** ****/ /*************************************************************************/ /*************************************************************************/ FT_CALLBACK_DEF( FT_Error ) ft_svg_glyph_init( FT_Glyph svg_glyph, FT_GlyphSlot slot ) { FT_ULong doc_length; FT_SVG_Document document; FT_SvgGlyph glyph = (FT_SvgGlyph)svg_glyph; FT_Error error = FT_Err_Ok; FT_Memory memory = FT_GLYPH( glyph )->library->memory; if ( slot->format != FT_GLYPH_FORMAT_SVG ) { error = FT_THROW( Invalid_Glyph_Format ); goto Exit; } if ( slot->other == NULL ) { error = FT_THROW( Invalid_Slot_Handle ); goto Exit; } document = (FT_SVG_Document)slot->other; if ( document->svg_document_length == 0 ) { error = FT_THROW( Invalid_Slot_Handle ); goto Exit; } /* allocate a new document */ doc_length = document->svg_document_length; if ( FT_QALLOC( glyph->svg_document, doc_length ) ) goto Exit; glyph->svg_document_length = doc_length; glyph->glyph_index = slot->glyph_index; glyph->metrics = document->metrics; glyph->units_per_EM = document->units_per_EM; glyph->start_glyph_id = document->start_glyph_id; glyph->end_glyph_id = document->end_glyph_id; glyph->transform = document->transform; glyph->delta = document->delta; /* copy the document into glyph */ FT_MEM_COPY( glyph->svg_document, document->svg_document, doc_length ); Exit: return error; } FT_CALLBACK_DEF( void ) ft_svg_glyph_done( FT_Glyph svg_glyph ) { FT_SvgGlyph glyph = (FT_SvgGlyph)svg_glyph; FT_Memory memory = svg_glyph->library->memory; /* just free the memory */ FT_FREE( glyph->svg_document ); } FT_CALLBACK_DEF( FT_Error ) ft_svg_glyph_copy( FT_Glyph svg_source, FT_Glyph svg_target ) { FT_SvgGlyph source = (FT_SvgGlyph)svg_source; FT_SvgGlyph target = (FT_SvgGlyph)svg_target; FT_Error error = FT_Err_Ok; FT_Memory memory = FT_GLYPH( source )->library->memory; if ( svg_source->format != FT_GLYPH_FORMAT_SVG ) { error = FT_THROW( Invalid_Glyph_Format ); goto Exit; } if ( source->svg_document_length == 0 ) { error = FT_THROW( Invalid_Slot_Handle ); goto Exit; } target->glyph_index = source->glyph_index; target->svg_document_length = source->svg_document_length; target->metrics = source->metrics; target->units_per_EM = source->units_per_EM; target->start_glyph_id = source->start_glyph_id; target->end_glyph_id = source->end_glyph_id; target->transform = source->transform; target->delta = source->delta; /* allocate space for the SVG document */ if ( FT_QALLOC( target->svg_document, target->svg_document_length ) ) goto Exit; /* copy the document */ FT_MEM_COPY( target->svg_document, source->svg_document, target->svg_document_length ); Exit: return error; } FT_CALLBACK_DEF( void ) ft_svg_glyph_transform( FT_Glyph svg_glyph, const FT_Matrix* _matrix, const FT_Vector* _delta ) { FT_SvgGlyph glyph = (FT_SvgGlyph)svg_glyph; FT_Matrix* matrix = (FT_Matrix*)_matrix; FT_Vector* delta = (FT_Vector*)_delta; FT_Matrix tmp_matrix; FT_Vector tmp_delta; FT_Matrix a, b; FT_Pos x, y; if ( !matrix ) { tmp_matrix.xx = 0x10000; tmp_matrix.xy = 0; tmp_matrix.yx = 0; tmp_matrix.yy = 0x10000; matrix = &tmp_matrix; } if ( !delta ) { tmp_delta.x = 0; tmp_delta.y = 0; delta = &tmp_delta; } a = glyph->transform; b = *matrix; FT_Matrix_Multiply( &b, &a ); x = ADD_LONG( ADD_LONG( FT_MulFix( matrix->xx, glyph->delta.x ), FT_MulFix( matrix->xy, glyph->delta.y ) ), delta->x ); y = ADD_LONG( ADD_LONG( FT_MulFix( matrix->yx, glyph->delta.x ), FT_MulFix( matrix->yy, glyph->delta.y ) ), delta->y ); glyph->delta.x = x; glyph->delta.y = y; glyph->transform = a; } FT_CALLBACK_DEF( FT_Error ) ft_svg_glyph_prepare( FT_Glyph svg_glyph, FT_GlyphSlot slot ) { FT_SvgGlyph glyph = (FT_SvgGlyph)svg_glyph; FT_Error error = FT_Err_Ok; FT_Memory memory = svg_glyph->library->memory; FT_SVG_Document document = NULL; if ( FT_NEW( document ) ) return error; document->svg_document = glyph->svg_document; document->svg_document_length = glyph->svg_document_length; document->metrics = glyph->metrics; document->units_per_EM = glyph->units_per_EM; document->start_glyph_id = glyph->start_glyph_id; document->end_glyph_id = glyph->end_glyph_id; document->transform = glyph->transform; document->delta = glyph->delta; slot->format = FT_GLYPH_FORMAT_SVG; slot->glyph_index = glyph->glyph_index; slot->other = document; return error; } FT_DEFINE_GLYPH( ft_svg_glyph_class, sizeof ( FT_SvgGlyphRec ), FT_GLYPH_FORMAT_SVG, ft_svg_glyph_init, /* FT_Glyph_InitFunc glyph_init */ ft_svg_glyph_done, /* FT_Glyph_DoneFunc glyph_done */ ft_svg_glyph_copy, /* FT_Glyph_CopyFunc glyph_copy */ ft_svg_glyph_transform, /* FT_Glyph_TransformFunc glyph_transform */ NULL, /* FT_Glyph_GetBBoxFunc glyph_bbox */ ft_svg_glyph_prepare /* FT_Glyph_PrepareFunc glyph_prepare */ ) #endif /* FT_CONFIG_OPTION_SVG */ /*************************************************************************/ /*************************************************************************/ /**** ****/ /**** FT_Glyph class and API ****/ /**** ****/ /*************************************************************************/ |
︙ | ︙ | |||
372 373 374 375 376 377 378 379 380 381 382 383 384 385 | /* if it is a bitmap, that's easy :-) */ if ( format == FT_GLYPH_FORMAT_BITMAP ) clazz = &ft_bitmap_glyph_class; /* if it is an outline */ else if ( format == FT_GLYPH_FORMAT_OUTLINE ) clazz = &ft_outline_glyph_class; else { /* try to find a renderer that supports the glyph image format */ FT_Renderer render = FT_Lookup_Renderer( library, format, 0 ); | > > > > > > | 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 | /* if it is a bitmap, that's easy :-) */ if ( format == FT_GLYPH_FORMAT_BITMAP ) clazz = &ft_bitmap_glyph_class; /* if it is an outline */ else if ( format == FT_GLYPH_FORMAT_OUTLINE ) clazz = &ft_outline_glyph_class; #ifdef FT_CONFIG_OPTION_SVG /* if it is an SVG glyph */ else if ( format == FT_GLYPH_FORMAT_SVG ) clazz = &ft_svg_glyph_class; #endif else { /* try to find a renderer that supports the glyph image format */ FT_Renderer render = FT_Lookup_Renderer( library, format, 0 ); |
︙ | ︙ | |||
590 591 592 593 594 595 596 597 598 599 600 601 602 603 | FT_UNUSED( origin ); #endif /* prepare dummy slot for rendering */ error = clazz->glyph_prepare( glyph, &dummy ); if ( !error ) error = FT_Render_Glyph_Internal( glyph->library, &dummy, render_mode ); #if 1 if ( !destroy && origin ) { FT_Vector v; | > > > > > > > > > > | 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 | FT_UNUSED( origin ); #endif /* prepare dummy slot for rendering */ error = clazz->glyph_prepare( glyph, &dummy ); if ( !error ) error = FT_Render_Glyph_Internal( glyph->library, &dummy, render_mode ); #ifdef FT_CONFIG_OPTION_SVG if ( clazz == &ft_svg_glyph_class ) { FT_Memory memory = library->memory; FT_FREE( dummy.other ); } #endif #if 1 if ( !destroy && origin ) { FT_Vector v; |
︙ | ︙ |
Changes to jni/freetype/src/base/ftgxval.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftgxval.c * * FreeType API for validating TrueTypeGX/AAT tables (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftgxval.c * * FreeType API for validating TrueTypeGX/AAT tables (body). * * Copyright (C) 2004-2022 by * Masatake YAMATO, Redhat K.K, * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/base/fthash.c.
︙ | ︙ | |||
239 240 241 242 243 244 245 | FT_Hashnode* bp = hash_bucket( key, hash ); FT_Error error = FT_Err_Ok; nn = *bp; if ( !nn ) { | | | 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 | FT_Hashnode* bp = hash_bucket( key, hash ); FT_Error error = FT_Err_Ok; nn = *bp; if ( !nn ) { if ( FT_QNEW( nn ) ) goto Exit; *bp = nn; nn->key = key; nn->data = data; if ( hash->used >= hash->limit ) |
︙ | ︙ |
Changes to jni/freetype/src/base/ftinit.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftinit.c * * FreeType initialization layer (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftinit.c * * FreeType initialization layer (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftlcdfil.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftlcdfil.c * * FreeType API for color filtering of subpixel bitmap glyphs (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftlcdfil.c * * FreeType API for color filtering of subpixel bitmap glyphs (body). * * Copyright (C) 2006-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftmac.c.
1 2 3 4 5 6 7 8 9 10 | /**************************************************************************** * * ftmac.c * * Mac FOND support. Written by just@letterror.com. * Heavily modified by mpsuzuki, George Williams, and Sean McBride. * * This file is for Mac OS X only; see builds/mac/ftoldmac.c for * classic platforms built by MPW. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /**************************************************************************** * * ftmac.c * * Mac FOND support. Written by just@letterror.com. * Heavily modified by mpsuzuki, George Williams, and Sean McBride. * * This file is for Mac OS X only; see builds/mac/ftoldmac.c for * classic platforms built by MPW. * * Copyright (C) 1996-2022 by * Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
101 102 103 104 105 106 107 | #include <CoreServices/CoreServices.h> #include <ApplicationServices/ApplicationServices.h> #include <sys/syslimits.h> /* PATH_MAX */ /* Don't want warnings about our own use of deprecated functions. */ #define FT_DEPRECATED_ATTRIBUTE | | | 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | #include <CoreServices/CoreServices.h> #include <ApplicationServices/ApplicationServices.h> #include <sys/syslimits.h> /* PATH_MAX */ /* Don't want warnings about our own use of deprecated functions. */ #define FT_DEPRECATED_ATTRIBUTE #include <freetype/ftmac.h> #ifndef kATSOptionFlagsUnRestrictedScope /* since Mac OS X 10.1 */ #define kATSOptionFlagsUnRestrictedScope kATSOptionFlagsDefault #endif /* Set PREFER_LWFN to 1 if LWFN (Type 1) is preferred over |
︙ | ︙ |
Changes to jni/freetype/src/base/ftmm.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftmm.c * * Multiple Master font support (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftmm.c * * Multiple Master font support (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftobjs.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftobjs.c * * The FreeType private base classes (body). * | | > > | 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 | /**************************************************************************** * * ftobjs.c * * The FreeType private base classes (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. * */ #include <freetype/ftlist.h> #include <freetype/ftoutln.h> #include <freetype/ftfntfmt.h> #include <freetype/otsvg.h> #include <freetype/internal/ftvalid.h> #include <freetype/internal/ftobjs.h> #include <freetype/internal/ftdebug.h> #include <freetype/internal/ftrfork.h> #include <freetype/internal/ftstream.h> #include <freetype/internal/sfnt.h> /* for SFNT_Load_Table_Func */ #include <freetype/internal/psaux.h> /* for PS_Driver */ #include <freetype/internal/svginterface.h> #include <freetype/tttables.h> #include <freetype/tttags.h> #include <freetype/ttnameid.h> #include <freetype/internal/services/svprop.h> #include <freetype/internal/services/svsfnt.h> |
︙ | ︙ | |||
323 324 325 326 327 328 329 330 331 332 333 334 335 336 | slot->internal = internal; if ( FT_DRIVER_USES_OUTLINES( driver ) ) error = FT_GlyphLoader_New( memory, &internal->loader ); if ( !error && clazz->init_slot ) error = clazz->init_slot( slot ); Exit: return error; } FT_BASE_DEF( void ) | > > > > > > > > > > > > > | 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 | slot->internal = internal; if ( FT_DRIVER_USES_OUTLINES( driver ) ) error = FT_GlyphLoader_New( memory, &internal->loader ); if ( !error && clazz->init_slot ) error = clazz->init_slot( slot ); #ifdef FT_CONFIG_OPTION_SVG /* if SVG table exists, allocate the space in `slot->other` */ if ( slot->face->face_flags & FT_FACE_FLAG_SVG ) { FT_SVG_Document document = NULL; if ( FT_NEW( document ) ) goto Exit; slot->other = document; } #endif Exit: return error; } FT_BASE_DEF( void ) |
︙ | ︙ | |||
368 369 370 371 372 373 374 | FT_BBox cbox, pbox; FT_Pos x_shift = 0; FT_Pos y_shift = 0; FT_Pos x_left, y_top; FT_Pos width, height, pitch; | > > > > > > > > > > > | | 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 | FT_BBox cbox, pbox; FT_Pos x_shift = 0; FT_Pos y_shift = 0; FT_Pos x_left, y_top; FT_Pos width, height, pitch; if ( slot->format == FT_GLYPH_FORMAT_SVG ) { FT_Module module; SVG_Service svg_service; module = FT_Get_Module( slot->library, "ot-svg" ); svg_service = (SVG_Service)module->clazz->module_interface; return (FT_Bool)svg_service->preset_slot( module, slot, FALSE ); } else if ( slot->format != FT_GLYPH_FORMAT_OUTLINE ) return 1; if ( origin ) { x_shift = origin->x; y_shift = origin->y; } |
︙ | ︙ | |||
560 561 562 563 564 565 566 | slot->bitmap_left = 0; slot->bitmap_top = 0; slot->num_subglyphs = 0; slot->subglyphs = NULL; slot->control_data = NULL; slot->control_len = 0; | > > | > > > > > > > > > > > > > > > > > | > > > > > > > > > > > > > > > > > | 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 | slot->bitmap_left = 0; slot->bitmap_top = 0; slot->num_subglyphs = 0; slot->subglyphs = NULL; slot->control_data = NULL; slot->control_len = 0; #ifndef FT_CONFIG_OPTION_SVG slot->other = NULL; #else if ( !( slot->face->face_flags & FT_FACE_FLAG_SVG ) ) slot->other = NULL; else { if ( slot->internal->flags & FT_GLYPH_OWN_GZIP_SVG ) { FT_Memory memory = slot->face->memory; FT_SVG_Document doc = (FT_SVG_Document)slot->other; FT_FREE( doc->svg_document ); slot->internal->load_flags &= ~FT_GLYPH_OWN_GZIP_SVG; } } #endif slot->format = FT_GLYPH_FORMAT_NONE; slot->linearHoriAdvance = 0; slot->linearVertAdvance = 0; slot->advance.x = 0; slot->advance.y = 0; slot->lsb_delta = 0; slot->rsb_delta = 0; } static void ft_glyphslot_done( FT_GlyphSlot slot ) { FT_Driver driver = slot->face->driver; FT_Driver_Class clazz = driver->clazz; FT_Memory memory = driver->root.memory; #ifdef FT_CONFIG_OPTION_SVG if ( slot->face->face_flags & FT_FACE_FLAG_SVG ) { /* free memory in case SVG was there */ if ( slot->internal->flags & FT_GLYPH_OWN_GZIP_SVG ) { FT_SVG_Document doc = (FT_SVG_Document)slot->other; FT_FREE( doc->svg_document ); slot->internal->flags &= ~FT_GLYPH_OWN_GZIP_SVG; } FT_FREE( slot->other ); } #endif if ( clazz->done_slot ) clazz->done_slot( slot ); /* free bitmap buffer if needed */ ft_glyphslot_free_bitmap( slot ); |
︙ | ︙ | |||
853 854 855 856 857 858 859 860 861 862 863 864 865 866 | slot = face->glyph; ft_glyphslot_clear( slot ); driver = face->driver; library = driver->root.library; hinter = library->auto_hinter; /* resolve load flags dependencies */ if ( load_flags & FT_LOAD_NO_RECURSE ) load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_IGNORE_TRANSFORM; | > > > > > | 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 | slot = face->glyph; ft_glyphslot_clear( slot ); driver = face->driver; library = driver->root.library; hinter = library->auto_hinter; /* undefined scale means no scale */ if ( face->size->metrics.x_ppem == 0 || face->size->metrics.y_ppem == 0 ) load_flags |= FT_LOAD_NO_SCALE; /* resolve load flags dependencies */ if ( load_flags & FT_LOAD_NO_RECURSE ) load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_IGNORE_TRANSFORM; |
︙ | ︙ | |||
943 944 945 946 947 948 949 | } if ( autohint ) { FT_AutoHinter_Interface hinting; | | | | > > > > > > | > > > | > | 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 | } if ( autohint ) { FT_AutoHinter_Interface hinting; /* XXX: The use of the `FT_LOAD_XXX_ONLY` flags is not very */ /* elegant. */ /* try to load SVG documents if available */ if ( FT_HAS_SVG( face ) ) { error = driver->clazz->load_glyph( slot, face->size, glyph_index, load_flags | FT_LOAD_SVG_ONLY ); if ( !error && slot->format == FT_GLYPH_FORMAT_SVG ) goto Load_Ok; } /* try to load embedded bitmaps if available */ if ( FT_HAS_FIXED_SIZES( face ) && ( load_flags & FT_LOAD_NO_BITMAP ) == 0 ) { error = driver->clazz->load_glyph( slot, face->size, glyph_index, load_flags | FT_LOAD_SBITS_ONLY ); |
︙ | ︙ | |||
1593 1594 1595 1596 1597 1598 1599 | { FT_Memory memory = stream->memory; FT_FREE( stream->base ); stream->size = 0; | < | 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 | { FT_Memory memory = stream->memory; FT_FREE( stream->base ); stream->size = 0; stream->close = NULL; } /* Create a new memory stream from a buffer and a size. */ /* From `ftmac.c'. */ static FT_Error |
︙ | ︙ | |||
2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 | FT_Module* cur; FT_Module* limit; #ifndef FT_CONFIG_OPTION_MAC_FONTS FT_UNUSED( test_mac_fonts ); #endif #ifdef FT_DEBUG_LEVEL_TRACE FT_TRACE3(( "FT_Open_Face: " )); if ( face_index < 0 ) FT_TRACE3(( "Requesting number of faces and named instances\n")); else { | > > > > > > > > > > | 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 | FT_Module* cur; FT_Module* limit; #ifndef FT_CONFIG_OPTION_MAC_FONTS FT_UNUSED( test_mac_fonts ); #endif /* only use lower 31 bits together with sign bit */ if ( face_index > 0 ) face_index &= 0x7FFFFFFFL; else { face_index = -face_index; face_index &= 0x7FFFFFFFL; face_index = -face_index; } #ifdef FT_DEBUG_LEVEL_TRACE FT_TRACE3(( "FT_Open_Face: " )); if ( face_index < 0 ) FT_TRACE3(( "Requesting number of faces and named instances\n")); else { |
︙ | ︙ | |||
3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 | FT_Driver_Class clazz; FT_ULong strike_index; if ( !face ) return FT_THROW( Invalid_Face_Handle ); if ( !req || req->width < 0 || req->height < 0 || req->type >= FT_SIZE_REQUEST_TYPE_MAX ) return FT_THROW( Invalid_Argument ); /* signal the auto-hinter to recompute its size metrics */ /* (if requested) */ face->size->internal->autohint_metrics.x_scale = 0; | > > > | 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 | FT_Driver_Class clazz; FT_ULong strike_index; if ( !face ) return FT_THROW( Invalid_Face_Handle ); if ( !face->size ) return FT_THROW( Invalid_Size_Handle ); if ( !req || req->width < 0 || req->height < 0 || req->type >= FT_SIZE_REQUEST_TYPE_MAX ) return FT_THROW( Invalid_Argument ); /* signal the auto-hinter to recompute its size metrics */ /* (if requested) */ face->size->internal->autohint_metrics.x_scale = 0; |
︙ | ︙ | |||
4470 4471 4472 4473 4474 4475 4476 | FT_Renderer_Class* clazz = (FT_Renderer_Class*)module->clazz; render->clazz = clazz; render->glyph_format = clazz->glyph_format; /* allocate raster object if needed */ | | > > > > > | 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 | FT_Renderer_Class* clazz = (FT_Renderer_Class*)module->clazz; render->clazz = clazz; render->glyph_format = clazz->glyph_format; /* allocate raster object if needed */ if ( clazz->raster_class && clazz->raster_class->raster_new ) { error = clazz->raster_class->raster_new( memory, &render->raster ); if ( error ) goto Fail; render->raster_render = clazz->raster_class->raster_render; render->render = clazz->render_glyph; } #ifdef FT_CONFIG_OPTION_SVG if ( clazz->glyph_format == FT_GLYPH_FORMAT_SVG ) render->render = clazz->render_glyph; #endif /* add to list */ node->data = module; FT_List_Add( &library->renderers, node ); ft_set_current_renderer( library ); } |
︙ | ︙ | |||
5725 5726 5727 5728 5729 5730 5731 | FT_OpaquePaint opaque_paint, FT_COLR_Paint* paint ) { TT_Face ttface; SFNT_Service sfnt; | | | 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 | FT_OpaquePaint opaque_paint, FT_COLR_Paint* paint ) { TT_Face ttface; SFNT_Service sfnt; if ( !face || !paint ) return 0; if ( !FT_IS_SFNT( face ) ) return 0; ttface = (TT_Face)face; sfnt = (SFNT_Service)ttface->sfnt; |
︙ | ︙ |
Changes to jni/freetype/src/base/ftotval.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftotval.c * * FreeType API for validating OpenType tables (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftotval.c * * FreeType API for validating OpenType tables (body). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftoutln.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftoutln.c * * FreeType outline management (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftoutln.c * * FreeType outline management (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftpatent.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * ftpatent.c * * FreeType API for checking patented TrueType bytecode instructions * (body). Obsolete, retained for backward compatibility. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * ftpatent.c * * FreeType API for checking patented TrueType bytecode instructions * (body). Obsolete, retained for backward compatibility. * * Copyright (C) 2007-2022 by * David Turner. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftpfr.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftpfr.c * * FreeType API for accessing PFR-specific data (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftpfr.c * * FreeType API for accessing PFR-specific data (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftpsprop.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * ftpsprop.c * * Get and set properties of PostScript drivers (body). * See `ftdriver.h' for available properties. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * ftpsprop.c * * Get and set properties of PostScript drivers (body). * See `ftdriver.h' for available properties. * * Copyright (C) 2017-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftrfork.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftrfork.c * * Embedded resource forks accessor (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftrfork.c * * Embedded resource forks accessor (body). * * Copyright (C) 2004-2022 by * Masatake YAMATO and Redhat K.K. * * FT_Raccess_Get_HeaderInfo() and raccess_guess_darwin_hfsplus() are * derived from ftobjs.c. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project |
︙ | ︙ | |||
864 865 866 867 868 869 870 | const char *original_name, const char *insertion ) { char* new_name = NULL; const char* tmp; const char* slash; size_t new_length; | | < < | 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 | const char *original_name, const char *insertion ) { char* new_name = NULL; const char* tmp; const char* slash; size_t new_length; FT_Error error; new_length = ft_strlen( original_name ) + ft_strlen( insertion ); if ( FT_QALLOC( new_name, new_length + 1 ) ) return NULL; tmp = ft_strrchr( original_name, '/' ); |
︙ | ︙ |
Changes to jni/freetype/src/base/ftsnames.c.
1 2 3 4 5 6 7 8 9 | /**************************************************************************** * * ftsnames.c * * Simple interface to access SFNT name tables (which are used * to hold font names, copyright info, notices, etc.) (body). * * This is _not_ used to retrieve glyph names! * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /**************************************************************************** * * ftsnames.c * * Simple interface to access SFNT name tables (which are used * to hold font names, copyright info, notices, etc.) (body). * * This is _not_ used to retrieve glyph names! * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftstream.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftstream.c * * I/O stream support (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftstream.c * * I/O stream support (body). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftstroke.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftstroke.c * * FreeType path stroker (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftstroke.c * * FreeType path stroker (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftsynth.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftsynth.c * * FreeType synthesizing code for emboldening and slanting (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsynth.c * * FreeType synthesizing code for emboldening and slanting (body). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftsystem.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftsystem.c * * ANSI-specific FreeType low-level system interface (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsystem.c * * ANSI-specific FreeType low-level system interface (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/fttrigon.c.
1 2 3 4 5 6 | /**************************************************************************** * * fttrigon.c * * FreeType trigonometric functions (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * fttrigon.c * * FreeType trigonometric functions (body). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/fttype1.c.
1 2 3 4 5 6 | /**************************************************************************** * * fttype1.c * * FreeType utility file for PS names support (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * fttype1.c * * FreeType utility file for PS names support (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftutil.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftutil.c * * FreeType utility file for memory and list management (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftutil.c * * FreeType utility file for memory and list management (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/ftver.rc.
1 2 3 4 5 6 | /***************************************************************************/ /* */ /* ftver.rc */ /* */ /* FreeType VERSIONINFO resource for Windows DLLs. */ /* */ | | | | | 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 | /***************************************************************************/ /* */ /* ftver.rc */ /* */ /* FreeType VERSIONINFO resource for Windows DLLs. */ /* */ /* Copyright (C) 2018-2022 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ /* modified, and distributed under the terms of the FreeType project */ /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ /* this file you indicate that you have read the license and */ /* understand and accept it fully. */ /* */ /***************************************************************************/ #include<windows.h> #define FT_VERSION 2,12,0,0 #define FT_VERSION_STR "2.12.0" VS_VERSION_INFO VERSIONINFO FILEVERSION FT_VERSION PRODUCTVERSION FT_VERSION FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG |
︙ | ︙ | |||
41 42 43 44 45 46 47 | BLOCK "040904E4" BEGIN VALUE "CompanyName", "The FreeType Project" VALUE "FileDescription", "Font Rendering Library" VALUE "FileVersion", FT_VERSION_STR VALUE "ProductName", "FreeType" VALUE "ProductVersion", FT_VERSION_STR | | | 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | BLOCK "040904E4" BEGIN VALUE "CompanyName", "The FreeType Project" VALUE "FileDescription", "Font Rendering Library" VALUE "FileVersion", FT_VERSION_STR VALUE "ProductName", "FreeType" VALUE "ProductVersion", FT_VERSION_STR VALUE "LegalCopyright", "\251 2000-2022 The FreeType Project www.freetype.org. All rights reserved." VALUE "InternalName", "freetype" VALUE "OriginalFilename", FT_FILENAME END END BLOCK "VarFileInfo" BEGIN /* The following line should only be modified for localized versions. */ /* It consists of any number of WORD,WORD pairs, with each pair */ /* describing a "language,codepage" combination supported by the file. */ VALUE "Translation", 0x409, 1252 END END |
Changes to jni/freetype/src/base/ftwinfnt.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftwinfnt.c * * FreeType API for accessing Windows FNT specific info (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftwinfnt.c * * FreeType API for accessing Windows FNT specific info (body). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/base/rules.mk.
1 2 3 4 5 | # # FreeType 2 base layer configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 base layer configuration rules # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/bdf/README.
︙ | ︙ | |||
9 10 11 12 13 14 15 | BDF (Bitmap Distribution Format) is a bitmap font format defined by Adobe, which is intended to be easily understood by both humans and computers. This code implements a BDF driver for the FreeType library, following the Adobe Specification V 2.2. The specification of the BDF font format is available from Adobe's web site: | | > > > > | 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 | BDF (Bitmap Distribution Format) is a bitmap font format defined by Adobe, which is intended to be easily understood by both humans and computers. This code implements a BDF driver for the FreeType library, following the Adobe Specification V 2.2. The specification of the BDF font format is available from Adobe's web site: https://adobe-type-tools.github.io/font-tech-notes/pdfs/5005.BDF_Spec.pdf Many good bitmap fonts in bdf format come with XFree86 (www.XFree86.org). They do not define vertical metrics, because the X Consortium BDF specification has removed them. Encodings ********* [This section is out of date, retained for historical reasons. BDF properties can be retrieved with `FT_Get_BDF_Property`, character set ID values with `FT_Get_BDF_Charset_ID`.] The variety of encodings that accompanies bdf fonts appears to encompass the small set defined in freetype.h. On the other hand, two properties that specify encoding and registry are usually defined in bdf fonts. I decided to make these two properties directly accessible, leaving to the client application the work of interpreting them. For instance: |
︙ | ︙ |
Changes to jni/freetype/src/bdf/bdflib.c.
︙ | ︙ | |||
609 610 611 612 613 614 615 | goto Exit; } new_size = buf_size * 2; if ( FT_QREALLOC( buf, buf_size, new_size ) ) goto Exit; | | < | 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 | goto Exit; } new_size = buf_size * 2; if ( FT_QREALLOC( buf, buf_size, new_size ) ) goto Exit; cursor = avail; buf_size = new_size; } else { bytes = avail - start; FT_MEM_MOVE( buf, buf + start, bytes ); cursor = bytes; start = 0; } refill = 1; continue; } /* Temporarily NUL-terminate the line. */ |
︙ | ︙ | |||
1171 1172 1173 1174 1175 1176 1177 | if ( font->props_used == font->props_size ) { if ( FT_QRENEW_ARRAY( font->props, font->props_size, font->props_size + 1 ) ) goto Exit; | < | 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 | if ( font->props_used == font->props_size ) { if ( FT_QRENEW_ARRAY( font->props, font->props_size, font->props_size + 1 ) ) goto Exit; font->props_size++; } if ( *propid >= _num_bdf_properties ) prop = font->user_props + ( *propid - _num_bdf_properties ); else prop = (bdf_property_t*)_bdf_properties + *propid; |
︙ | ︙ | |||
1533 1534 1535 1536 1537 1538 1539 | } else { /* Free up the glyph name if the unencoded shouldn't be */ /* kept. */ FT_FREE( p->glyph_name ); } | < < | 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 | } else { /* Free up the glyph name if the unencoded shouldn't be */ /* kept. */ FT_FREE( p->glyph_name ); } } /* Clear the flags that might be added when width and height are */ /* checked for consistency. */ p->flags &= ~( BDF_GLYPH_WIDTH_CHECK_ | BDF_GLYPH_HEIGHT_CHECK_ ); p->flags |= BDF_ENCODING_; |
︙ | ︙ | |||
1949 1950 1951 1952 1953 1954 1955 | error = ft_hash_str_insert( prop->name, i, &(font->proptbl), memory ); if ( error ) goto Exit; } } | | | 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 | error = ft_hash_str_insert( prop->name, i, &(font->proptbl), memory ); if ( error ) goto Exit; } } if ( FT_QALLOC( p->font->internal, sizeof ( FT_HashRec ) ) ) goto Exit; error = ft_hash_str_init( (FT_Hash)p->font->internal, memory ); if ( error ) goto Exit; p->font->spacing = p->opts->font_spacing; p->font->default_char = ~0UL; |
︙ | ︙ |
Changes to jni/freetype/src/bzip2/ftbzip2.c.
1 2 3 4 5 6 7 8 9 10 | /**************************************************************************** * * ftbzip2.c * * FreeType support for .bz2 compressed files. * * This optional component relies on libbz2. It should mainly be used to * parse compressed PCF fonts, as found with many X11 server * distributions. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /**************************************************************************** * * ftbzip2.c * * FreeType support for .bz2 compressed files. * * This optional component relies on libbz2. It should mainly be used to * parse compressed PCF fonts, as found with many X11 server * distributions. * * Copyright (C) 2010-2022 by * Joel Klinghed. * * based on `src/gzip/ftgzip.c' * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ | |||
98 99 100 101 102 103 104 | FT_Stream source; /* parent/source stream */ FT_Stream stream; /* embedding stream */ FT_Memory memory; /* memory allocator */ bz_stream bzstream; /* bzlib input stream */ FT_Byte input[FT_BZIP2_BUFFER_SIZE]; /* input read buffer */ | | | > | 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | FT_Stream source; /* parent/source stream */ FT_Stream stream; /* embedding stream */ FT_Memory memory; /* memory allocator */ bz_stream bzstream; /* bzlib input stream */ FT_Byte input[FT_BZIP2_BUFFER_SIZE]; /* input read buffer */ FT_Byte buffer[FT_BZIP2_BUFFER_SIZE]; /* output buffer */ FT_ULong pos; /* position in output */ FT_Byte* cursor; FT_Byte* limit; FT_Bool reset; /* reset before next read */ } FT_BZip2FileRec, *FT_BZip2File; /* check and skip .bz2 header - we don't support `transparent' compression */ static FT_Error ft_bzip2_check_header( FT_Stream stream ) |
︙ | ︙ | |||
149 150 151 152 153 154 155 156 157 158 159 160 161 162 | zip->stream = stream; zip->source = source; zip->memory = stream->memory; zip->limit = zip->buffer + FT_BZIP2_BUFFER_SIZE; zip->cursor = zip->limit; zip->pos = 0; /* check .bz2 header */ { stream = source; error = ft_bzip2_check_header( stream ); if ( error ) | > | 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | zip->stream = stream; zip->source = source; zip->memory = stream->memory; zip->limit = zip->buffer + FT_BZIP2_BUFFER_SIZE; zip->cursor = zip->limit; zip->pos = 0; zip->reset = 0; /* check .bz2 header */ { stream = source; error = ft_bzip2_check_header( stream ); if ( error ) |
︙ | ︙ | |||
224 225 226 227 228 229 230 231 232 233 234 235 236 237 | bzstream->next_in = (char*)zip->input; bzstream->avail_out = 0; bzstream->next_out = (char*)zip->buffer; zip->limit = zip->buffer + FT_BZIP2_BUFFER_SIZE; zip->cursor = zip->limit; zip->pos = 0; BZ2_bzDecompressInit( bzstream, 0, 0 ); } return error; } | > | 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 | bzstream->next_in = (char*)zip->input; bzstream->avail_out = 0; bzstream->next_out = (char*)zip->buffer; zip->limit = zip->buffer + FT_BZIP2_BUFFER_SIZE; zip->cursor = zip->limit; zip->pos = 0; zip->reset = 0; BZ2_bzDecompressInit( bzstream, 0, 0 ); } return error; } |
︙ | ︙ | |||
298 299 300 301 302 303 304 | error = ft_bzip2_file_fill_input( zip ); if ( error ) break; } err = BZ2_bzDecompress( bzstream ); | > > > > | | | | | | | | | | | | > | 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 | error = ft_bzip2_file_fill_input( zip ); if ( error ) break; } err = BZ2_bzDecompress( bzstream ); if ( err != BZ_OK ) { zip->reset = 1; if ( err == BZ_STREAM_END ) { zip->limit = (FT_Byte*)bzstream->next_out; if ( zip->limit == zip->cursor ) error = FT_THROW( Invalid_Stream_Operation ); break; } else { zip->limit = zip->cursor; error = FT_THROW( Invalid_Stream_Operation ); break; } } } return error; } |
︙ | ︙ | |||
359 360 361 362 363 364 365 | FT_Byte* buffer, FT_ULong count ) { FT_ULong result = 0; FT_Error error; | | | | | 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 | FT_Byte* buffer, FT_ULong count ) { FT_ULong result = 0; FT_Error error; /* Reset inflate stream if seeking backwards or bzip reported an error. */ /* Yes, that is not too efficient, but it saves memory :-) */ if ( pos < zip->pos || zip->reset ) { error = ft_bzip2_file_reset( zip ); if ( error ) goto Exit; } /* skip unwanted bytes */ |
︙ | ︙ |
Changes to jni/freetype/src/bzip2/rules.mk.
1 2 3 4 | # # FreeType 2 BZIP2 support configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 | # # FreeType 2 BZIP2 support configuration rules # # Copyright (C) 2010-2022 by # Joel Klinghed. # # based on `src/lzw/rules.mk' # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftcache.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftcache.c * * The FreeType Caching sub-system (body only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcache.c * * The FreeType Caching sub-system (body only). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftcbasic.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftcbasic.c * * The FreeType basic cache interface (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcbasic.c * * The FreeType basic cache interface (body). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include "ftcglyph.h" #include "ftcimage.h" #include "ftcsbits.h" #include "ftccback.h" #include "ftcerror.h" #define FT_COMPONENT cache /* * Basic Families * */ | > | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #include "ftcglyph.h" #include "ftcimage.h" #include "ftcsbits.h" #include "ftccback.h" #include "ftcerror.h" #undef FT_COMPONENT #define FT_COMPONENT cache /* * Basic Families * */ |
︙ | ︙ | |||
178 179 180 181 182 183 184 | error = FT_Load_Glyph( face, gindex, (FT_Int)family->attrs.load_flags ); if ( !error ) { if ( face->glyph->format == FT_GLYPH_FORMAT_BITMAP || | | > | 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 | error = FT_Load_Glyph( face, gindex, (FT_Int)family->attrs.load_flags ); if ( !error ) { if ( face->glyph->format == FT_GLYPH_FORMAT_BITMAP || face->glyph->format == FT_GLYPH_FORMAT_OUTLINE || face->glyph->format == FT_GLYPH_FORMAT_SVG ) { /* ok, copy it */ FT_Glyph glyph; error = FT_Get_Glyph( face->glyph, &glyph ); if ( !error ) |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftccache.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftccache.c * * The FreeType internal cache interface (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftccache.c * * The FreeType internal cache interface (body). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftccache.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftccache.h * * FreeType internal cache interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftccache.h * * FreeType internal cache interface (specification). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftccback.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftccback.h * * Callback functions of the caching sub-system (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftccback.h * * Callback functions of the caching sub-system (specification only). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftccmap.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftccmap.c * * FreeType CharMap cache (body) * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftccmap.c * * FreeType CharMap cache (body) * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
112 113 114 115 116 117 118 | FTC_CMapQuery query = (FTC_CMapQuery)ftcquery; FT_Error error; FT_Memory memory = cache->memory; FTC_CMapNode node = NULL; FT_UInt nn; | | | 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | FTC_CMapQuery query = (FTC_CMapQuery)ftcquery; FT_Error error; FT_Memory memory = cache->memory; FTC_CMapNode node = NULL; FT_UInt nn; if ( !FT_QNEW( node ) ) { node->face_id = query->face_id; node->cmap_index = query->cmap_index; node->first = (query->char_code / FTC_CMAP_INDICES_MAX) * FTC_CMAP_INDICES_MAX; for ( nn = 0; nn < FTC_CMAP_INDICES_MAX; nn++ ) |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftcerror.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftcerror.h * * Caching sub-system error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcerror.h * * Caching sub-system error codes (specification only). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftcglyph.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftcglyph.c * * FreeType Glyph Image (FT_Glyph) cache (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcglyph.c * * FreeType Glyph Image (FT_Glyph) cache (body). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftcglyph.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftcglyph.h * * FreeType abstract glyph cache (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcglyph.h * * FreeType abstract glyph cache (specification). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftcimage.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftcimage.c * * FreeType Image cache (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcimage.c * * FreeType Image cache (body). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
60 61 62 63 64 65 66 | FTC_Cache cache ) { FT_Memory memory = cache->memory; FT_Error error; FTC_INode inode = NULL; | | > | 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 | FTC_Cache cache ) { FT_Memory memory = cache->memory; FT_Error error; FTC_INode inode = NULL; if ( !FT_QNEW( inode ) ) { FTC_GNode gnode = FTC_GNODE( inode ); FTC_Family family = gquery->family; FT_UInt gindex = gquery->gindex; FTC_IFamilyClass clazz = FTC_CACHE_IFAMILY_CLASS( cache ); /* initialize its inner fields */ FTC_GNode_Init( gnode, gindex, family ); inode->glyph = NULL; /* we will now load the glyph image */ error = clazz->family_load_glyph( family, gindex, cache, &inode->glyph ); if ( error ) { FTC_INode_Free( inode, cache ); |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftcimage.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftcimage.h * * FreeType Generic Image cache (specification) * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcimage.h * * FreeType Generic Image cache (specification) * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftcmanag.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftcmanag.c * * FreeType Cache Manager (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcmanag.c * * FreeType Cache Manager (body). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftcmanag.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftcmanag.h * * FreeType Cache Manager (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcmanag.h * * FreeType Cache Manager (specification). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftcmru.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftcmru.c * * FreeType MRU support (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcmru.c * * FreeType MRU support (body). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
258 259 260 261 262 263 264 | FTC_MruNode_Remove( &list->nodes, node ); list->num_nodes--; if ( list->clazz.node_done ) list->clazz.node_done( node, list->data ); } | > > | | 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 | FTC_MruNode_Remove( &list->nodes, node ); list->num_nodes--; if ( list->clazz.node_done ) list->clazz.node_done( node, list->data ); } /* zero new node in case of node_init failure */ else if ( FT_ALLOC( node, list->clazz.node_size ) ) goto Exit; error = list->clazz.node_init( node, key, list->data ); if ( error ) goto Fail; FTC_MruNode_Prepend( &list->nodes, node ); |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftcmru.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftcmru.h * * Simple MRU list-cache (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcmru.h * * Simple MRU list-cache (specification). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftcsbits.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftcsbits.c * * FreeType sbits manager (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcsbits.c * * FreeType sbits manager (body). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
229 230 231 232 233 234 235 | total = clazz->family_get_count( family, cache->manager ); if ( total == 0 || gindex >= total ) { error = FT_THROW( Invalid_Argument ); goto Exit; } | | | > > | 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 | total = clazz->family_get_count( family, cache->manager ); if ( total == 0 || gindex >= total ) { error = FT_THROW( Invalid_Argument ); goto Exit; } if ( !FT_QNEW( snode ) ) { FT_UInt count, start; start = gindex - ( gindex % FTC_SBIT_ITEMS_PER_NODE ); count = total - start; if ( count > FTC_SBIT_ITEMS_PER_NODE ) count = FTC_SBIT_ITEMS_PER_NODE; FTC_GNode_Init( FTC_GNODE( snode ), start, family ); snode->count = count; for ( node_count = 0; node_count < count; node_count++ ) { snode->sbits[node_count].width = 255; snode->sbits[node_count].height = 0; snode->sbits[node_count].buffer = NULL; } error = ftc_snode_load( snode, cache->manager, gindex, NULL ); if ( error ) |
︙ | ︙ |
Changes to jni/freetype/src/cache/ftcsbits.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftcsbits.h * * A small-bitmap cache (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftcsbits.h * * A small-bitmap cache (specification). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cache/rules.mk.
1 2 3 4 5 | # # FreeType 2 Cache configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Cache configuration rules # # Copyright (C) 2000-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/cff/cff.c.
1 2 3 4 5 6 | /**************************************************************************** * * cff.c * * FreeType OpenType driver component (body only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cff.c * * FreeType OpenType driver component (body only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cff/cffcmap.c.
1 2 3 4 5 6 | /**************************************************************************** * * cffcmap.c * * CFF character mapping table (cmap) support (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cffcmap.c * * CFF character mapping table (cmap) support (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cff/cffcmap.h.
1 2 3 4 5 6 | /**************************************************************************** * * cffcmap.h * * CFF character mapping table (cmap) support (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cffcmap.h * * CFF character mapping table (cmap) support (specification). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cff/cffdrivr.c.
1 2 3 4 5 6 | /**************************************************************************** * * cffdrivr.c * * OpenType font driver implementation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cffdrivr.c * * OpenType font driver implementation (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cff/cffdrivr.h.
1 2 3 4 5 6 | /**************************************************************************** * * cffdrivr.h * * High-level OpenType driver interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cffdrivr.h * * High-level OpenType driver interface (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cff/cfferrs.h.
1 2 3 4 5 6 | /**************************************************************************** * * cfferrs.h * * CFF error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cfferrs.h * * CFF error codes (specification only). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cff/cffgload.c.
1 2 3 4 5 6 | /**************************************************************************** * * cffgload.c * * OpenType Glyph Loader (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cffgload.c * * OpenType Glyph Loader (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include <freetype/ftoutln.h> #include <freetype/ftdriver.h> #include "cffload.h" #include "cffgload.h" #include "cfferrs.h" /************************************************************************** * * The macro FT_COMPONENT is used in trace mode. It is an implicit * parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log * messages during execution. | > > > > > > > > | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #include <freetype/ftoutln.h> #include <freetype/ftdriver.h> #include "cffload.h" #include "cffgload.h" #include "cfferrs.h" #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT #define IS_DEFAULT_INSTANCE( _face ) \ ( !( FT_IS_NAMED_INSTANCE( _face ) || \ FT_IS_VARIATION( _face ) ) ) #else #define IS_DEFAULT_INSTANCE( _face ) 1 #endif /************************************************************************** * * The macro FT_COMPONENT is used in trace mode. It is an implicit * parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log * messages during execution. |
︙ | ︙ | |||
251 252 253 254 255 256 257 | { CFF_Face cff_face = (CFF_Face)size->root.face; SFNT_Service sfnt = (SFNT_Service)cff_face->sfnt; FT_Stream stream = cff_face->root.stream; if ( size->strike_index != 0xFFFFFFFFUL && | < | > | 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 | { CFF_Face cff_face = (CFF_Face)size->root.face; SFNT_Service sfnt = (SFNT_Service)cff_face->sfnt; FT_Stream stream = cff_face->root.stream; if ( size->strike_index != 0xFFFFFFFFUL && ( load_flags & FT_LOAD_NO_BITMAP ) == 0 && IS_DEFAULT_INSTANCE( size->root.face ) ) { TT_SBit_MetricsRec metrics; error = sfnt->load_sbit_image( face, size->strike_index, glyph_index, |
︙ | ︙ | |||
342 343 344 345 346 347 348 349 350 351 352 353 354 355 | #endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */ /* return immediately if we only want the embedded bitmaps */ if ( load_flags & FT_LOAD_SBITS_ONLY ) return FT_THROW( Invalid_Argument ); /* if we have a CID subfont, use its matrix (which has already */ /* been multiplied with the root matrix) */ /* this scaling is only relevant if the PS hinter isn't active */ if ( cff->num_subfonts ) { FT_Long top_upm, sub_upm; | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | #endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */ /* return immediately if we only want the embedded bitmaps */ if ( load_flags & FT_LOAD_SBITS_ONLY ) return FT_THROW( Invalid_Argument ); #ifdef FT_CONFIG_OPTION_SVG /* check for OT-SVG */ if ( ( load_flags & FT_LOAD_COLOR ) && ( (TT_Face)glyph->root.face )->svg ) { /* * We load the SVG document and try to grab the advances from the * table. For the bearings we rely on the presetting hook to do that. */ FT_Short dummy; FT_UShort advanceX; FT_UShort advanceY; SFNT_Service sfnt; if ( size->root.metrics.x_ppem < 1 || size->root.metrics.y_ppem < 1 ) { error = FT_THROW( Invalid_Size_Handle ); return error; } FT_TRACE3(( "Trying to load SVG glyph\n" )); sfnt = (SFNT_Service)((TT_Face)glyph->root.face)->sfnt; error = sfnt->load_svg_doc( (FT_GlyphSlot)glyph, glyph_index ); if ( !error ) { FT_TRACE3(( "Successfully loaded SVG glyph\n" )); glyph->root.format = FT_GLYPH_FORMAT_SVG; /* * If horizontal or vertical advances are not present in the table, * this is a problem with the font since the standard requires them. * However, we are graceful and calculate the values by ourselves * for the vertical case. */ sfnt->get_metrics( face, FALSE, glyph_index, &dummy, &advanceX ); sfnt->get_metrics( face, TRUE, glyph_index, &dummy, &advanceY ); advanceX = (FT_UShort)FT_MulDiv( advanceX, glyph->root.face->size->metrics.x_ppem, glyph->root.face->units_per_EM ); advanceY = (FT_UShort)FT_MulDiv( advanceY, glyph->root.face->size->metrics.y_ppem, glyph->root.face->units_per_EM ); glyph->root.metrics.horiAdvance = advanceX << 6; glyph->root.metrics.vertAdvance = advanceY << 6; return error; } FT_TRACE3(( "Failed to load SVG glyph\n" )); } #endif /* FT_CONFIG_OPTION_SVG */ /* if we have a CID subfont, use its matrix (which has already */ /* been multiplied with the root matrix) */ /* this scaling is only relevant if the PS hinter isn't active */ if ( cff->num_subfonts ) { FT_Long top_upm, sub_upm; |
︙ | ︙ |
Changes to jni/freetype/src/cff/cffgload.h.
1 2 3 4 5 6 | /**************************************************************************** * * cffgload.h * * OpenType Glyph Loader (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cffgload.h * * OpenType Glyph Loader (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cff/cffload.c.
1 2 3 4 5 6 | /**************************************************************************** * * cffload.c * * OpenType and CFF data/program tables loader (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cffload.c * * OpenType and CFF data/program tables loader (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cff/cffload.h.
1 2 3 4 5 6 | /**************************************************************************** * * cffload.h * * OpenType & CFF data/program tables loader (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cffload.h * * OpenType & CFF data/program tables loader (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cff/cffobjs.c.
1 2 3 4 5 6 | /**************************************************************************** * * cffobjs.c * * OpenType objects manager (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cffobjs.c * * OpenType objects manager (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
407 408 409 410 411 412 413 | cff_strcpy( FT_Memory memory, const FT_String* source ) { FT_Error error; FT_String* result; | | < < | 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 | cff_strcpy( FT_Memory memory, const FT_String* source ) { FT_Error error; FT_String* result; FT_MEM_STRDUP( result, source ); return result; } /* Strip all subset prefixes of the form `ABCDEF+'. Usually, there */ /* is only one, but font names like `APCOOG+JFABTD+FuturaBQ-Bold' */ |
︙ | ︙ |
Changes to jni/freetype/src/cff/cffobjs.h.
1 2 3 4 5 6 | /**************************************************************************** * * cffobjs.h * * OpenType objects manager (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cffobjs.h * * OpenType objects manager (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cff/cffparse.c.
1 2 3 4 5 6 | /**************************************************************************** * * cffparse.c * * CFF token stream parser (body) * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cffparse.c * * CFF token stream parser (body) * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cff/cffparse.h.
1 2 3 4 5 6 | /**************************************************************************** * * cffparse.h * * CFF token stream parser (specification) * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cffparse.h * * CFF token stream parser (specification) * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cff/cfftoken.h.
1 2 3 4 5 6 | /**************************************************************************** * * cfftoken.h * * CFF token definitions (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cfftoken.h * * CFF token definitions (specification only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cff/module.mk.
1 2 3 4 5 | # # FreeType 2 CFF module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 CFF module definition # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/cff/rules.mk.
1 2 3 4 5 | # # FreeType 2 OpenType/CFF driver configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 OpenType/CFF driver configuration rules # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/cid/ciderrs.h.
1 2 3 4 5 6 | /**************************************************************************** * * ciderrs.h * * CID error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ciderrs.h * * CID error codes (specification only). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cid/cidgload.c.
1 2 3 4 5 6 | /**************************************************************************** * * cidgload.c * * CID-keyed Type1 Glyph Loader (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cidgload.c * * CID-keyed Type1 Glyph Loader (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cid/cidgload.h.
1 2 3 4 5 6 | /**************************************************************************** * * cidgload.h * * OpenType Glyph Loader (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cidgload.h * * OpenType Glyph Loader (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cid/cidload.c.
1 2 3 4 5 6 | /**************************************************************************** * * cidload.c * * CID-keyed Type1 font loader (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cidload.c * * CID-keyed Type1 font loader (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cid/cidload.h.
1 2 3 4 5 6 | /**************************************************************************** * * cidload.h * * CID-keyed Type1 font loader (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cidload.h * * CID-keyed Type1 font loader (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cid/cidobjs.c.
1 2 3 4 5 6 | /**************************************************************************** * * cidobjs.c * * CID objects manager (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cidobjs.c * * CID objects manager (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cid/cidobjs.h.
1 2 3 4 5 6 | /**************************************************************************** * * cidobjs.h * * CID objects manager (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cidobjs.h * * CID objects manager (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cid/cidparse.c.
1 2 3 4 5 6 | /**************************************************************************** * * cidparse.c * * CID-keyed Type1 parser (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cidparse.c * * CID-keyed Type1 parser (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cid/cidparse.h.
1 2 3 4 5 6 | /**************************************************************************** * * cidparse.h * * CID-keyed Type1 parser (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cidparse.h * * CID-keyed Type1 parser (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cid/cidriver.c.
1 2 3 4 5 6 | /**************************************************************************** * * cidriver.c * * CID driver interface (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cidriver.c * * CID driver interface (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cid/cidriver.h.
1 2 3 4 5 6 | /**************************************************************************** * * cidriver.h * * High-level CID driver interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cidriver.h * * High-level CID driver interface (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cid/cidtoken.h.
1 2 3 4 5 6 | /**************************************************************************** * * cidtoken.h * * CID token definitions (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cidtoken.h * * CID token definitions (specification only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/cid/module.mk.
1 2 3 4 5 | # # FreeType 2 CID module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 CID module definition # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/cid/rules.mk.
1 2 3 4 5 | # # FreeType 2 CID driver configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 CID driver configuration rules # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/cid/type1cid.c.
1 2 3 4 5 6 | /**************************************************************************** * * type1cid.c * * FreeType OpenType driver component (body only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * type1cid.c * * FreeType OpenType driver component (body only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/dlg/dlgwrap.c.
1 2 3 4 5 6 | /**************************************************************************** * * dlgwrap.c * * Wrapper file for the 'dlg' library (body only) * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * dlgwrap.c * * Wrapper file for the 'dlg' library (body only) * * Copyright (C) 2020-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/dlg/rules.mk.
1 2 3 4 5 | # # FreeType 2 dlg logging library configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 dlg logging library configuration rules # # Copyright (C) 2020-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/README.
︙ | ︙ | |||
514 515 516 517 518 519 520 | Information-technology Promotion Agency(IPA), Japan. The detailed analysis of undefined glyph ID utilization in `mort' and `morx' tables is provided by George Williams. ------------------------------------------------------------------------ | | | 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 | Information-technology Promotion Agency(IPA), Japan. The detailed analysis of undefined glyph ID utilization in `mort' and `morx' tables is provided by George Williams. ------------------------------------------------------------------------ Copyright (C) 2004-2022 by suzuki toshiya, Masatake YAMATO, Red hat K.K., David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvalid.c.
1 2 3 4 5 6 | /**************************************************************************** * * gxvalid.c * * FreeType validator for TrueTypeGX/AAT tables (body only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvalid.c * * FreeType validator for TrueTypeGX/AAT tables (body only). * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvalid.h.
1 2 3 4 5 6 | /**************************************************************************** * * gxvalid.h * * TrueTypeGX/AAT table validation (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvalid.h * * TrueTypeGX/AAT table validation (specification only). * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvbsln.c.
1 2 3 4 5 6 | /**************************************************************************** * * gxvbsln.c * * TrueTypeGX/AAT bsln table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvbsln.c * * TrueTypeGX/AAT bsln table validation (body). * * Copyright (C) 2004-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvcommn.c.
1 2 3 4 5 6 | /**************************************************************************** * * gxvcommn.c * * TrueTypeGX/AAT common tables validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvcommn.c * * TrueTypeGX/AAT common tables validation (body). * * Copyright (C) 2004-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvcommn.h.
1 2 3 4 5 6 | /**************************************************************************** * * gxvcommn.h * * TrueTypeGX/AAT common tables validation (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvcommn.h * * TrueTypeGX/AAT common tables validation (specification). * * Copyright (C) 2004-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxverror.h.
1 2 3 4 5 6 | /**************************************************************************** * * gxverror.h * * TrueTypeGX/AAT validation module error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxverror.h * * TrueTypeGX/AAT validation module error codes (specification only). * * Copyright (C) 2004-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvfeat.c.
1 2 3 4 5 6 | /**************************************************************************** * * gxvfeat.c * * TrueTypeGX/AAT feat table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvfeat.c * * TrueTypeGX/AAT feat table validation (body). * * Copyright (C) 2004-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvfeat.h.
1 2 3 4 5 6 | /**************************************************************************** * * gxvfeat.h * * TrueTypeGX/AAT feat table validation (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvfeat.h * * TrueTypeGX/AAT feat table validation (specification). * * Copyright (C) 2004-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvfgen.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * gxfgen.c * * Generate feature registry data for gxv `feat' validator. * This program is derived from gxfeatreg.c in gxlayout. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * gxfgen.c * * Generate feature registry data for gxv `feat' validator. * This program is derived from gxfeatreg.c in gxlayout. * * Copyright (C) 2004-2022 by * Masatake YAMATO and Redhat K.K. * * This file may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvjust.c.
1 2 3 4 5 6 | /**************************************************************************** * * gxvjust.c * * TrueTypeGX/AAT just table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvjust.c * * TrueTypeGX/AAT just table validation (body). * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvkern.c.
1 2 3 4 5 6 | /**************************************************************************** * * gxvkern.c * * TrueTypeGX/AAT kern table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvkern.c * * TrueTypeGX/AAT kern table validation (body). * * Copyright (C) 2004-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvlcar.c.
1 2 3 4 5 6 | /**************************************************************************** * * gxvlcar.c * * TrueTypeGX/AAT lcar table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvlcar.c * * TrueTypeGX/AAT lcar table validation (body). * * Copyright (C) 2004-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmod.c.
1 2 3 4 5 6 | /**************************************************************************** * * gxvmod.c * * FreeType's TrueTypeGX/AAT validation module implementation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvmod.c * * FreeType's TrueTypeGX/AAT validation module implementation (body). * * Copyright (C) 2004-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmod.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * gxvmod.h * * FreeType's TrueTypeGX/AAT validation module implementation * (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * gxvmod.h * * FreeType's TrueTypeGX/AAT validation module implementation * (specification). * * Copyright (C) 2004-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmort.c.
1 2 3 4 5 6 | /**************************************************************************** * * gxvmort.c * * TrueTypeGX/AAT mort table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvmort.c * * TrueTypeGX/AAT mort table validation (body). * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmort.h.
1 2 3 4 5 6 | /**************************************************************************** * * gxvmort.h * * TrueTypeGX/AAT common definition for mort table (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvmort.h * * TrueTypeGX/AAT common definition for mort table (specification). * * Copyright (C) 2004-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmort0.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * gxvmort0.c * * TrueTypeGX/AAT mort table validation * body for type0 (Indic Script Rearrangement) subtable. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * gxvmort0.c * * TrueTypeGX/AAT mort table validation * body for type0 (Indic Script Rearrangement) subtable. * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmort1.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * gxvmort1.c * * TrueTypeGX/AAT mort table validation * body for type1 (Contextual Substitution) subtable. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * gxvmort1.c * * TrueTypeGX/AAT mort table validation * body for type1 (Contextual Substitution) subtable. * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmort2.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * gxvmort2.c * * TrueTypeGX/AAT mort table validation * body for type2 (Ligature Substitution) subtable. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * gxvmort2.c * * TrueTypeGX/AAT mort table validation * body for type2 (Ligature Substitution) subtable. * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmort4.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * gxvmort4.c * * TrueTypeGX/AAT mort table validation * body for type4 (Non-Contextual Glyph Substitution) subtable. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * gxvmort4.c * * TrueTypeGX/AAT mort table validation * body for type4 (Non-Contextual Glyph Substitution) subtable. * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmort5.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * gxvmort5.c * * TrueTypeGX/AAT mort table validation * body for type5 (Contextual Glyph Insertion) subtable. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * gxvmort5.c * * TrueTypeGX/AAT mort table validation * body for type5 (Contextual Glyph Insertion) subtable. * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmorx.c.
1 2 3 4 5 6 | /**************************************************************************** * * gxvmorx.c * * TrueTypeGX/AAT morx table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvmorx.c * * TrueTypeGX/AAT morx table validation (body). * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmorx.h.
1 2 3 4 5 6 | /**************************************************************************** * * gxvmorx.h * * TrueTypeGX/AAT common definition for morx table (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvmorx.h * * TrueTypeGX/AAT common definition for morx table (specification). * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmorx0.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * gxvmorx0.c * * TrueTypeGX/AAT morx table validation * body for type0 (Indic Script Rearrangement) subtable. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * gxvmorx0.c * * TrueTypeGX/AAT morx table validation * body for type0 (Indic Script Rearrangement) subtable. * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmorx1.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * gxvmorx1.c * * TrueTypeGX/AAT morx table validation * body for type1 (Contextual Substitution) subtable. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * gxvmorx1.c * * TrueTypeGX/AAT morx table validation * body for type1 (Contextual Substitution) subtable. * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmorx2.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * gxvmorx2.c * * TrueTypeGX/AAT morx table validation * body for type2 (Ligature Substitution) subtable. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * gxvmorx2.c * * TrueTypeGX/AAT morx table validation * body for type2 (Ligature Substitution) subtable. * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmorx4.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * gxvmorx4.c * * TrueTypeGX/AAT morx table validation * body for "morx" type4 (Non-Contextual Glyph Substitution) subtable. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * gxvmorx4.c * * TrueTypeGX/AAT morx table validation * body for "morx" type4 (Non-Contextual Glyph Substitution) subtable. * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvmorx5.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * gxvmorx5.c * * TrueTypeGX/AAT morx table validation * body for type5 (Contextual Glyph Insertion) subtable. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * gxvmorx5.c * * TrueTypeGX/AAT morx table validation * body for type5 (Contextual Glyph Insertion) subtable. * * Copyright (C) 2005-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvopbd.c.
1 2 3 4 5 6 | /**************************************************************************** * * gxvopbd.c * * TrueTypeGX/AAT opbd table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvopbd.c * * TrueTypeGX/AAT opbd table validation (body). * * Copyright (C) 2004-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvprop.c.
1 2 3 4 5 6 | /**************************************************************************** * * gxvprop.c * * TrueTypeGX/AAT prop table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvprop.c * * TrueTypeGX/AAT prop table validation (body). * * Copyright (C) 2004-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/gxvtrak.c.
1 2 3 4 5 6 | /**************************************************************************** * * gxvtrak.c * * TrueTypeGX/AAT trak table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * gxvtrak.c * * TrueTypeGX/AAT trak table validation (body). * * Copyright (C) 2004-2022 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/module.mk.
1 2 3 4 | # # FreeType 2 gxvalid module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 | # # FreeType 2 gxvalid module definition # # Copyright (C) 2004-2022 by # suzuki toshiya, Masatake YAMATO, Red Hat K.K., # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it |
︙ | ︙ |
Changes to jni/freetype/src/gxvalid/rules.mk.
1 2 3 4 5 | # # FreeType 2 TrueTypeGX/AAT validation driver configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 TrueTypeGX/AAT validation driver configuration rules # # Copyright (C) 2004-2022 by # suzuki toshiya, Masatake YAMATO, Red Hat K.K., # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it |
︙ | ︙ |
Added jni/freetype/src/gzip/README.freetype.
> > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Name: zlib Short Name: zlib URL: http://zlib.net/ Version: 1.2.11 License: see `zlib.h` Description: "A massively spiffy yet delicately unobtrusive compression library." 'zlib' is a free, general-purpose, legally unencumbered lossless data-compression library. 'zlib' implements the "deflate"Â compression algorithm described by RFC 1951, which combines the LZ77 (Lempel-Ziv) algorithm with Huffman coding. zlib also implements the zlib (RFC 1950) and gzip (RFC 1952) wrapper formats. Local Modifications: The files in this directory have been prepared as follows. - Take the unmodified source code files from the zlib distribution that are included by `ftgzip.c`. - Run zlib's `zlib2ansi` script on all `.c` files. - Apply the diff file(s) in the `patches` folder. |
Changes to jni/freetype/src/gzip/adler32.c.
1 | /* adler32.c -- compute the Adler-32 checksum of a data stream | | | > > > > | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | | > > > | > | > > > > > > > > > | > > | > > > | > > > > > > > > | > > | > > > > | > > > > > > > > < | | | > > > > | > > > | > > > > > > > > | > | > > > > > > > > > | > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /* adler32.c -- compute the Adler-32 checksum of a data stream * Copyright (C) 1995-2011, 2016 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ /* @(#) $Id$ */ #include "zutil.h" #ifndef Z_FREETYPE local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2)); #endif #define BASE 65521U /* largest prime smaller than 65536 */ #define NMAX 5552 /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ #define DO1(buf,i) {adler += (buf)[i]; sum2 += adler;} #define DO2(buf,i) DO1(buf,i); DO1(buf,i+1); #define DO4(buf,i) DO2(buf,i); DO2(buf,i+2); #define DO8(buf,i) DO4(buf,i); DO4(buf,i+4); #define DO16(buf) DO8(buf,0); DO8(buf,8); /* use NO_DIVIDE if your processor does not do division in hardware -- try it both ways to see which is faster */ #ifdef NO_DIVIDE /* note that this assumes BASE is 65521, where 65536 % 65521 == 15 (thank you to John Reiser for pointing this out) */ # define CHOP(a) \ do { \ unsigned long tmp = a >> 16; \ a &= 0xffffUL; \ a += (tmp << 4) - tmp; \ } while (0) # define MOD28(a) \ do { \ CHOP(a); \ if (a >= BASE) a -= BASE; \ } while (0) # define MOD(a) \ do { \ CHOP(a); \ MOD28(a); \ } while (0) # define MOD63(a) \ do { /* this assumes a is not negative */ \ z_off64_t tmp = a >> 32; \ a &= 0xffffffffL; \ a += (tmp << 8) - (tmp << 5) + tmp; \ tmp = a >> 16; \ a &= 0xffffL; \ a += (tmp << 4) - tmp; \ tmp = a >> 16; \ a &= 0xffffL; \ a += (tmp << 4) - tmp; \ if (a >= BASE) a -= BASE; \ } while (0) #else # define MOD(a) a %= BASE # define MOD28(a) a %= BASE # define MOD63(a) a %= BASE #endif /* ========================================================================= */ uLong ZEXPORT adler32_z( uLong adler, const Bytef *buf, z_size_t len) { unsigned long sum2; unsigned n; /* split Adler-32 into component sums */ sum2 = (adler >> 16) & 0xffff; adler &= 0xffff; /* in case user likes doing a byte at a time, keep it fast */ if (len == 1) { adler += buf[0]; if (adler >= BASE) adler -= BASE; sum2 += adler; if (sum2 >= BASE) sum2 -= BASE; return adler | (sum2 << 16); } /* initial Adler-32 value (deferred check for len == 1 speed) */ if (buf == Z_NULL) return 1L; /* in case short lengths are provided, keep it somewhat fast */ if (len < 16) { while (len--) { adler += *buf++; sum2 += adler; } if (adler >= BASE) adler -= BASE; MOD28(sum2); /* only added so many BASE's */ return adler | (sum2 << 16); } /* do length NMAX blocks -- requires just one modulo operation */ while (len >= NMAX) { len -= NMAX; n = NMAX / 16; /* NMAX is divisible by 16 */ do { DO16(buf); /* 16 sums unrolled */ buf += 16; } while (--n); MOD(adler); MOD(sum2); } /* do remaining bytes (less than NMAX, still just one modulo) */ if (len) { /* avoid modulos if none remaining */ while (len >= 16) { len -= 16; DO16(buf); buf += 16; } while (len--) { adler += *buf++; sum2 += adler; } MOD(adler); MOD(sum2); } /* return recombined sums */ return adler | (sum2 << 16); } /* ========================================================================= */ uLong ZEXPORT adler32( uLong adler, const Bytef *buf, uInt len) { return adler32_z(adler, buf, len); } #ifndef Z_FREETYPE /* ========================================================================= */ local uLong adler32_combine_( uLong adler1, uLong adler2, z_off64_t len2) { unsigned long sum1; unsigned long sum2; unsigned rem; /* for negative len, return invalid adler32 as a clue for debugging */ if (len2 < 0) return 0xffffffffUL; /* the derivation of this formula is left as an exercise for the reader */ MOD63(len2); /* assumes len2 >= 0 */ rem = (unsigned)len2; sum1 = adler1 & 0xffff; sum2 = rem * sum1; MOD(sum2); sum1 += (adler2 & 0xffff) + BASE - 1; sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem; if (sum1 >= BASE) sum1 -= BASE; if (sum1 >= BASE) sum1 -= BASE; if (sum2 >= ((unsigned long)BASE << 1)) sum2 -= ((unsigned long)BASE << 1); if (sum2 >= BASE) sum2 -= BASE; return sum1 | (sum2 << 16); } /* ========================================================================= */ uLong ZEXPORT adler32_combine( uLong adler1, uLong adler2, z_off_t len2) { return adler32_combine_(adler1, adler2, len2); } uLong ZEXPORT adler32_combine64( uLong adler1, uLong adler2, z_off64_t len2) { return adler32_combine_(adler1, adler2, len2); } #endif /* !Z_FREETYPE */ |
Added jni/freetype/src/gzip/crc32.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /* crc32.c -- compute the CRC-32 of a data stream * Copyright (C) 1995-2006, 2010, 2011, 2012, 2016 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h * * Thanks to Rodney Brown <rbrown64@csc.com.au> for his contribution of faster * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing * tables for updating the shift register in one step with three exclusive-ors * instead of four steps with four exclusive-ors. This results in about a * factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3. */ /* @(#) $Id$ */ /* Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore protection on the static variables used to control the first-use generation of the crc tables. Therefore, if you #define DYNAMIC_CRC_TABLE, you should first call get_crc_table() to initialize the tables before allowing more than one thread to use crc32(). DYNAMIC_CRC_TABLE and MAKECRCH can be #defined to write out crc32.h. */ #ifdef MAKECRCH # include <stdio.h> # ifndef DYNAMIC_CRC_TABLE # define DYNAMIC_CRC_TABLE # endif /* !DYNAMIC_CRC_TABLE */ #endif /* MAKECRCH */ #include "zutil.h" /* for STDC and FAR definitions */ /* Definitions for doing the crc four data bytes at a time. */ #if !defined(NOBYFOUR) && defined(Z_U4) # define BYFOUR #endif #ifdef BYFOUR local unsigned long crc32_little OF((unsigned long, const unsigned char FAR *, z_size_t)); local unsigned long crc32_big OF((unsigned long, const unsigned char FAR *, z_size_t)); # define TBLS 8 #else # define TBLS 1 #endif /* BYFOUR */ /* Local functions for crc concatenation */ local unsigned long gf2_matrix_times OF((unsigned long *mat, unsigned long vec)); local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat)); local uLong crc32_combine_ OF((uLong crc1, uLong crc2, z_off64_t len2)); #ifdef DYNAMIC_CRC_TABLE local volatile int crc_table_empty = 1; local z_crc_t FAR crc_table[TBLS][256]; local void make_crc_table OF((void)); #ifdef MAKECRCH local void write_table OF((FILE *, const z_crc_t FAR *)); #endif /* MAKECRCH */ /* Generate tables for a byte-wise 32-bit CRC calculation on the polynomial: x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. Polynomials over GF(2) are represented in binary, one bit per coefficient, with the lowest powers in the most significant bit. Then adding polynomials is just exclusive-or, and multiplying a polynomial by x is a right shift by one. If we call the above polynomial p, and represent a byte as the polynomial q, also with the lowest power in the most significant bit (so the byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, where a mod b means the remainder after dividing a by b. This calculation is done using the shift-register method of multiplying and taking the remainder. The register is initialized to zero, and for each incoming bit, x^32 is added mod p to the register if the bit is a one (where x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by x (which is shifting right by one and adding x^32 mod p if the bit shifted out is a one). We start with the highest power (least significant bit) of q and repeat for all eight bits of q. The first table is simply the CRC of all possible eight bit values. This is all the information needed to generate CRCs on data a byte at a time for all combinations of CRC register values and incoming bytes. The remaining tables allow for word-at-a-time CRC calculation for both big-endian and little- endian machines, where a word is four bytes. */ local void make_crc_table() { z_crc_t c; int n, k; z_crc_t poly; /* polynomial exclusive-or pattern */ /* terms of polynomial defining this crc (except x^32): */ static volatile int first = 1; /* flag to limit concurrent making */ static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; /* See if another task is already doing this (not thread-safe, but better than nothing -- significantly reduces duration of vulnerability in case the advice about DYNAMIC_CRC_TABLE is ignored) */ if (first) { first = 0; /* make exclusive-or pattern from polynomial (0xedb88320UL) */ poly = 0; for (n = 0; n < (int)(sizeof(p)/sizeof(unsigned char)); n++) poly |= (z_crc_t)1 << (31 - p[n]); /* generate a crc for every 8-bit value */ for (n = 0; n < 256; n++) { c = (z_crc_t)n; for (k = 0; k < 8; k++) c = c & 1 ? poly ^ (c >> 1) : c >> 1; crc_table[0][n] = c; } #ifdef BYFOUR /* generate crc for each value followed by one, two, and three zeros, and then the byte reversal of those as well as the first table */ for (n = 0; n < 256; n++) { c = crc_table[0][n]; crc_table[4][n] = ZSWAP32(c); for (k = 1; k < 4; k++) { c = crc_table[0][c & 0xff] ^ (c >> 8); crc_table[k][n] = c; crc_table[k + 4][n] = ZSWAP32(c); } } #endif /* BYFOUR */ crc_table_empty = 0; } else { /* not first */ /* wait for the other guy to finish (not efficient, but rare) */ while (crc_table_empty) ; } #ifdef MAKECRCH /* write out CRC tables to crc32.h */ { FILE *out; out = fopen("crc32.h", "w"); if (out == NULL) return; fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n"); fprintf(out, " * Generated automatically by crc32.c\n */\n\n"); fprintf(out, "local const z_crc_t FAR "); fprintf(out, "crc_table[TBLS][256] =\n{\n {\n"); write_table(out, crc_table[0]); # ifdef BYFOUR fprintf(out, "#ifdef BYFOUR\n"); for (k = 1; k < 8; k++) { fprintf(out, " },\n {\n"); write_table(out, crc_table[k]); } fprintf(out, "#endif\n"); # endif /* BYFOUR */ fprintf(out, " }\n};\n"); fclose(out); } #endif /* MAKECRCH */ } #ifdef MAKECRCH local void write_table( FILE *out, const z_crc_t FAR *table) { int n; for (n = 0; n < 256; n++) fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : " ", (unsigned long)(table[n]), n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", ")); } #endif /* MAKECRCH */ #else /* !DYNAMIC_CRC_TABLE */ /* ======================================================================== * Tables of CRC-32s of all single-byte values, made by make_crc_table(). */ #include "crc32.h" #endif /* DYNAMIC_CRC_TABLE */ /* ========================================================================= * This function can be used by asm versions of crc32() */ const z_crc_t FAR * ZEXPORT get_crc_table() { #ifdef DYNAMIC_CRC_TABLE if (crc_table_empty) make_crc_table(); #endif /* DYNAMIC_CRC_TABLE */ return (const z_crc_t FAR *)crc_table; } /* ========================================================================= */ #undef DO1 #undef DO8 #define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8) #define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1 /* ========================================================================= */ unsigned long ZEXPORT crc32_z( unsigned long crc, const unsigned char FAR *buf, z_size_t len) { if (buf == Z_NULL) return 0UL; #ifdef DYNAMIC_CRC_TABLE if (crc_table_empty) make_crc_table(); #endif /* DYNAMIC_CRC_TABLE */ #ifdef BYFOUR if (sizeof(void *) == sizeof(ptrdiff_t)) { z_crc_t endian; endian = 1; if (*((unsigned char *)(&endian))) return crc32_little(crc, buf, len); else return crc32_big(crc, buf, len); } #endif /* BYFOUR */ crc = crc ^ 0xffffffffUL; while (len >= 8) { DO8; len -= 8; } if (len) do { DO1; } while (--len); return crc ^ 0xffffffffUL; } /* ========================================================================= */ unsigned long ZEXPORT crc32( unsigned long crc, const unsigned char FAR *buf, uInt len) { return crc32_z(crc, buf, len); } #ifdef BYFOUR /* This BYFOUR code accesses the passed unsigned char * buffer with a 32-bit integer pointer type. This violates the strict aliasing rule, where a compiler can assume, for optimization purposes, that two pointers to fundamentally different types won't ever point to the same memory. This can manifest as a problem only if one of the pointers is written to. This code only reads from those pointers. So long as this code remains isolated in this compilation unit, there won't be a problem. For this reason, this code should not be copied and pasted into a compilation unit in which other code writes to the buffer that is passed to these routines. */ /* ========================================================================= */ #define DOLIT4 c ^= *buf4++; \ c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \ crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24] #define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4 /* ========================================================================= */ local unsigned long crc32_little( unsigned long crc, const unsigned char FAR *buf, z_size_t len) { register z_crc_t c; register const z_crc_t FAR *buf4; c = (z_crc_t)crc; c = ~c; while (len && ((ptrdiff_t)buf & 3)) { c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); len--; } buf4 = (const z_crc_t FAR *)(const void FAR *)buf; while (len >= 32) { DOLIT32; len -= 32; } while (len >= 4) { DOLIT4; len -= 4; } buf = (const unsigned char FAR *)buf4; if (len) do { c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); } while (--len); c = ~c; return (unsigned long)c; } /* ========================================================================= */ #define DOBIG4 c ^= *buf4++; \ c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \ crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24] #define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4 /* ========================================================================= */ local unsigned long crc32_big( unsigned long crc, const unsigned char FAR *buf, z_size_t len) { register z_crc_t c; register const z_crc_t FAR *buf4; c = ZSWAP32((z_crc_t)crc); c = ~c; while (len && ((ptrdiff_t)buf & 3)) { c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); len--; } buf4 = (const z_crc_t FAR *)(const void FAR *)buf; while (len >= 32) { DOBIG32; len -= 32; } while (len >= 4) { DOBIG4; len -= 4; } buf = (const unsigned char FAR *)buf4; if (len) do { c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); } while (--len); c = ~c; return (unsigned long)(ZSWAP32(c)); } #endif /* BYFOUR */ #define GF2_DIM 32 /* dimension of GF(2) vectors (length of CRC) */ /* ========================================================================= */ local unsigned long gf2_matrix_times( unsigned long *mat, unsigned long vec) { unsigned long sum; sum = 0; while (vec) { if (vec & 1) sum ^= *mat; vec >>= 1; mat++; } return sum; } /* ========================================================================= */ local void gf2_matrix_square( unsigned long *square, unsigned long *mat) { int n; for (n = 0; n < GF2_DIM; n++) square[n] = gf2_matrix_times(mat, mat[n]); } /* ========================================================================= */ local uLong crc32_combine_( uLong crc1, uLong crc2, z_off64_t len2) { int n; unsigned long row; unsigned long even[GF2_DIM]; /* even-power-of-two zeros operator */ unsigned long odd[GF2_DIM]; /* odd-power-of-two zeros operator */ /* degenerate case (also disallow negative lengths) */ if (len2 <= 0) return crc1; /* put operator for one zero bit in odd */ odd[0] = 0xedb88320UL; /* CRC-32 polynomial */ row = 1; for (n = 1; n < GF2_DIM; n++) { odd[n] = row; row <<= 1; } /* put operator for two zero bits in even */ gf2_matrix_square(even, odd); /* put operator for four zero bits in odd */ gf2_matrix_square(odd, even); /* apply len2 zeros to crc1 (first square will put the operator for one zero byte, eight zero bits, in even) */ do { /* apply zeros operator for this bit of len2 */ gf2_matrix_square(even, odd); if (len2 & 1) crc1 = gf2_matrix_times(even, crc1); len2 >>= 1; /* if no more bits set, then done */ if (len2 == 0) break; /* another iteration of the loop with odd and even swapped */ gf2_matrix_square(odd, even); if (len2 & 1) crc1 = gf2_matrix_times(odd, crc1); len2 >>= 1; /* if no more bits set, then done */ } while (len2 != 0); /* return combined crc */ crc1 ^= crc2; return crc1; } /* ========================================================================= */ uLong ZEXPORT crc32_combine( uLong crc1, uLong crc2, z_off_t len2) { return crc32_combine_(crc1, crc2, len2); } #ifdef Z_FREETYPE ZEXTERN #endif uLong ZEXPORT crc32_combine64( uLong crc1, uLong crc2, z_off64_t len2) { return crc32_combine_(crc1, crc2, len2); } |
Added jni/freetype/src/gzip/crc32.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /* crc32.h -- tables for rapid CRC calculation * Generated automatically by crc32.c */ local const z_crc_t FAR crc_table[TBLS][256] = { { 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL, 0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL, 0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL, 0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL, 0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL, 0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL, 0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL, 0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL, 0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL, 0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL, 0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL, 0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL, 0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL, 0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL, 0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL, 0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL, 0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL, 0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL, 0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL, 0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL, 0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL, 0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL, 0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL, 0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL, 0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL, 0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL, 0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL, 0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL, 0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL, 0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL, 0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL, 0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL, 0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL, 0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL, 0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL, 0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL, 0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL, 0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL, 0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL, 0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL, 0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL, 0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL, 0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL, 0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL, 0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL, 0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL, 0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL, 0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL, 0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL, 0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL, 0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL, 0x2d02ef8dUL #ifdef BYFOUR }, { 0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL, 0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL, 0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL, 0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL, 0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL, 0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL, 0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL, 0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL, 0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL, 0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL, 0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL, 0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL, 0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL, 0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL, 0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL, 0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL, 0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL, 0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL, 0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL, 0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL, 0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL, 0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL, 0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL, 0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL, 0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL, 0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL, 0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL, 0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL, 0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL, 0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL, 0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL, 0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL, 0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL, 0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL, 0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL, 0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL, 0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL, 0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL, 0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL, 0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL, 0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL, 0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL, 0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL, 0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL, 0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL, 0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL, 0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL, 0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL, 0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL, 0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL, 0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL, 0x9324fd72UL }, { 0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL, 0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL, 0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL, 0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL, 0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL, 0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL, 0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL, 0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL, 0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL, 0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL, 0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL, 0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL, 0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL, 0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL, 0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL, 0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL, 0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL, 0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL, 0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL, 0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL, 0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL, 0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL, 0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL, 0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL, 0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL, 0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL, 0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL, 0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL, 0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL, 0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL, 0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL, 0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL, 0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL, 0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL, 0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL, 0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL, 0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL, 0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL, 0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL, 0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL, 0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL, 0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL, 0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL, 0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL, 0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL, 0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL, 0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL, 0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL, 0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL, 0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL, 0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL, 0xbe9834edUL }, { 0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL, 0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL, 0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL, 0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL, 0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL, 0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL, 0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL, 0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL, 0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL, 0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL, 0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL, 0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL, 0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL, 0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL, 0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL, 0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL, 0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL, 0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL, 0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL, 0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL, 0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL, 0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL, 0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL, 0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL, 0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL, 0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL, 0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL, 0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL, 0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL, 0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL, 0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL, 0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL, 0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL, 0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL, 0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL, 0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL, 0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL, 0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL, 0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL, 0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL, 0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL, 0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL, 0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL, 0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL, 0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL, 0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL, 0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL, 0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL, 0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL, 0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL, 0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL, 0xde0506f1UL }, { 0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL, 0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL, 0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL, 0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL, 0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL, 0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL, 0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL, 0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL, 0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL, 0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL, 0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL, 0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL, 0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL, 0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL, 0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL, 0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL, 0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL, 0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL, 0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL, 0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL, 0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL, 0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL, 0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL, 0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL, 0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL, 0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL, 0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL, 0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL, 0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL, 0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL, 0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL, 0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL, 0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL, 0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL, 0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL, 0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL, 0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL, 0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL, 0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL, 0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL, 0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL, 0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL, 0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL, 0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL, 0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL, 0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL, 0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL, 0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL, 0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL, 0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL, 0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL, 0x8def022dUL }, { 0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL, 0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL, 0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL, 0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL, 0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL, 0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL, 0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL, 0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL, 0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL, 0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL, 0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL, 0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL, 0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL, 0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL, 0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL, 0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL, 0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL, 0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL, 0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL, 0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL, 0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL, 0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL, 0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL, 0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL, 0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL, 0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL, 0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL, 0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL, 0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL, 0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL, 0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL, 0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL, 0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL, 0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL, 0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL, 0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL, 0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL, 0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL, 0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL, 0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL, 0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL, 0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL, 0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL, 0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL, 0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL, 0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL, 0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL, 0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL, 0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL, 0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL, 0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL, 0x72fd2493UL }, { 0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL, 0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL, 0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL, 0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL, 0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL, 0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL, 0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL, 0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL, 0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL, 0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL, 0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL, 0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL, 0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL, 0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL, 0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL, 0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL, 0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL, 0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL, 0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL, 0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL, 0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL, 0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL, 0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL, 0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL, 0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL, 0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL, 0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL, 0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL, 0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL, 0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL, 0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL, 0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL, 0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL, 0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL, 0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL, 0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL, 0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL, 0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL, 0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL, 0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL, 0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL, 0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL, 0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL, 0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL, 0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL, 0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL, 0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL, 0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL, 0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL, 0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL, 0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL, 0xed3498beUL }, { 0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL, 0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL, 0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL, 0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL, 0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL, 0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL, 0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL, 0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL, 0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL, 0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL, 0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL, 0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL, 0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL, 0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL, 0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL, 0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL, 0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL, 0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL, 0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL, 0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL, 0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL, 0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL, 0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL, 0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL, 0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL, 0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL, 0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL, 0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL, 0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL, 0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL, 0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL, 0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL, 0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL, 0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL, 0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL, 0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL, 0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL, 0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL, 0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL, 0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL, 0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL, 0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL, 0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL, 0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL, 0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL, 0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL, 0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL, 0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL, 0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL, 0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL, 0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL, 0xf10605deUL #endif } }; |
Changes to jni/freetype/src/gzip/ftgzip.c.
1 2 3 4 5 6 7 8 9 10 | /**************************************************************************** * * ftgzip.c * * FreeType support for .gz compressed files. * * This optional component relies on zlib. It should mainly be used to * parse compressed PCF fonts, as found with many X11 server * distributions. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /**************************************************************************** * * ftgzip.c * * FreeType support for .gz compressed files. * * This optional component relies on zlib. It should mainly be used to * parse compressed PCF fonts, as found with many X11 server * distributions. * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
65 66 67 68 69 70 71 72 73 | /* */ /* instead of the expected */ /* */ /* #include <zconf.h> */ /* */ /* so that configuration with `FT_CONFIG_OPTION_SYSTEM_ZLIB' might */ /* include the wrong `zconf.h' file, leading to errors. */ #include "zlib.h" | > > > > > > > > > > > > > > > | | < < | > > | | < < < | < | | | | | | > > > | 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 | /* */ /* instead of the expected */ /* */ /* #include <zconf.h> */ /* */ /* so that configuration with `FT_CONFIG_OPTION_SYSTEM_ZLIB' might */ /* include the wrong `zconf.h' file, leading to errors. */ /* `HAVE_HIDDEN` should be defined if */ /* */ /* __attribute__((visibility("hidden"))) */ /* */ /* is supported by the compiler, which prevents internal symbols from */ /* being exported by the library. */ #if defined( __GNUC__ ) || defined( __clang__ ) #define HAVE_HIDDEN 1 #define ZEXPORT #define ZEXTERN static #endif #include "zlib.h" #include "zutil.h" #define Z_SOLO 1 #define Z_FREETYPE 1 #if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */ /* We disable the warning `conversion from XXX to YYY, */ /* possible loss of data' in order to compile cleanly with */ /* the maximum level of warnings: zlib is non-FreeType */ /* code. */ #pragma warning( push ) #pragma warning( disable : 4244 ) #endif /* _MSC_VER */ #if defined( __GNUC__ ) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstrict-prototypes" #pragma GCC diagnostic ignored "-Wimplicit-fallthrough" #pragma GCC diagnostic ignored "-Wredundant-decls" #endif #include "zutil.c" #include "inffast.c" #include "inflate.c" #include "inftrees.c" #include "adler32.c" #include "crc32.c" #if defined( __GNUC__ ) #pragma GCC diagnostic pop #endif #if defined( _MSC_VER ) #pragma warning( pop ) #endif #endif /* !FT_CONFIG_OPTION_SYSTEM_ZLIB */ |
︙ | ︙ | |||
146 147 148 149 150 151 152 | FT_MEM_FREE( address ); } #if !defined( FT_CONFIG_OPTION_SYSTEM_ZLIB ) && !defined( USE_ZLIB_ZCALLOC ) | | | > | 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 | FT_MEM_FREE( address ); } #if !defined( FT_CONFIG_OPTION_SYSTEM_ZLIB ) && !defined( USE_ZLIB_ZCALLOC ) voidpf ZLIB_INTERNAL zcalloc ( voidpf opaque, unsigned items, unsigned size ) { return ft_gzip_alloc( opaque, items, size ); } void ZLIB_INTERNAL zcfree( voidpf opaque, voidpf ptr ) { ft_gzip_free( opaque, ptr ); } #endif /* !SYSTEM_ZLIB && !USE_ZLIB_ZCALLOC */ |
︙ | ︙ | |||
747 748 749 750 751 752 753 | stream.next_out = output; stream.avail_out = (uInt)*output_len; stream.zalloc = ft_gzip_alloc; stream.zfree = ft_gzip_free; stream.opaque = memory; | < < < < < < < < < | 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 | stream.next_out = output; stream.avail_out = (uInt)*output_len; stream.zalloc = ft_gzip_alloc; stream.zfree = ft_gzip_free; stream.opaque = memory; err = inflateInit2( &stream, MAX_WBITS|32 ); if ( err != Z_OK ) return FT_THROW( Invalid_Argument ); err = inflate( &stream, Z_FINISH ); if ( err != Z_STREAM_END ) { |
︙ | ︙ |
Changes to jni/freetype/src/gzip/ftzconf.h.
1 | /* zconf.h -- configuration of the zlib compression library | | | | > > | > | > > > > > > > > > > > > > > > > > > > > > > | > > | | | | | | | > > | | > | | | | > > > > > > > > > | > > > > > > > > | | | | | > > > > | > > > | > > > > > > > > | > > > > > > | > > | | | | | | | | < | > | > > > > | < | | > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | > | | | > > > > > > > > > > > | > > > > > > > > > > | | | > > | | > > > > > > | > > > > > > > > > > > > > > > > > > > > < | < < < < < < < < < < < < | 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 | /* zconf.h -- configuration of the zlib compression library * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ /* @(#) $Id$ */ #ifndef ZCONF_H #define ZCONF_H /* * If you *really* need a unique prefix for all types and library functions, * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. * Even better than compiling with -DZ_PREFIX would be to use configure to set * this permanently in zconf.h using "./configure --zprefix". */ #ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ # define Z_PREFIX_SET /* all linked symbols and init macros */ # define _dist_code z__dist_code # define _length_code z__length_code # define _tr_align z__tr_align # define _tr_flush_bits z__tr_flush_bits # define _tr_flush_block z__tr_flush_block # define _tr_init z__tr_init # define _tr_stored_block z__tr_stored_block # define _tr_tally z__tr_tally # define adler32 z_adler32 # define adler32_combine z_adler32_combine # define adler32_combine64 z_adler32_combine64 # define adler32_z z_adler32_z # ifndef Z_SOLO # define compress z_compress # define compress2 z_compress2 # define compressBound z_compressBound # endif # define crc32 z_crc32 # define crc32_combine z_crc32_combine # define crc32_combine64 z_crc32_combine64 # define crc32_z z_crc32_z # define deflate z_deflate # define deflateBound z_deflateBound # define deflateCopy z_deflateCopy # define deflateEnd z_deflateEnd # define deflateGetDictionary z_deflateGetDictionary # define deflateInit z_deflateInit # define deflateInit2 z_deflateInit2 # define deflateInit2_ z_deflateInit2_ # define deflateInit_ z_deflateInit_ # define deflateParams z_deflateParams # define deflatePending z_deflatePending # define deflatePrime z_deflatePrime # define deflateReset z_deflateReset # define deflateResetKeep z_deflateResetKeep # define deflateSetDictionary z_deflateSetDictionary # define deflateSetHeader z_deflateSetHeader # define deflateTune z_deflateTune # define deflate_copyright z_deflate_copyright # define get_crc_table z_get_crc_table # ifndef Z_SOLO # define gz_error z_gz_error # define gz_intmax z_gz_intmax # define gz_strwinerror z_gz_strwinerror # define gzbuffer z_gzbuffer # define gzclearerr z_gzclearerr # define gzclose z_gzclose # define gzclose_r z_gzclose_r # define gzclose_w z_gzclose_w # define gzdirect z_gzdirect # define gzdopen z_gzdopen # define gzeof z_gzeof # define gzerror z_gzerror # define gzflush z_gzflush # define gzfread z_gzfread # define gzfwrite z_gzfwrite # define gzgetc z_gzgetc # define gzgetc_ z_gzgetc_ # define gzgets z_gzgets # define gzoffset z_gzoffset # define gzoffset64 z_gzoffset64 # define gzopen z_gzopen # define gzopen64 z_gzopen64 # ifdef _WIN32 # define gzopen_w z_gzopen_w # endif # define gzprintf z_gzprintf # define gzputc z_gzputc # define gzputs z_gzputs # define gzread z_gzread # define gzrewind z_gzrewind # define gzseek z_gzseek # define gzseek64 z_gzseek64 # define gzsetparams z_gzsetparams # define gztell z_gztell # define gztell64 z_gztell64 # define gzungetc z_gzungetc # define gzvprintf z_gzvprintf # define gzwrite z_gzwrite # endif # define inflate z_inflate # define inflateBack z_inflateBack # define inflateBackEnd z_inflateBackEnd # define inflateBackInit z_inflateBackInit # define inflateBackInit_ z_inflateBackInit_ # define inflateCodesUsed z_inflateCodesUsed # define inflateCopy z_inflateCopy # define inflateEnd z_inflateEnd # define inflateGetDictionary z_inflateGetDictionary # define inflateGetHeader z_inflateGetHeader # define inflateInit z_inflateInit # define inflateInit2 z_inflateInit2 # define inflateInit2_ z_inflateInit2_ # define inflateInit_ z_inflateInit_ # define inflateMark z_inflateMark # define inflatePrime z_inflatePrime # define inflateReset z_inflateReset # define inflateReset2 z_inflateReset2 # define inflateResetKeep z_inflateResetKeep # define inflateSetDictionary z_inflateSetDictionary # define inflateSync z_inflateSync # define inflateSyncPoint z_inflateSyncPoint # define inflateUndermine z_inflateUndermine # define inflateValidate z_inflateValidate # define inflate_copyright z_inflate_copyright # define inflate_fast z_inflate_fast # define inflate_table z_inflate_table # ifndef Z_SOLO # define uncompress z_uncompress # define uncompress2 z_uncompress2 # endif # define zError z_zError # ifndef Z_SOLO # define zcalloc z_zcalloc # define zcfree z_zcfree # endif # define zlibCompileFlags z_zlibCompileFlags # define zlibVersion z_zlibVersion /* all zlib typedefs in zlib.h and zconf.h */ # define Byte z_Byte # define Bytef z_Bytef # define alloc_func z_alloc_func # define charf z_charf # define free_func z_free_func # ifndef Z_SOLO # define gzFile z_gzFile # endif # define gz_header z_gz_header # define gz_headerp z_gz_headerp # define in_func z_in_func # define intf z_intf # define out_func z_out_func # define uInt z_uInt # define uIntf z_uIntf # define uLong z_uLong # define uLongf z_uLongf # define voidp z_voidp # define voidpc z_voidpc # define voidpf z_voidpf /* all zlib structs in zlib.h and zconf.h */ # define gz_header_s z_gz_header_s # define internal_state z_internal_state #endif #if defined(__MSDOS__) && !defined(MSDOS) # define MSDOS #endif #if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) # define OS2 #endif #if defined(_WINDOWS) && !defined(WINDOWS) # define WINDOWS #endif #if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) # ifndef WIN32 # define WIN32 # endif #endif #if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) # if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) # ifndef SYS16BIT # define SYS16BIT # endif # endif #endif /* * Compile with -DMAXSEG_64K if the alloc function cannot allocate more * than 64k bytes at a time (needed on systems with 16-bit int). */ #ifdef SYS16BIT # define MAXSEG_64K #endif #ifdef MSDOS # define UNALIGNED_OK #endif #ifdef __STDC_VERSION__ # ifndef STDC # define STDC # endif # if __STDC_VERSION__ >= 199901L # ifndef STDC99 # define STDC99 # endif # endif #endif #if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) # define STDC #endif #if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) # define STDC #endif #if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) # define STDC #endif #if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) # define STDC #endif #if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ # define STDC #endif #ifndef STDC # ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ # define const /* note: need a more gentle solution here */ # endif #endif #if defined(ZLIB_CONST) && !defined(z_const) # define z_const const #else # define z_const #endif #ifdef Z_SOLO typedef unsigned long z_size_t; #else # define z_longlong long long # if defined(NO_SIZE_T) typedef unsigned NO_SIZE_T z_size_t; # elif defined(STDC) # include <stddef.h> typedef size_t z_size_t; # else typedef unsigned long z_size_t; # endif # undef z_longlong #endif /* Maximum value for memLevel in deflateInit2 */ #ifndef MAX_MEM_LEVEL # ifdef MAXSEG_64K # define MAX_MEM_LEVEL 8 # else |
︙ | ︙ | |||
129 130 131 132 133 134 135 | that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) plus a few kilobytes for small objects. For example, if you want to reduce the default memory requirements from 256K to 128K, compile with make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" Of course this will generally degrade compression (there's no free lunch). The memory requirements for inflate are (in bytes) 1 << windowBits | | > > > > > > > > > | | | | | | | | | | < > > | > > > < | > > > > > > > > > > > > > | > > > > > | | | > > | | | | | < | | < < | | | | | | < < < | | > | | > | | > > > > > > > > > > > > > > > > > | > > > > > > > > > | > > | > > > > > > > > > > > > > > > > > > > > > > > | | > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > | | | > | | | | | | < < < < | | < < < | < < < < | | 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 | that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) plus a few kilobytes for small objects. For example, if you want to reduce the default memory requirements from 256K to 128K, compile with make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" Of course this will generally degrade compression (there's no free lunch). The memory requirements for inflate are (in bytes) 1 << windowBits that is, 32K for windowBits=15 (default value) plus about 7 kilobytes for small objects. */ /* Type declarations */ #ifndef OF /* function prototypes */ # ifdef STDC # define OF(args) args # else # define OF(args) () # endif #endif #ifndef Z_ARG /* function prototypes for stdarg */ # if defined(STDC) || defined(Z_HAVE_STDARG_H) # define Z_ARG(args) args # else # define Z_ARG(args) () # endif #endif /* The following definitions for FAR are needed only for MSDOS mixed * model programming (small or medium model with some far allocations). * This was tested only with MSC; for other MSDOS compilers you may have * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, * just define FAR to be empty. */ #ifdef SYS16BIT # if defined(M_I86SM) || defined(M_I86MM) /* MSC small or medium model */ # define SMALL_MEDIUM # ifdef _MSC_VER # define FAR _far # else # define FAR far # endif # endif # if (defined(__SMALL__) || defined(__MEDIUM__)) /* Turbo C small or medium model */ # define SMALL_MEDIUM # ifdef __BORLANDC__ # define FAR _far # else # define FAR far # endif # endif #endif #if defined(WINDOWS) || defined(WIN32) /* If building or using zlib as a DLL, define ZLIB_DLL. * This is not mandatory, but it offers a little performance increase. */ # ifdef ZLIB_DLL # if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) # ifdef ZLIB_INTERNAL # define ZEXTERN extern __declspec(dllexport) # else # define ZEXTERN extern __declspec(dllimport) # endif # endif # endif /* ZLIB_DLL */ /* If building or using zlib with the WINAPI/WINAPIV calling convention, * define ZLIB_WINAPI. * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. */ # ifdef ZLIB_WINAPI # ifdef FAR # undef FAR # endif # include <windows.h> /* No need for _export, use ZLIB.DEF instead. */ /* For complete Windows compatibility, use WINAPI, not __stdcall. */ # define ZEXPORT WINAPI # ifdef WIN32 # define ZEXPORTVA WINAPIV # else # define ZEXPORTVA FAR CDECL # endif # endif #endif #if defined (__BEOS__) # ifdef ZLIB_DLL # ifdef ZLIB_INTERNAL # define ZEXPORT __declspec(dllexport) # define ZEXPORTVA __declspec(dllexport) # else # define ZEXPORT __declspec(dllimport) # define ZEXPORTVA __declspec(dllimport) # endif # endif #endif #ifndef ZEXTERN # define ZEXTERN extern #endif #ifndef ZEXPORT # define ZEXPORT #endif #ifndef ZEXPORTVA # define ZEXPORTVA #endif #ifndef FAR # define FAR #endif #if !defined(__MACTYPES__) typedef unsigned char Byte; /* 8 bits */ #endif typedef unsigned int uInt; /* 16 bits or more */ typedef unsigned long uLong; /* 32 bits or more */ #ifdef SMALL_MEDIUM /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ # define Bytef Byte FAR #else typedef Byte FAR Bytef; #endif typedef char FAR charf; typedef int FAR intf; typedef uInt FAR uIntf; typedef uLong FAR uLongf; #ifdef STDC typedef void const *voidpc; typedef void FAR *voidpf; typedef void *voidp; #else typedef Byte const *voidpc; typedef Byte FAR *voidpf; typedef Byte *voidp; #endif #if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) # include <limits.h> # if (UINT_MAX == 0xffffffffUL) # define Z_U4 unsigned # elif (ULONG_MAX == 0xffffffffUL) # define Z_U4 unsigned long # elif (USHRT_MAX == 0xffffffffUL) # define Z_U4 unsigned short # endif #endif #ifdef Z_U4 typedef Z_U4 z_crc_t; #else typedef unsigned long z_crc_t; #endif #ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ # define Z_HAVE_UNISTD_H #endif #ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ # define Z_HAVE_STDARG_H #endif #ifdef STDC # ifndef Z_SOLO # include <sys/types.h> /* for off_t */ # endif #endif #if defined(STDC) || defined(Z_HAVE_STDARG_H) # ifndef Z_SOLO # include <stdarg.h> /* for va_list */ # endif #endif #ifdef _WIN32 # ifndef Z_SOLO # include <stddef.h> /* for wchar_t */ # endif #endif /* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even * though the former does not conform to the LFS document), but considering * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as * equivalently requesting no 64-bit operations */ #if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 # undef _LARGEFILE64_SOURCE #endif #if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H) # define Z_HAVE_UNISTD_H #endif #ifndef Z_SOLO # if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) # include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ # ifdef VMS # include <unixio.h> /* for off_t */ # endif # ifndef z_off_t # define z_off_t off_t # endif # endif #endif #if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 # define Z_LFS64 #endif #if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) # define Z_LARGE64 #endif #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) # define Z_WANT64 #endif #if !defined(SEEK_SET) && !defined(Z_SOLO) # define SEEK_SET 0 /* Seek from beginning of file. */ # define SEEK_CUR 1 /* Seek from current position. */ # define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ #endif #ifndef z_off_t # define z_off_t long #endif #if !defined(_WIN32) && defined(Z_LARGE64) # define z_off64_t off64_t #else # if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) # define z_off64_t __int64 # else # define z_off64_t z_off_t # endif #endif /* MVS linker does not support external names larger than 8 bytes */ #if defined(__MVS__) #pragma map(deflateInit_,"DEIN") #pragma map(deflateInit2_,"DEIN2") #pragma map(deflateEnd,"DEEND") #pragma map(deflateBound,"DEBND") #pragma map(inflateInit_,"ININ") #pragma map(inflateInit2_,"ININ2") #pragma map(inflateEnd,"INEND") #pragma map(inflateSync,"INSY") #pragma map(inflateSetDictionary,"INSEDI") #pragma map(compressBound,"CMBND") #pragma map(inflate_table,"INTABL") #pragma map(inflate_fast,"INFA") #pragma map(inflate_copyright,"INCOPY") #endif #endif /* ZCONF_H */ |
Added jni/freetype/src/gzip/gzguts.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /* gzguts.h -- zlib internal header definitions for gz* operations * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #ifdef _LARGEFILE64_SOURCE # ifndef _LARGEFILE_SOURCE # define _LARGEFILE_SOURCE 1 # endif # ifdef _FILE_OFFSET_BITS # undef _FILE_OFFSET_BITS # endif #endif #ifdef HAVE_HIDDEN # define ZLIB_INTERNAL __attribute__((visibility ("hidden"))) #else # define ZLIB_INTERNAL #endif #include <stdio.h> #include "zlib.h" #ifdef STDC # include <string.h> # include <stdlib.h> # include <limits.h> #endif #ifndef _POSIX_SOURCE # define _POSIX_SOURCE #endif #include <fcntl.h> #ifdef _WIN32 # include <stddef.h> #endif #if defined(__TURBOC__) || defined(_MSC_VER) || defined(_WIN32) # include <io.h> #endif #if defined(_WIN32) || defined(__CYGWIN__) # define WIDECHAR #endif #ifdef WINAPI_FAMILY # define open _open # define read _read # define write _write # define close _close #endif #ifdef NO_DEFLATE /* for compatibility with old definition */ # define NO_GZCOMPRESS #endif #if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550) # ifndef HAVE_VSNPRINTF # define HAVE_VSNPRINTF # endif #endif #if defined(__CYGWIN__) # ifndef HAVE_VSNPRINTF # define HAVE_VSNPRINTF # endif #endif #if defined(MSDOS) && defined(__BORLANDC__) && (BORLANDC > 0x410) # ifndef HAVE_VSNPRINTF # define HAVE_VSNPRINTF # endif #endif #ifndef HAVE_VSNPRINTF # ifdef MSDOS /* vsnprintf may exist on some MS-DOS compilers (DJGPP?), but for now we just assume it doesn't. */ # define NO_vsnprintf # endif # ifdef __TURBOC__ # define NO_vsnprintf # endif # ifdef WIN32 /* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */ # if !defined(vsnprintf) && !defined(NO_vsnprintf) # if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 ) # define vsnprintf _vsnprintf # endif # endif # endif # ifdef __SASC # define NO_vsnprintf # endif # ifdef VMS # define NO_vsnprintf # endif # ifdef __OS400__ # define NO_vsnprintf # endif # ifdef __MVS__ # define NO_vsnprintf # endif #endif /* unlike snprintf (which is required in C99), _snprintf does not guarantee null termination of the result -- however this is only used in gzlib.c where the result is assured to fit in the space provided */ #if defined(_MSC_VER) && _MSC_VER < 1900 # define snprintf _snprintf #endif #ifndef local # define local static #endif /* since "static" is used to mean two completely different things in C, we define "local" for the non-static meaning of "static", for readability (compile with -Dlocal if your debugger can't find static symbols) */ /* gz* functions always use library allocation functions */ #ifndef STDC extern voidp malloc OF((uInt size)); extern void free OF((voidpf ptr)); #endif /* get errno and strerror definition */ #if defined UNDER_CE # include <windows.h> # define zstrerror() gz_strwinerror((DWORD)GetLastError()) #else # ifndef NO_STRERROR # include <errno.h> # define zstrerror() strerror(errno) # else # define zstrerror() "stdio error (consult errno)" # endif #endif /* provide prototypes for these when building zlib without LFS */ #if !defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0 ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); #endif /* default memLevel */ #if MAX_MEM_LEVEL >= 8 # define DEF_MEM_LEVEL 8 #else # define DEF_MEM_LEVEL MAX_MEM_LEVEL #endif /* default i/o buffer size -- double this for output when reading (this and twice this must be able to fit in an unsigned type) */ #define GZBUFSIZE 8192 /* gzip modes, also provide a little integrity check on the passed structure */ #define GZ_NONE 0 #define GZ_READ 7247 #define GZ_WRITE 31153 #define GZ_APPEND 1 /* mode set to GZ_WRITE after the file is opened */ /* values for gz_state how */ #define LOOK 0 /* look for a gzip header */ #define COPY__ 1 /* copy input directly */ #define GZIP 2 /* decompress a gzip stream */ /* internal gzip file state data structure */ typedef struct { /* exposed contents for gzgetc() macro */ struct gzFile_s x; /* "x" for exposed */ /* x.have: number of bytes available at x.next */ /* x.next: next output data to deliver or write */ /* x.pos: current position in uncompressed data */ /* used for both reading and writing */ int mode; /* see gzip modes above */ int fd; /* file descriptor */ char *path; /* path or fd for error messages */ unsigned size; /* buffer size, zero if not allocated yet */ unsigned want; /* requested buffer size, default is GZBUFSIZE */ unsigned char *in; /* input buffer (double-sized when writing) */ unsigned char *out; /* output buffer (double-sized when reading) */ int direct; /* 0 if processing gzip, 1 if transparent */ /* just for reading */ int how; /* 0: get header, 1: copy, 2: decompress */ z_off64_t start; /* where the gzip data started, for rewinding */ int eof; /* true if end of input file reached */ int past; /* true if read requested past end */ /* just for writing */ int level; /* compression level */ int strategy; /* compression strategy */ /* seek request */ z_off64_t skip; /* amount to skip (already rewound if backwards) */ int seek; /* true if seek request pending */ /* error information */ int err; /* error code */ char *msg; /* error message */ /* zlib inflate or deflate stream */ z_stream strm; /* stream structure in-place (not a pointer) */ } gz_state; typedef gz_state FAR *gz_statep; /* shared functions */ void ZLIB_INTERNAL gz_error OF((gz_statep, int, const char *)); #if defined UNDER_CE char ZLIB_INTERNAL *gz_strwinerror OF((DWORD error)); #endif /* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t value -- needed when comparing unsigned to z_off64_t, which is signed (possible z_off64_t types off_t, off64_t, and long are all signed) */ #ifdef INT_MAX # define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > INT_MAX) #else unsigned ZLIB_INTERNAL gz_intmax OF((void)); # define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > gz_intmax()) #endif |
Added jni/freetype/src/gzip/infback.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /* infback.c -- inflate using a call-back interface * Copyright (C) 1995-2016 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ /* This code is largely copied from inflate.c. Normally either infback.o or inflate.o would be linked into an application--not both. The interface with inffast.c is retained so that optimized assembler-coded versions of inflate_fast() can be used with either inflate.c or infback.c. */ #include "zutil.h" #include "inftrees.h" #include "inflate.h" #include "inffast.h" /* function prototypes */ local void fixedtables OF((struct inflate_state FAR *state)); /* strm provides memory allocation functions in zalloc and zfree, or Z_NULL to use the library memory allocation functions. windowBits is in the range 8..15, and window is a user-supplied window and output buffer that is 2**windowBits bytes. */ int ZEXPORT inflateBackInit_( z_streamp strm, int windowBits, unsigned char FAR *window, const char *version, int stream_size) { struct inflate_state FAR *state; if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || stream_size != (int)(sizeof(z_stream))) return Z_VERSION_ERROR; if (strm == Z_NULL || window == Z_NULL || windowBits < 8 || windowBits > 15) return Z_STREAM_ERROR; strm->msg = Z_NULL; /* in case we return an error */ if (strm->zalloc == (alloc_func)0) { #ifdef Z_SOLO return Z_STREAM_ERROR; #else strm->zalloc = zcalloc; strm->opaque = (voidpf)0; #endif } if (strm->zfree == (free_func)0) #ifdef Z_SOLO return Z_STREAM_ERROR; #else strm->zfree = zcfree; #endif state = (struct inflate_state FAR *)ZALLOC(strm, 1, sizeof(struct inflate_state)); if (state == Z_NULL) return Z_MEM_ERROR; Tracev((stderr, "inflate: allocated\n")); strm->state = (struct internal_state FAR *)state; state->dmax = 32768U; state->wbits = (uInt)windowBits; state->wsize = 1U << windowBits; state->window = window; state->wnext = 0; state->whave = 0; return Z_OK; } /* Return state with length and distance decoding tables and index sizes set to fixed code decoding. Normally this returns fixed tables from inffixed.h. If BUILDFIXED is defined, then instead this routine builds the tables the first time it's called, and returns those tables the first time and thereafter. This reduces the size of the code by about 2K bytes, in exchange for a little execution time. However, BUILDFIXED should not be used for threaded applications, since the rewriting of the tables and virgin may not be thread-safe. */ local void fixedtables( struct inflate_state FAR *state) { #ifdef BUILDFIXED static int virgin = 1; static code *lenfix, *distfix; static code fixed[544]; /* build fixed huffman tables if first call (may not be thread safe) */ if (virgin) { unsigned sym, bits; static code *next; /* literal/length table */ sym = 0; while (sym < 144) state->lens[sym++] = 8; while (sym < 256) state->lens[sym++] = 9; while (sym < 280) state->lens[sym++] = 7; while (sym < 288) state->lens[sym++] = 8; next = fixed; lenfix = next; bits = 9; inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work); /* distance table */ sym = 0; while (sym < 32) state->lens[sym++] = 5; distfix = next; bits = 5; inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work); /* do this just once */ virgin = 0; } #else /* !BUILDFIXED */ # include "inffixed.h" #endif /* BUILDFIXED */ state->lencode = lenfix; state->lenbits = 9; state->distcode = distfix; state->distbits = 5; } /* Macros for inflateBack(): */ /* Load returned state from inflate_fast() */ #define LOAD() \ do { \ put = strm->next_out; \ left = strm->avail_out; \ next = strm->next_in; \ have = strm->avail_in; \ hold = state->hold; \ bits = state->bits; \ } while (0) /* Set state from registers for inflate_fast() */ #define RESTORE() \ do { \ strm->next_out = put; \ strm->avail_out = left; \ strm->next_in = next; \ strm->avail_in = have; \ state->hold = hold; \ state->bits = bits; \ } while (0) /* Clear the input bit accumulator */ #define INITBITS() \ do { \ hold = 0; \ bits = 0; \ } while (0) /* Assure that some input is available. If input is requested, but denied, then return a Z_BUF_ERROR from inflateBack(). */ #define PULL() \ do { \ if (have == 0) { \ have = in(in_desc, &next); \ if (have == 0) { \ next = Z_NULL; \ ret = Z_BUF_ERROR; \ goto inf_leave; \ } \ } \ } while (0) /* Get a byte of input into the bit accumulator, or return from inflateBack() with an error if there is no input available. */ #define PULLBYTE() \ do { \ PULL(); \ have--; \ hold += (unsigned long)(*next++) << bits; \ bits += 8; \ } while (0) /* Assure that there are at least n bits in the bit accumulator. If there is not enough available input to do that, then return from inflateBack() with an error. */ #define NEEDBITS(n) \ do { \ while (bits < (unsigned)(n)) \ PULLBYTE(); \ } while (0) /* Return the low n bits of the bit accumulator (n < 16) */ #define BITS(n) \ ((unsigned)hold & ((1U << (n)) - 1)) /* Remove n bits from the bit accumulator */ #define DROPBITS(n) \ do { \ hold >>= (n); \ bits -= (unsigned)(n); \ } while (0) /* Remove zero to seven bits as needed to go to a byte boundary */ #define BYTEBITS() \ do { \ hold >>= bits & 7; \ bits -= bits & 7; \ } while (0) /* Assure that some output space is available, by writing out the window if it's full. If the write fails, return from inflateBack() with a Z_BUF_ERROR. */ #define ROOM() \ do { \ if (left == 0) { \ put = state->window; \ left = state->wsize; \ state->whave = left; \ if (out(out_desc, put, left)) { \ ret = Z_BUF_ERROR; \ goto inf_leave; \ } \ } \ } while (0) /* strm provides the memory allocation functions and window buffer on input, and provides information on the unused input on return. For Z_DATA_ERROR returns, strm will also provide an error message. in() and out() are the call-back input and output functions. When inflateBack() needs more input, it calls in(). When inflateBack() has filled the window with output, or when it completes with data in the window, it calls out() to write out the data. The application must not change the provided input until in() is called again or inflateBack() returns. The application must not change the window/output buffer until inflateBack() returns. in() and out() are called with a descriptor parameter provided in the inflateBack() call. This parameter can be a structure that provides the information required to do the read or write, as well as accumulated information on the input and output such as totals and check values. in() should return zero on failure. out() should return non-zero on failure. If either in() or out() fails, than inflateBack() returns a Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it was in() or out() that caused in the error. Otherwise, inflateBack() returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format error, or Z_MEM_ERROR if it could not allocate memory for the state. inflateBack() can also return Z_STREAM_ERROR if the input parameters are not correct, i.e. strm is Z_NULL or the state was not initialized. */ int ZEXPORT inflateBack( z_streamp strm, in_func in, void FAR *in_desc, out_func out, void FAR *out_desc) { struct inflate_state FAR *state; z_const unsigned char FAR *next; /* next input */ unsigned char FAR *put; /* next output */ unsigned have, left; /* available input and output */ unsigned long hold; /* bit buffer */ unsigned bits; /* bits in bit buffer */ unsigned copy; /* number of stored or match bytes to copy */ unsigned char FAR *from; /* where to copy match bytes from */ code here; /* current decoding table entry */ code last; /* parent table entry */ unsigned len; /* length to copy for repeats, bits to drop */ int ret; /* return code */ static const unsigned short order[19] = /* permutation of code lengths */ {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; /* Check that the strm exists and that the state was initialized */ if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; /* Reset the state */ strm->msg = Z_NULL; state->mode = TYPE; state->last = 0; state->whave = 0; next = strm->next_in; have = next != Z_NULL ? strm->avail_in : 0; hold = 0; bits = 0; put = state->window; left = state->wsize; /* Inflate until end of block marked as last */ for (;;) switch (state->mode) { case TYPE: /* determine and dispatch block type */ if (state->last) { BYTEBITS(); state->mode = DONE; break; } NEEDBITS(3); state->last = BITS(1); DROPBITS(1); switch (BITS(2)) { case 0: /* stored block */ Tracev((stderr, "inflate: stored block%s\n", state->last ? " (last)" : "")); state->mode = STORED; break; case 1: /* fixed block */ fixedtables(state); Tracev((stderr, "inflate: fixed codes block%s\n", state->last ? " (last)" : "")); state->mode = LEN; /* decode codes */ break; case 2: /* dynamic block */ Tracev((stderr, "inflate: dynamic codes block%s\n", state->last ? " (last)" : "")); state->mode = TABLE; break; case 3: strm->msg = (char *)"invalid block type"; state->mode = BAD; } DROPBITS(2); break; case STORED: /* get and verify stored block length */ BYTEBITS(); /* go to byte boundary */ NEEDBITS(32); if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) { strm->msg = (char *)"invalid stored block lengths"; state->mode = BAD; break; } state->length = (unsigned)hold & 0xffff; Tracev((stderr, "inflate: stored length %u\n", state->length)); INITBITS(); /* copy stored block from input to output */ while (state->length != 0) { copy = state->length; PULL(); ROOM(); if (copy > have) copy = have; if (copy > left) copy = left; zmemcpy(put, next, copy); have -= copy; next += copy; left -= copy; put += copy; state->length -= copy; } Tracev((stderr, "inflate: stored end\n")); state->mode = TYPE; break; case TABLE: /* get dynamic table entries descriptor */ NEEDBITS(14); state->nlen = BITS(5) + 257; DROPBITS(5); state->ndist = BITS(5) + 1; DROPBITS(5); state->ncode = BITS(4) + 4; DROPBITS(4); #ifndef PKZIP_BUG_WORKAROUND if (state->nlen > 286 || state->ndist > 30) { strm->msg = (char *)"too many length or distance symbols"; state->mode = BAD; break; } #endif Tracev((stderr, "inflate: table sizes ok\n")); /* get code length code lengths (not a typo) */ state->have = 0; while (state->have < state->ncode) { NEEDBITS(3); state->lens[order[state->have++]] = (unsigned short)BITS(3); DROPBITS(3); } while (state->have < 19) state->lens[order[state->have++]] = 0; state->next = state->codes; state->lencode = (code const FAR *)(state->next); state->lenbits = 7; ret = inflate_table(CODES, state->lens, 19, &(state->next), &(state->lenbits), state->work); if (ret) { strm->msg = (char *)"invalid code lengths set"; state->mode = BAD; break; } Tracev((stderr, "inflate: code lengths ok\n")); /* get length and distance code code lengths */ state->have = 0; while (state->have < state->nlen + state->ndist) { for (;;) { here = state->lencode[BITS(state->lenbits)]; if ((unsigned)(here.bits) <= bits) break; PULLBYTE(); } if (here.val < 16) { DROPBITS(here.bits); state->lens[state->have++] = here.val; } else { if (here.val == 16) { NEEDBITS(here.bits + 2); DROPBITS(here.bits); if (state->have == 0) { strm->msg = (char *)"invalid bit length repeat"; state->mode = BAD; break; } len = (unsigned)(state->lens[state->have - 1]); copy = 3 + BITS(2); DROPBITS(2); } else if (here.val == 17) { NEEDBITS(here.bits + 3); DROPBITS(here.bits); len = 0; copy = 3 + BITS(3); DROPBITS(3); } else { NEEDBITS(here.bits + 7); DROPBITS(here.bits); len = 0; copy = 11 + BITS(7); DROPBITS(7); } if (state->have + copy > state->nlen + state->ndist) { strm->msg = (char *)"invalid bit length repeat"; state->mode = BAD; break; } while (copy--) state->lens[state->have++] = (unsigned short)len; } } /* handle error breaks in while */ if (state->mode == BAD) break; /* check for end-of-block code (better have one) */ if (state->lens[256] == 0) { strm->msg = (char *)"invalid code -- missing end-of-block"; state->mode = BAD; break; } /* build code tables -- note: do not change the lenbits or distbits values here (9 and 6) without reading the comments in inftrees.h concerning the ENOUGH constants, which depend on those values */ state->next = state->codes; state->lencode = (code const FAR *)(state->next); state->lenbits = 9; ret = inflate_table(LENS, state->lens, state->nlen, &(state->next), &(state->lenbits), state->work); if (ret) { strm->msg = (char *)"invalid literal/lengths set"; state->mode = BAD; break; } state->distcode = (code const FAR *)(state->next); state->distbits = 6; ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist, &(state->next), &(state->distbits), state->work); if (ret) { strm->msg = (char *)"invalid distances set"; state->mode = BAD; break; } Tracev((stderr, "inflate: codes ok\n")); state->mode = LEN; case LEN: /* use inflate_fast() if we have enough input and output */ if (have >= 6 && left >= 258) { RESTORE(); if (state->whave < state->wsize) state->whave = state->wsize - left; inflate_fast(strm, state->wsize); LOAD(); break; } /* get a literal, length, or end-of-block code */ for (;;) { here = state->lencode[BITS(state->lenbits)]; if ((unsigned)(here.bits) <= bits) break; PULLBYTE(); } if (here.op && (here.op & 0xf0) == 0) { last = here; for (;;) { here = state->lencode[last.val + (BITS(last.bits + last.op) >> last.bits)]; if ((unsigned)(last.bits + here.bits) <= bits) break; PULLBYTE(); } DROPBITS(last.bits); } DROPBITS(here.bits); state->length = (unsigned)here.val; /* process literal */ if (here.op == 0) { Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? "inflate: literal '%c'\n" : "inflate: literal 0x%02x\n", here.val)); ROOM(); *put++ = (unsigned char)(state->length); left--; state->mode = LEN; break; } /* process end of block */ if (here.op & 32) { Tracevv((stderr, "inflate: end of block\n")); state->mode = TYPE; break; } /* invalid code */ if (here.op & 64) { strm->msg = (char *)"invalid literal/length code"; state->mode = BAD; break; } /* length code -- get extra bits, if any */ state->extra = (unsigned)(here.op) & 15; if (state->extra != 0) { NEEDBITS(state->extra); state->length += BITS(state->extra); DROPBITS(state->extra); } Tracevv((stderr, "inflate: length %u\n", state->length)); /* get distance code */ for (;;) { here = state->distcode[BITS(state->distbits)]; if ((unsigned)(here.bits) <= bits) break; PULLBYTE(); } if ((here.op & 0xf0) == 0) { last = here; for (;;) { here = state->distcode[last.val + (BITS(last.bits + last.op) >> last.bits)]; if ((unsigned)(last.bits + here.bits) <= bits) break; PULLBYTE(); } DROPBITS(last.bits); } DROPBITS(here.bits); if (here.op & 64) { strm->msg = (char *)"invalid distance code"; state->mode = BAD; break; } state->offset = (unsigned)here.val; /* get distance extra bits, if any */ state->extra = (unsigned)(here.op) & 15; if (state->extra != 0) { NEEDBITS(state->extra); state->offset += BITS(state->extra); DROPBITS(state->extra); } if (state->offset > state->wsize - (state->whave < state->wsize ? left : 0)) { strm->msg = (char *)"invalid distance too far back"; state->mode = BAD; break; } Tracevv((stderr, "inflate: distance %u\n", state->offset)); /* copy match from window to output */ do { ROOM(); copy = state->wsize - state->offset; if (copy < left) { from = put + copy; copy = left - copy; } else { from = put - state->offset; copy = left; } if (copy > state->length) copy = state->length; state->length -= copy; left -= copy; do { *put++ = *from++; } while (--copy); } while (state->length != 0); break; case DONE: /* inflate stream terminated properly -- write leftover output */ ret = Z_STREAM_END; if (left < state->wsize) { if (out(out_desc, state->window, state->wsize - left)) ret = Z_BUF_ERROR; } goto inf_leave; case BAD: ret = Z_DATA_ERROR; goto inf_leave; default: /* can't happen, but makes compilers happy */ ret = Z_STREAM_ERROR; goto inf_leave; } /* Return unused input */ inf_leave: strm->next_in = next; strm->avail_in = have; return ret; } int ZEXPORT inflateBackEnd( z_streamp strm) { if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) return Z_STREAM_ERROR; ZFREE(strm, strm->state); strm->state = Z_NULL; Tracev((stderr, "inflate: end\n")); return Z_OK; } |
Deleted jni/freetype/src/gzip/infblock.c.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted jni/freetype/src/gzip/infblock.h.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted jni/freetype/src/gzip/infcodes.c.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted jni/freetype/src/gzip/infcodes.h.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Added jni/freetype/src/gzip/inffast.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /* inffast.c -- fast decoding * Copyright (C) 1995-2017 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #include "zutil.h" #include "inftrees.h" #include "inflate.h" #include "inffast.h" #ifdef ASMINF # pragma message("Assembler code may have bugs -- use at your own risk") #else /* Decode literal, length, and distance codes and write out the resulting literal and match bytes until either not enough input or output is available, an end-of-block is encountered, or a data error is encountered. When large enough input and output buffers are supplied to inflate(), for example, a 16K input buffer and a 64K output buffer, more than 95% of the inflate execution time is spent in this routine. Entry assumptions: state->mode == LEN strm->avail_in >= 6 strm->avail_out >= 258 start >= strm->avail_out state->bits < 8 On return, state->mode is one of: LEN -- ran out of enough output space or enough available input TYPE -- reached end of block code, inflate() to interpret next block BAD -- error in block data Notes: - The maximum input bits used by a length/distance pair is 15 bits for the length code, 5 bits for the length extra, 15 bits for the distance code, and 13 bits for the distance extra. This totals 48 bits, or six bytes. Therefore if strm->avail_in >= 6, then there is enough input to avoid checking for available input while decoding. - The maximum bytes that a single length/distance pair can output is 258 bytes, which is the maximum length that can be coded. inflate_fast() requires strm->avail_out >= 258 for each loop to avoid checking for output space. */ void ZLIB_INTERNAL inflate_fast( z_streamp strm, unsigned start) { struct inflate_state FAR *state; z_const unsigned char FAR *in; /* local strm->next_in */ z_const unsigned char FAR *last; /* have enough input while in < last */ unsigned char FAR *out; /* local strm->next_out */ unsigned char FAR *beg; /* inflate()'s initial strm->next_out */ unsigned char FAR *end; /* while out < end, enough space available */ #ifdef INFLATE_STRICT unsigned dmax; /* maximum distance from zlib header */ #endif unsigned wsize; /* window size or zero if not using window */ unsigned whave; /* valid bytes in the window */ unsigned wnext; /* window write index */ unsigned char FAR *window; /* allocated sliding window, if wsize != 0 */ unsigned long hold; /* local strm->hold */ unsigned bits; /* local strm->bits */ code const FAR *lcode; /* local strm->lencode */ code const FAR *dcode; /* local strm->distcode */ unsigned lmask; /* mask for first level of length codes */ unsigned dmask; /* mask for first level of distance codes */ code here; /* retrieved table entry */ unsigned op; /* code bits, operation, extra bits, or */ /* window position, window bytes to copy */ unsigned len; /* match length, unused bytes */ unsigned dist; /* match distance */ unsigned char FAR *from; /* where to copy match from */ /* copy state to local variables */ state = (struct inflate_state FAR *)strm->state; in = strm->next_in; last = in + (strm->avail_in - 5); out = strm->next_out; beg = out - (start - strm->avail_out); end = out + (strm->avail_out - 257); #ifdef INFLATE_STRICT dmax = state->dmax; #endif wsize = state->wsize; whave = state->whave; wnext = state->wnext; window = state->window; hold = state->hold; bits = state->bits; lcode = state->lencode; dcode = state->distcode; lmask = (1U << state->lenbits) - 1; dmask = (1U << state->distbits) - 1; /* decode literals and length/distances until end-of-block or not enough input data or output space */ do { if (bits < 15) { hold += (unsigned long)(*in++) << bits; bits += 8; hold += (unsigned long)(*in++) << bits; bits += 8; } here = lcode[hold & lmask]; dolen: op = (unsigned)(here.bits); hold >>= op; bits -= op; op = (unsigned)(here.op); if (op == 0) { /* literal */ Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? "inflate: literal '%c'\n" : "inflate: literal 0x%02x\n", here.val)); *out++ = (unsigned char)(here.val); } else if (op & 16) { /* length base */ len = (unsigned)(here.val); op &= 15; /* number of extra bits */ if (op) { if (bits < op) { hold += (unsigned long)(*in++) << bits; bits += 8; } len += (unsigned)hold & ((1U << op) - 1); hold >>= op; bits -= op; } Tracevv((stderr, "inflate: length %u\n", len)); if (bits < 15) { hold += (unsigned long)(*in++) << bits; bits += 8; hold += (unsigned long)(*in++) << bits; bits += 8; } here = dcode[hold & dmask]; dodist: op = (unsigned)(here.bits); hold >>= op; bits -= op; op = (unsigned)(here.op); if (op & 16) { /* distance base */ dist = (unsigned)(here.val); op &= 15; /* number of extra bits */ if (bits < op) { hold += (unsigned long)(*in++) << bits; bits += 8; if (bits < op) { hold += (unsigned long)(*in++) << bits; bits += 8; } } dist += (unsigned)hold & ((1U << op) - 1); #ifdef INFLATE_STRICT if (dist > dmax) { strm->msg = (char *)"invalid distance too far back"; state->mode = BAD; break; } #endif hold >>= op; bits -= op; Tracevv((stderr, "inflate: distance %u\n", dist)); op = (unsigned)(out - beg); /* max distance in output */ if (dist > op) { /* see if copy from window */ op = dist - op; /* distance back in window */ if (op > whave) { if (state->sane) { strm->msg = (char *)"invalid distance too far back"; state->mode = BAD; break; } #ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR if (len <= op - whave) { do { *out++ = 0; } while (--len); continue; } len -= op - whave; do { *out++ = 0; } while (--op > whave); if (op == 0) { from = out - dist; do { *out++ = *from++; } while (--len); continue; } #endif } from = window; if (wnext == 0) { /* very common case */ from += wsize - op; if (op < len) { /* some from window */ len -= op; do { *out++ = *from++; } while (--op); from = out - dist; /* rest from output */ } } else if (wnext < op) { /* wrap around window */ from += wsize + wnext - op; op -= wnext; if (op < len) { /* some from end of window */ len -= op; do { *out++ = *from++; } while (--op); from = window; if (wnext < len) { /* some from start of window */ op = wnext; len -= op; do { *out++ = *from++; } while (--op); from = out - dist; /* rest from output */ } } } else { /* contiguous in window */ from += wnext - op; if (op < len) { /* some from window */ len -= op; do { *out++ = *from++; } while (--op); from = out - dist; /* rest from output */ } } while (len > 2) { *out++ = *from++; *out++ = *from++; *out++ = *from++; len -= 3; } if (len) { *out++ = *from++; if (len > 1) *out++ = *from++; } } else { from = out - dist; /* copy direct from output */ do { /* minimum length is three */ *out++ = *from++; *out++ = *from++; *out++ = *from++; len -= 3; } while (len > 2); if (len) { *out++ = *from++; if (len > 1) *out++ = *from++; } } } else if ((op & 64) == 0) { /* 2nd level distance code */ here = dcode[here.val + (hold & ((1U << op) - 1))]; goto dodist; } else { strm->msg = (char *)"invalid distance code"; state->mode = BAD; break; } } else if ((op & 64) == 0) { /* 2nd level length code */ here = lcode[here.val + (hold & ((1U << op) - 1))]; goto dolen; } else if (op & 32) { /* end-of-block */ Tracevv((stderr, "inflate: end of block\n")); state->mode = TYPE; break; } else { strm->msg = (char *)"invalid literal/length code"; state->mode = BAD; break; } } while (in < last && out < end); /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ len = bits >> 3; in -= len; bits -= len << 3; hold &= (1U << bits) - 1; /* update state and return */ strm->next_in = in; strm->next_out = out; strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last)); strm->avail_out = (unsigned)(out < end ? 257 + (end - out) : 257 - (out - end)); state->hold = hold; state->bits = bits; return; } /* inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe): - Using bit fields for code structure - Different op definition to avoid & for extra bits (do & for table bits) - Three separate decoding do-loops for direct, window, and wnext == 0 - Special case for distance > 1 copies to do overlapped load and store copy - Explicit branch predictions (based on measured branch probabilities) - Deferring match copy and interspersed it with decoding subsequent codes - Swapping literal/length else - Swapping window/direct else - Larger unrolled copy loops (three is about right) - Moving len -= 3 statement into middle of loop */ #endif /* !ASMINF */ |
Added jni/freetype/src/gzip/inffast.h.
> > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 | /* inffast.h -- header to use inffast.c * Copyright (C) 1995-2003, 2010 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ /* WARNING: this file should *not* be used by applications. It is part of the implementation of the compression library and is subject to change. Applications should only use zlib.h. */ ZEXTERN void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start)); |
Changes to jni/freetype/src/gzip/inffixed.h.
|
| | | | | | | | | | | | | | | | | | | | | | < < < < < < < < < < < < < < | | | | | | | | | | | | | | | | | | | | | | | | < < < < < < < < < < < < < < | | | | | | | | | | | | | | | | | | | | | | < < < < < < < < < < < < < < < < | | | | | | | | | | | | | | | < < < < < < < < < < < < | | > | < < < > > | < < > | | | 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 | /* inffixed.h -- table for decoding fixed codes * Generated automatically by makefixed(). */ /* WARNING: this file should *not* be used by applications. It is part of the implementation of this library and is subject to change. Applications should only use zlib.h. */ static const code lenfix[512] = { {96,7,0},{0,8,80},{0,8,16},{20,8,115},{18,7,31},{0,8,112},{0,8,48}, {0,9,192},{16,7,10},{0,8,96},{0,8,32},{0,9,160},{0,8,0},{0,8,128}, {0,8,64},{0,9,224},{16,7,6},{0,8,88},{0,8,24},{0,9,144},{19,7,59}, {0,8,120},{0,8,56},{0,9,208},{17,7,17},{0,8,104},{0,8,40},{0,9,176}, {0,8,8},{0,8,136},{0,8,72},{0,9,240},{16,7,4},{0,8,84},{0,8,20}, {21,8,227},{19,7,43},{0,8,116},{0,8,52},{0,9,200},{17,7,13},{0,8,100}, {0,8,36},{0,9,168},{0,8,4},{0,8,132},{0,8,68},{0,9,232},{16,7,8}, {0,8,92},{0,8,28},{0,9,152},{20,7,83},{0,8,124},{0,8,60},{0,9,216}, {18,7,23},{0,8,108},{0,8,44},{0,9,184},{0,8,12},{0,8,140},{0,8,76}, {0,9,248},{16,7,3},{0,8,82},{0,8,18},{21,8,163},{19,7,35},{0,8,114}, {0,8,50},{0,9,196},{17,7,11},{0,8,98},{0,8,34},{0,9,164},{0,8,2}, {0,8,130},{0,8,66},{0,9,228},{16,7,7},{0,8,90},{0,8,26},{0,9,148}, {20,7,67},{0,8,122},{0,8,58},{0,9,212},{18,7,19},{0,8,106},{0,8,42}, {0,9,180},{0,8,10},{0,8,138},{0,8,74},{0,9,244},{16,7,5},{0,8,86}, {0,8,22},{64,8,0},{19,7,51},{0,8,118},{0,8,54},{0,9,204},{17,7,15}, {0,8,102},{0,8,38},{0,9,172},{0,8,6},{0,8,134},{0,8,70},{0,9,236}, {16,7,9},{0,8,94},{0,8,30},{0,9,156},{20,7,99},{0,8,126},{0,8,62}, {0,9,220},{18,7,27},{0,8,110},{0,8,46},{0,9,188},{0,8,14},{0,8,142}, {0,8,78},{0,9,252},{96,7,0},{0,8,81},{0,8,17},{21,8,131},{18,7,31}, {0,8,113},{0,8,49},{0,9,194},{16,7,10},{0,8,97},{0,8,33},{0,9,162}, {0,8,1},{0,8,129},{0,8,65},{0,9,226},{16,7,6},{0,8,89},{0,8,25}, {0,9,146},{19,7,59},{0,8,121},{0,8,57},{0,9,210},{17,7,17},{0,8,105}, {0,8,41},{0,9,178},{0,8,9},{0,8,137},{0,8,73},{0,9,242},{16,7,4}, {0,8,85},{0,8,21},{16,8,258},{19,7,43},{0,8,117},{0,8,53},{0,9,202}, {17,7,13},{0,8,101},{0,8,37},{0,9,170},{0,8,5},{0,8,133},{0,8,69}, {0,9,234},{16,7,8},{0,8,93},{0,8,29},{0,9,154},{20,7,83},{0,8,125}, {0,8,61},{0,9,218},{18,7,23},{0,8,109},{0,8,45},{0,9,186},{0,8,13}, {0,8,141},{0,8,77},{0,9,250},{16,7,3},{0,8,83},{0,8,19},{21,8,195}, {19,7,35},{0,8,115},{0,8,51},{0,9,198},{17,7,11},{0,8,99},{0,8,35}, {0,9,166},{0,8,3},{0,8,131},{0,8,67},{0,9,230},{16,7,7},{0,8,91}, {0,8,27},{0,9,150},{20,7,67},{0,8,123},{0,8,59},{0,9,214},{18,7,19}, {0,8,107},{0,8,43},{0,9,182},{0,8,11},{0,8,139},{0,8,75},{0,9,246}, {16,7,5},{0,8,87},{0,8,23},{64,8,0},{19,7,51},{0,8,119},{0,8,55}, {0,9,206},{17,7,15},{0,8,103},{0,8,39},{0,9,174},{0,8,7},{0,8,135}, {0,8,71},{0,9,238},{16,7,9},{0,8,95},{0,8,31},{0,9,158},{20,7,99}, {0,8,127},{0,8,63},{0,9,222},{18,7,27},{0,8,111},{0,8,47},{0,9,190}, {0,8,15},{0,8,143},{0,8,79},{0,9,254},{96,7,0},{0,8,80},{0,8,16}, {20,8,115},{18,7,31},{0,8,112},{0,8,48},{0,9,193},{16,7,10},{0,8,96}, {0,8,32},{0,9,161},{0,8,0},{0,8,128},{0,8,64},{0,9,225},{16,7,6}, {0,8,88},{0,8,24},{0,9,145},{19,7,59},{0,8,120},{0,8,56},{0,9,209}, {17,7,17},{0,8,104},{0,8,40},{0,9,177},{0,8,8},{0,8,136},{0,8,72}, {0,9,241},{16,7,4},{0,8,84},{0,8,20},{21,8,227},{19,7,43},{0,8,116}, {0,8,52},{0,9,201},{17,7,13},{0,8,100},{0,8,36},{0,9,169},{0,8,4}, {0,8,132},{0,8,68},{0,9,233},{16,7,8},{0,8,92},{0,8,28},{0,9,153}, {20,7,83},{0,8,124},{0,8,60},{0,9,217},{18,7,23},{0,8,108},{0,8,44}, {0,9,185},{0,8,12},{0,8,140},{0,8,76},{0,9,249},{16,7,3},{0,8,82}, {0,8,18},{21,8,163},{19,7,35},{0,8,114},{0,8,50},{0,9,197},{17,7,11}, {0,8,98},{0,8,34},{0,9,165},{0,8,2},{0,8,130},{0,8,66},{0,9,229}, {16,7,7},{0,8,90},{0,8,26},{0,9,149},{20,7,67},{0,8,122},{0,8,58}, {0,9,213},{18,7,19},{0,8,106},{0,8,42},{0,9,181},{0,8,10},{0,8,138}, {0,8,74},{0,9,245},{16,7,5},{0,8,86},{0,8,22},{64,8,0},{19,7,51}, {0,8,118},{0,8,54},{0,9,205},{17,7,15},{0,8,102},{0,8,38},{0,9,173}, {0,8,6},{0,8,134},{0,8,70},{0,9,237},{16,7,9},{0,8,94},{0,8,30}, {0,9,157},{20,7,99},{0,8,126},{0,8,62},{0,9,221},{18,7,27},{0,8,110}, {0,8,46},{0,9,189},{0,8,14},{0,8,142},{0,8,78},{0,9,253},{96,7,0}, {0,8,81},{0,8,17},{21,8,131},{18,7,31},{0,8,113},{0,8,49},{0,9,195}, {16,7,10},{0,8,97},{0,8,33},{0,9,163},{0,8,1},{0,8,129},{0,8,65}, {0,9,227},{16,7,6},{0,8,89},{0,8,25},{0,9,147},{19,7,59},{0,8,121}, {0,8,57},{0,9,211},{17,7,17},{0,8,105},{0,8,41},{0,9,179},{0,8,9}, {0,8,137},{0,8,73},{0,9,243},{16,7,4},{0,8,85},{0,8,21},{16,8,258}, {19,7,43},{0,8,117},{0,8,53},{0,9,203},{17,7,13},{0,8,101},{0,8,37}, {0,9,171},{0,8,5},{0,8,133},{0,8,69},{0,9,235},{16,7,8},{0,8,93}, {0,8,29},{0,9,155},{20,7,83},{0,8,125},{0,8,61},{0,9,219},{18,7,23}, {0,8,109},{0,8,45},{0,9,187},{0,8,13},{0,8,141},{0,8,77},{0,9,251}, {16,7,3},{0,8,83},{0,8,19},{21,8,195},{19,7,35},{0,8,115},{0,8,51}, {0,9,199},{17,7,11},{0,8,99},{0,8,35},{0,9,167},{0,8,3},{0,8,131}, {0,8,67},{0,9,231},{16,7,7},{0,8,91},{0,8,27},{0,9,151},{20,7,67}, {0,8,123},{0,8,59},{0,9,215},{18,7,19},{0,8,107},{0,8,43},{0,9,183}, {0,8,11},{0,8,139},{0,8,75},{0,9,247},{16,7,5},{0,8,87},{0,8,23}, {64,8,0},{19,7,51},{0,8,119},{0,8,55},{0,9,207},{17,7,15},{0,8,103}, {0,8,39},{0,9,175},{0,8,7},{0,8,135},{0,8,71},{0,9,239},{16,7,9}, {0,8,95},{0,8,31},{0,9,159},{20,7,99},{0,8,127},{0,8,63},{0,9,223}, {18,7,27},{0,8,111},{0,8,47},{0,9,191},{0,8,15},{0,8,143},{0,8,79}, {0,9,255} }; static const code distfix[32] = { {16,5,1},{23,5,257},{19,5,17},{27,5,4097},{17,5,5},{25,5,1025}, {21,5,65},{29,5,16385},{16,5,3},{24,5,513},{20,5,33},{28,5,8193}, {18,5,9},{26,5,2049},{22,5,129},{64,5,0},{16,5,2},{23,5,385}, {19,5,25},{27,5,6145},{17,5,7},{25,5,1537},{21,5,97},{29,5,24577}, {16,5,4},{24,5,769},{20,5,49},{28,5,12289},{18,5,13},{26,5,3073}, {22,5,193},{64,5,0} }; |
Changes to jni/freetype/src/gzip/inflate.c.
|
| | | > | < | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | < > > | > > | > > > > > > | > | > > > | > > > > > > | > > | > | > > | > > | | | > > | < | > > > > > > | > > | > > > > > > > > | | | > | > | > > > > > > > > > > > > > > > > > | > | > > > | | > > > > > > > | > > > > > > | > > > | > > > > > > > > > > > > | > > > > > > > > > > > > > > > > > > > | | > | > > > > | > > > > > > > > > > > > > > | | > > > > > > > > > > | < > | | > > > > > > > > > > | > > > | | > > | > | > > > | | < | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | > | > > > > | | | > > > > > > > > > > > > > > > | > > > > > | | > > > | > > > | > > > > > > > > > > > > > > > > > > > | > > | > | > > > > > > > | > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > | > | > > > > > > > | > > > > > > > > | > > > > > > > > > | > > > > > > > > > > > > > > > > > | > | | > > > | | > | > > > > > > > > > | > > > > > > > | > > > | > > > > > > | > > > > > > | > > > > | > > > > | > | > > | | > > | > > | | > | < > | > > > > > > > > > > > | > > > > > | > > > > > > > > | > | | > > > | > > > > > > > > | > > > > > > > > > > > > > > | > > > > > > > > > > > > > > | > > | > | > | | > > > > | > > > > > > | > > > | > > > > > > | > > > > > > > > > | > > > > | | | > > > > > > > > | > > > > > > > > > > > > > > | > > > > | > > > > > > > | > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | < > > > | > | > | | | > > > > | < > > > > > > > > > | > > > > > > > > > > | > > > > > > > > > > > | > > > > > > > > > > > > > | > > > > > > > > > > > > > > > | > > | > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > | < > | > > > > > > > | < < > > | < < | | > > | < > | > > | > | > > > > > > > > > > | | > | < > | | | > | < > > > > > > | > > > > > > > > > > > > > > > > > > > > | | | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > | > > > | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > | < > > > > > > > > > > > > > > > | > | > | > > > > | < | > > > | > > > > > > > > > > > > > > > > | > > > > | < | > | > > > > > > > | > > > > > > > > > > > > > | > > > | > > > > > > > > > > > > > > > > | < > > > > > | > > > | > > > | | | > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > > | | > > > > > > > > | > | < | < > > > > > > > > > > > > > > > > > > > | > > > > > > | > > > > > > > > | | | > | > > > | > > > > > | > | < > | > > > > | > | > > > | > > > > > > | > > > > | > > > > > > > > | > > > > > | > > > > > > > | | > > > | > > > > > > | > > > > > | < | > | > | | < | > > > | | > > > > > > > > | > > > > > > > > | < > > > > > > > > > > | > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > > | > > | > | > > > > > > > > > > > > | > > > | | > > > > > > > > > > > > > > > > > > > > > | > > > | < | > > | > > > > > > > > > > > > > > > > | > | > | > > > > > | > > | > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 | /* inflate.c -- zlib decompression * Copyright (C) 1995-2016 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ /* * Change history: * * 1.2.beta0 24 Nov 2002 * - First version -- complete rewrite of inflate to simplify code, avoid * creation of window when not needed, minimize use of window when it is * needed, make inffast.c even faster, implement gzip decoding, and to * improve code readability and style over the previous zlib inflate code * * 1.2.beta1 25 Nov 2002 * - Use pointers for available input and output checking in inffast.c * - Remove input and output counters in inffast.c * - Change inffast.c entry and loop from avail_in >= 7 to >= 6 * - Remove unnecessary second byte pull from length extra in inffast.c * - Unroll direct copy to three copies per loop in inffast.c * * 1.2.beta2 4 Dec 2002 * - Change external routine names to reduce potential conflicts * - Correct filename to inffixed.h for fixed tables in inflate.c * - Make hbuf[] unsigned char to match parameter type in inflate.c * - Change strm->next_out[-state->offset] to *(strm->next_out - state->offset) * to avoid negation problem on Alphas (64 bit) in inflate.c * * 1.2.beta3 22 Dec 2002 * - Add comments on state->bits assertion in inffast.c * - Add comments on op field in inftrees.h * - Fix bug in reuse of allocated window after inflateReset() * - Remove bit fields--back to byte structure for speed * - Remove distance extra == 0 check in inflate_fast()--only helps for lengths * - Change post-increments to pre-increments in inflate_fast(), PPC biased? * - Add compile time option, POSTINC, to use post-increments instead (Intel?) * - Make MATCH copy in inflate() much faster for when inflate_fast() not used * - Use local copies of stream next and avail values, as well as local bit * buffer and bit count in inflate()--for speed when inflate_fast() not used * * 1.2.beta4 1 Jan 2003 * - Split ptr - 257 statements in inflate_table() to avoid compiler warnings * - Move a comment on output buffer sizes from inffast.c to inflate.c * - Add comments in inffast.c to introduce the inflate_fast() routine * - Rearrange window copies in inflate_fast() for speed and simplification * - Unroll last copy for window match in inflate_fast() * - Use local copies of window variables in inflate_fast() for speed * - Pull out common wnext == 0 case for speed in inflate_fast() * - Make op and len in inflate_fast() unsigned for consistency * - Add FAR to lcode and dcode declarations in inflate_fast() * - Simplified bad distance check in inflate_fast() * - Added inflateBackInit(), inflateBack(), and inflateBackEnd() in new * source file infback.c to provide a call-back interface to inflate for * programs like gzip and unzip -- uses window as output buffer to avoid * window copying * * 1.2.beta5 1 Jan 2003 * - Improved inflateBack() interface to allow the caller to provide initial * input in strm. * - Fixed stored blocks bug in inflateBack() * * 1.2.beta6 4 Jan 2003 * - Added comments in inffast.c on effectiveness of POSTINC * - Typecasting all around to reduce compiler warnings * - Changed loops from while (1) or do {} while (1) to for (;;), again to * make compilers happy * - Changed type of window in inflateBackInit() to unsigned char * * * 1.2.beta7 27 Jan 2003 * - Changed many types to unsigned or unsigned short to avoid warnings * - Added inflateCopy() function * * 1.2.0 9 Mar 2003 * - Changed inflateBack() interface to provide separate opaque descriptors * for the in() and out() functions * - Changed inflateBack() argument and in_func typedef to swap the length * and buffer address return values for the input function * - Check next_in and next_out for Z_NULL on entry to inflate() * * The history for versions after 1.2.0 are in ChangeLog in zlib distribution. */ #include "zutil.h" #include "inftrees.h" #include "inflate.h" #include "inffast.h" #ifdef MAKEFIXED # ifndef BUILDFIXED # define BUILDFIXED # endif #endif /* function prototypes */ local int inflateStateCheck OF((z_streamp strm)); local void fixedtables OF((struct inflate_state FAR *state)); local int updatewindow OF((z_streamp strm, const unsigned char FAR *end, unsigned copy)); #ifdef BUILDFIXED void makefixed OF((void)); #endif #ifndef Z_FREETYPE local unsigned syncsearch OF((unsigned FAR *have, const unsigned char FAR *buf, unsigned len)); #endif local int inflateStateCheck( z_streamp strm) { struct inflate_state FAR *state; if (strm == Z_NULL || strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) return 1; state = (struct inflate_state FAR *)strm->state; if (state == Z_NULL || state->strm != strm || state->mode < HEAD || state->mode > SYNC) return 1; return 0; } int ZEXPORT inflateResetKeep( z_streamp strm) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; strm->total_in = strm->total_out = state->total = 0; strm->msg = Z_NULL; if (state->wrap) /* to support ill-conceived Java test suite */ strm->adler = state->wrap & 1; state->mode = HEAD; state->last = 0; state->havedict = 0; state->dmax = 32768U; state->head = Z_NULL; state->hold = 0; state->bits = 0; state->lencode = state->distcode = state->next = state->codes; state->sane = 1; state->back = -1; Tracev((stderr, "inflate: reset\n")); return Z_OK; } int ZEXPORT inflateReset( z_streamp strm) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; state->wsize = 0; state->whave = 0; state->wnext = 0; return inflateResetKeep(strm); } int ZEXPORT inflateReset2( z_streamp strm, int windowBits) { int wrap; struct inflate_state FAR *state; /* get the state */ if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; /* extract wrap request from windowBits parameter */ if (windowBits < 0) { wrap = 0; windowBits = -windowBits; } else { wrap = (windowBits >> 4) + 5; #ifdef GUNZIP if (windowBits < 48) windowBits &= 15; #endif } /* set number of window bits, free window if different */ if (windowBits && (windowBits < 8 || windowBits > 15)) return Z_STREAM_ERROR; if (state->window != Z_NULL && state->wbits != (unsigned)windowBits) { ZFREE(strm, state->window); state->window = Z_NULL; } /* update state and reset the rest of it */ state->wrap = wrap; state->wbits = (unsigned)windowBits; return inflateReset(strm); } int ZEXPORT inflateInit2_( z_streamp strm, int windowBits, const char *version, int stream_size) { int ret; struct inflate_state FAR *state; if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || stream_size != (int)(sizeof(z_stream))) return Z_VERSION_ERROR; if (strm == Z_NULL) return Z_STREAM_ERROR; strm->msg = Z_NULL; /* in case we return an error */ if (strm->zalloc == (alloc_func)0) { #ifdef Z_SOLO return Z_STREAM_ERROR; #else strm->zalloc = zcalloc; strm->opaque = (voidpf)0; #endif } if (strm->zfree == (free_func)0) #ifdef Z_SOLO return Z_STREAM_ERROR; #else strm->zfree = zcfree; #endif state = (struct inflate_state FAR *) ZALLOC(strm, 1, sizeof(struct inflate_state)); if (state == Z_NULL) return Z_MEM_ERROR; Tracev((stderr, "inflate: allocated\n")); strm->state = (struct internal_state FAR *)state; state->strm = strm; state->window = Z_NULL; state->mode = HEAD; /* to pass state test in inflateReset2() */ ret = inflateReset2(strm, windowBits); if (ret != Z_OK) { ZFREE(strm, state); strm->state = Z_NULL; } return ret; } int ZEXPORT inflateInit_( z_streamp strm, const char *version, int stream_size) { return inflateInit2_(strm, DEF_WBITS, version, stream_size); } #ifndef Z_FREETYPE int ZEXPORT inflatePrime( z_streamp strm, int bits, int value) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; if (bits < 0) { state->hold = 0; state->bits = 0; return Z_OK; } if (bits > 16 || state->bits + (uInt)bits > 32) return Z_STREAM_ERROR; value &= (1L << bits) - 1; state->hold += (unsigned)value << state->bits; state->bits += (uInt)bits; return Z_OK; } #endif /* Z_FREETYPE */ /* Return state with length and distance decoding tables and index sizes set to fixed code decoding. Normally this returns fixed tables from inffixed.h. If BUILDFIXED is defined, then instead this routine builds the tables the first time it's called, and returns those tables the first time and thereafter. This reduces the size of the code by about 2K bytes, in exchange for a little execution time. However, BUILDFIXED should not be used for threaded applications, since the rewriting of the tables and virgin may not be thread-safe. */ local void fixedtables( struct inflate_state FAR *state) { #ifdef BUILDFIXED static int virgin = 1; static code *lenfix, *distfix; static code fixed[544]; /* build fixed huffman tables if first call (may not be thread safe) */ if (virgin) { unsigned sym, bits; static code *next; /* literal/length table */ sym = 0; while (sym < 144) state->lens[sym++] = 8; while (sym < 256) state->lens[sym++] = 9; while (sym < 280) state->lens[sym++] = 7; while (sym < 288) state->lens[sym++] = 8; next = fixed; lenfix = next; bits = 9; inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work); /* distance table */ sym = 0; while (sym < 32) state->lens[sym++] = 5; distfix = next; bits = 5; inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work); /* do this just once */ virgin = 0; } #else /* !BUILDFIXED */ # include "inffixed.h" #endif /* BUILDFIXED */ state->lencode = lenfix; state->lenbits = 9; state->distcode = distfix; state->distbits = 5; } #ifdef MAKEFIXED #include <stdio.h> /* Write out the inffixed.h that is #include'd above. Defining MAKEFIXED also defines BUILDFIXED, so the tables are built on the fly. makefixed() writes those tables to stdout, which would be piped to inffixed.h. A small program can simply call makefixed to do this: void makefixed(void); int main(void) { makefixed(); return 0; } Then that can be linked with zlib built with MAKEFIXED defined and run: a.out > inffixed.h */ void makefixed() { unsigned low, size; struct inflate_state state; fixedtables(&state); puts(" /* inffixed.h -- table for decoding fixed codes"); puts(" * Generated automatically by makefixed()."); puts(" */"); puts(""); puts(" /* WARNING: this file should *not* be used by applications."); puts(" It is part of the implementation of this library and is"); puts(" subject to change. Applications should only use zlib.h."); puts(" */"); puts(""); size = 1U << 9; printf(" static const code lenfix[%u] = {", size); low = 0; for (;;) { if ((low % 7) == 0) printf("\n "); printf("{%u,%u,%d}", (low & 127) == 99 ? 64 : state.lencode[low].op, state.lencode[low].bits, state.lencode[low].val); if (++low == size) break; putchar(','); } puts("\n };"); size = 1U << 5; printf("\n static const code distfix[%u] = {", size); low = 0; for (;;) { if ((low % 6) == 0) printf("\n "); printf("{%u,%u,%d}", state.distcode[low].op, state.distcode[low].bits, state.distcode[low].val); if (++low == size) break; putchar(','); } puts("\n };"); } #endif /* MAKEFIXED */ /* Update the window with the last wsize (normally 32K) bytes written before returning. If window does not exist yet, create it. This is only called when a window is already in use, or when output has been written during this inflate call, but the end of the deflate stream has not been reached yet. It is also called to create a window for dictionary data when a dictionary is loaded. Providing output buffers larger than 32K to inflate() should provide a speed advantage, since only the last 32K of output is copied to the sliding window upon return from inflate(), and since all distances after the first 32K of output will fall in the output data, making match copies simpler and faster. The advantage may be dependent on the size of the processor's data caches. */ local int updatewindow( z_streamp strm, const Bytef *end, unsigned copy) { struct inflate_state FAR *state; unsigned dist; state = (struct inflate_state FAR *)strm->state; /* if it hasn't been done already, allocate space for the window */ if (state->window == Z_NULL) { state->window = (unsigned char FAR *) ZALLOC(strm, 1U << state->wbits, sizeof(unsigned char)); if (state->window == Z_NULL) return 1; } /* if window not in use yet, initialize */ if (state->wsize == 0) { state->wsize = 1U << state->wbits; state->wnext = 0; state->whave = 0; } /* copy state->wsize or less output bytes into the circular window */ if (copy >= state->wsize) { zmemcpy(state->window, end - state->wsize, state->wsize); state->wnext = 0; state->whave = state->wsize; } else { dist = state->wsize - state->wnext; if (dist > copy) dist = copy; zmemcpy(state->window + state->wnext, end - copy, dist); copy -= dist; if (copy) { zmemcpy(state->window, end - copy, copy); state->wnext = copy; state->whave = state->wsize; } else { state->wnext += dist; if (state->wnext == state->wsize) state->wnext = 0; if (state->whave < state->wsize) state->whave += dist; } } return 0; } /* Macros for inflate(): */ /* check function to use adler32() for zlib or crc32() for gzip */ #ifdef GUNZIP # define UPDATE(check, buf, len) \ (state->flags ? crc32(check, buf, len) : adler32(check, buf, len)) #else # define UPDATE(check, buf, len) adler32(check, buf, len) #endif /* check macros for header crc */ #ifdef GUNZIP # define CRC2(check, word) \ do { \ hbuf[0] = (unsigned char)(word); \ hbuf[1] = (unsigned char)((word) >> 8); \ check = crc32(check, hbuf, 2); \ } while (0) # define CRC4(check, word) \ do { \ hbuf[0] = (unsigned char)(word); \ hbuf[1] = (unsigned char)((word) >> 8); \ hbuf[2] = (unsigned char)((word) >> 16); \ hbuf[3] = (unsigned char)((word) >> 24); \ check = crc32(check, hbuf, 4); \ } while (0) #endif /* Load registers with state in inflate() for speed */ #define LOAD() \ do { \ put = strm->next_out; \ left = strm->avail_out; \ next = strm->next_in; \ have = strm->avail_in; \ hold = state->hold; \ bits = state->bits; \ } while (0) /* Restore state from registers in inflate() */ #define RESTORE() \ do { \ strm->next_out = put; \ strm->avail_out = left; \ strm->next_in = next; \ strm->avail_in = have; \ state->hold = hold; \ state->bits = bits; \ } while (0) /* Clear the input bit accumulator */ #define INITBITS() \ do { \ hold = 0; \ bits = 0; \ } while (0) /* Get a byte of input into the bit accumulator, or return from inflate() if there is no input available. */ #define PULLBYTE() \ do { \ if (have == 0) goto inf_leave; \ have--; \ hold += (unsigned long)(*next++) << bits; \ bits += 8; \ } while (0) /* Assure that there are at least n bits in the bit accumulator. If there is not enough available input to do that, then return from inflate(). */ #define NEEDBITS(n) \ do { \ while (bits < (unsigned)(n)) \ PULLBYTE(); \ } while (0) /* Return the low n bits of the bit accumulator (n < 16) */ #define BITS(n) \ ((unsigned)hold & ((1U << (n)) - 1)) /* Remove n bits from the bit accumulator */ #define DROPBITS(n) \ do { \ hold >>= (n); \ bits -= (unsigned)(n); \ } while (0) /* Remove zero to seven bits as needed to go to a byte boundary */ #define BYTEBITS() \ do { \ hold >>= bits & 7; \ bits -= bits & 7; \ } while (0) /* inflate() uses a state machine to process as much input data and generate as much output data as possible before returning. The state machine is structured roughly as follows: for (;;) switch (state) { ... case STATEn: if (not enough input data or output space to make progress) return; ... make progress ... state = STATEm; break; ... } so when inflate() is called again, the same case is attempted again, and if the appropriate resources are provided, the machine proceeds to the next state. The NEEDBITS() macro is usually the way the state evaluates whether it can proceed or should return. NEEDBITS() does the return if the requested bits are not available. The typical use of the BITS macros is: NEEDBITS(n); ... do something with BITS(n) ... DROPBITS(n); where NEEDBITS(n) either returns from inflate() if there isn't enough input left to load n bits into the accumulator, or it continues. BITS(n) gives the low n bits in the accumulator. When done, DROPBITS(n) drops the low n bits off the accumulator. INITBITS() clears the accumulator and sets the number of available bits to zero. BYTEBITS() discards just enough bits to put the accumulator on a byte boundary. After BYTEBITS() and a NEEDBITS(8), then BITS(8) would return the next byte in the stream. NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return if there is no input available. The decoding of variable length codes uses PULLBYTE() directly in order to pull just enough bytes to decode the next code, and no more. Some states loop until they get enough input, making sure that enough state information is maintained to continue the loop where it left off if NEEDBITS() returns in the loop. For example, want, need, and keep would all have to actually be part of the saved state in case NEEDBITS() returns: case STATEw: while (want < need) { NEEDBITS(n); keep[want++] = BITS(n); DROPBITS(n); } state = STATEx; case STATEx: As shown above, if the next state is also the next case, then the break is omitted. A state may also return if there is not enough output space available to complete that state. Those states are copying stored data, writing a literal byte, and copying a matching string. When returning, a "goto inf_leave" is used to update the total counters, update the check value, and determine whether any progress has been made during that inflate() call in order to return the proper return code. Progress is defined as a change in either strm->avail_in or strm->avail_out. When there is a window, goto inf_leave will update the window with the last output written. If a goto inf_leave occurs in the middle of decompression and there is no window currently, goto inf_leave will create one and copy output to the window for the next call of inflate(). In this implementation, the flush parameter of inflate() only affects the return code (per zlib.h). inflate() always writes as much as possible to strm->next_out, given the space available and the provided input--the effect documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers the allocation of and copying into a sliding window until necessary, which provides the effect documented in zlib.h for Z_FINISH when the entire input stream available. So the only thing the flush parameter actually does is: when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it will return Z_BUF_ERROR if it has not reached the end of the stream. */ int ZEXPORT inflate( z_streamp strm, int flush) { struct inflate_state FAR *state; z_const unsigned char FAR *next; /* next input */ unsigned char FAR *put; /* next output */ unsigned have, left; /* available input and output */ unsigned long hold; /* bit buffer */ unsigned bits; /* bits in bit buffer */ unsigned in, out; /* save starting available input and output */ unsigned copy; /* number of stored or match bytes to copy */ unsigned char FAR *from; /* where to copy match bytes from */ code here; /* current decoding table entry */ code last; /* parent table entry */ unsigned len; /* length to copy for repeats, bits to drop */ int ret; /* return code */ #ifdef GUNZIP unsigned char hbuf[4]; /* buffer for gzip header crc calculation */ #endif static const unsigned short order[19] = /* permutation of code lengths */ {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; if (inflateStateCheck(strm) || strm->next_out == Z_NULL || (strm->next_in == Z_NULL && strm->avail_in != 0)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; if (state->mode == TYPE) state->mode = TYPEDO; /* skip check */ LOAD(); in = have; out = left; ret = Z_OK; for (;;) switch (state->mode) { case HEAD: if (state->wrap == 0) { state->mode = TYPEDO; break; } NEEDBITS(16); #ifdef GUNZIP if ((state->wrap & 2) && hold == 0x8b1f) { /* gzip header */ if (state->wbits == 0) state->wbits = 15; state->check = crc32(0L, Z_NULL, 0); CRC2(state->check, hold); INITBITS(); state->mode = FLAGS; break; } state->flags = 0; /* expect zlib header */ if (state->head != Z_NULL) state->head->done = -1; if (!(state->wrap & 1) || /* check if zlib header allowed */ #else if ( #endif ((BITS(8) << 8) + (hold >> 8)) % 31) { strm->msg = (char *)"incorrect header check"; state->mode = BAD; break; } if (BITS(4) != Z_DEFLATED) { strm->msg = (char *)"unknown compression method"; state->mode = BAD; break; } DROPBITS(4); len = BITS(4) + 8; if (state->wbits == 0) state->wbits = len; if (len > 15 || len > state->wbits) { strm->msg = (char *)"invalid window size"; state->mode = BAD; break; } state->dmax = 1U << len; Tracev((stderr, "inflate: zlib header ok\n")); strm->adler = state->check = adler32(0L, Z_NULL, 0); state->mode = hold & 0x200 ? DICTID : TYPE; INITBITS(); break; #ifdef GUNZIP case FLAGS: NEEDBITS(16); state->flags = (int)(hold); if ((state->flags & 0xff) != Z_DEFLATED) { strm->msg = (char *)"unknown compression method"; state->mode = BAD; break; } if (state->flags & 0xe000) { strm->msg = (char *)"unknown header flags set"; state->mode = BAD; break; } if (state->head != Z_NULL) state->head->text = (int)((hold >> 8) & 1); if ((state->flags & 0x0200) && (state->wrap & 4)) CRC2(state->check, hold); INITBITS(); state->mode = TIME; case TIME: NEEDBITS(32); if (state->head != Z_NULL) state->head->time = hold; if ((state->flags & 0x0200) && (state->wrap & 4)) CRC4(state->check, hold); INITBITS(); state->mode = OS; case OS: NEEDBITS(16); if (state->head != Z_NULL) { state->head->xflags = (int)(hold & 0xff); state->head->os = (int)(hold >> 8); } if ((state->flags & 0x0200) && (state->wrap & 4)) CRC2(state->check, hold); INITBITS(); state->mode = EXLEN; case EXLEN: if (state->flags & 0x0400) { NEEDBITS(16); state->length = (unsigned)(hold); if (state->head != Z_NULL) state->head->extra_len = (unsigned)hold; if ((state->flags & 0x0200) && (state->wrap & 4)) CRC2(state->check, hold); INITBITS(); } else if (state->head != Z_NULL) state->head->extra = Z_NULL; state->mode = EXTRA; case EXTRA: if (state->flags & 0x0400) { copy = state->length; if (copy > have) copy = have; if (copy) { if (state->head != Z_NULL && state->head->extra != Z_NULL) { len = state->head->extra_len - state->length; zmemcpy(state->head->extra + len, next, len + copy > state->head->extra_max ? state->head->extra_max - len : copy); } if ((state->flags & 0x0200) && (state->wrap & 4)) state->check = crc32(state->check, next, copy); have -= copy; next += copy; state->length -= copy; } if (state->length) goto inf_leave; } state->length = 0; state->mode = NAME; case NAME: if (state->flags & 0x0800) { if (have == 0) goto inf_leave; copy = 0; do { len = (unsigned)(next[copy++]); if (state->head != Z_NULL && state->head->name != Z_NULL && state->length < state->head->name_max) state->head->name[state->length++] = (Bytef)len; } while (len && copy < have); if ((state->flags & 0x0200) && (state->wrap & 4)) state->check = crc32(state->check, next, copy); have -= copy; next += copy; if (len) goto inf_leave; } else if (state->head != Z_NULL) state->head->name = Z_NULL; state->length = 0; state->mode = COMMENT; case COMMENT: if (state->flags & 0x1000) { if (have == 0) goto inf_leave; copy = 0; do { len = (unsigned)(next[copy++]); if (state->head != Z_NULL && state->head->comment != Z_NULL && state->length < state->head->comm_max) state->head->comment[state->length++] = (Bytef)len; } while (len && copy < have); if ((state->flags & 0x0200) && (state->wrap & 4)) state->check = crc32(state->check, next, copy); have -= copy; next += copy; if (len) goto inf_leave; } else if (state->head != Z_NULL) state->head->comment = Z_NULL; state->mode = HCRC; case HCRC: if (state->flags & 0x0200) { NEEDBITS(16); if ((state->wrap & 4) && hold != (state->check & 0xffff)) { strm->msg = (char *)"header crc mismatch"; state->mode = BAD; break; } INITBITS(); } if (state->head != Z_NULL) { state->head->hcrc = (int)((state->flags >> 9) & 1); state->head->done = 1; } strm->adler = state->check = crc32(0L, Z_NULL, 0); state->mode = TYPE; break; #endif case DICTID: NEEDBITS(32); strm->adler = state->check = ZSWAP32(hold); INITBITS(); state->mode = DICT; case DICT: if (state->havedict == 0) { RESTORE(); return Z_NEED_DICT; } strm->adler = state->check = adler32(0L, Z_NULL, 0); state->mode = TYPE; case TYPE: if (flush == Z_BLOCK || flush == Z_TREES) goto inf_leave; case TYPEDO: if (state->last) { BYTEBITS(); state->mode = CHECK; break; } NEEDBITS(3); state->last = BITS(1); DROPBITS(1); switch (BITS(2)) { case 0: /* stored block */ Tracev((stderr, "inflate: stored block%s\n", state->last ? " (last)" : "")); state->mode = STORED; break; case 1: /* fixed block */ fixedtables(state); Tracev((stderr, "inflate: fixed codes block%s\n", state->last ? " (last)" : "")); state->mode = LEN_; /* decode codes */ if (flush == Z_TREES) { DROPBITS(2); goto inf_leave; } break; case 2: /* dynamic block */ Tracev((stderr, "inflate: dynamic codes block%s\n", state->last ? " (last)" : "")); state->mode = TABLE; break; case 3: strm->msg = (char *)"invalid block type"; state->mode = BAD; } DROPBITS(2); break; case STORED: BYTEBITS(); /* go to byte boundary */ NEEDBITS(32); if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) { strm->msg = (char *)"invalid stored block lengths"; state->mode = BAD; break; } state->length = (unsigned)hold & 0xffff; Tracev((stderr, "inflate: stored length %u\n", state->length)); INITBITS(); state->mode = COPY_; if (flush == Z_TREES) goto inf_leave; case COPY_: state->mode = COPY; case COPY: copy = state->length; if (copy) { if (copy > have) copy = have; if (copy > left) copy = left; if (copy == 0) goto inf_leave; zmemcpy(put, next, copy); have -= copy; next += copy; left -= copy; put += copy; state->length -= copy; break; } Tracev((stderr, "inflate: stored end\n")); state->mode = TYPE; break; case TABLE: NEEDBITS(14); state->nlen = BITS(5) + 257; DROPBITS(5); state->ndist = BITS(5) + 1; DROPBITS(5); state->ncode = BITS(4) + 4; DROPBITS(4); #ifndef PKZIP_BUG_WORKAROUND if (state->nlen > 286 || state->ndist > 30) { strm->msg = (char *)"too many length or distance symbols"; state->mode = BAD; break; } #endif Tracev((stderr, "inflate: table sizes ok\n")); state->have = 0; state->mode = LENLENS; case LENLENS: while (state->have < state->ncode) { NEEDBITS(3); state->lens[order[state->have++]] = (unsigned short)BITS(3); DROPBITS(3); } while (state->have < 19) state->lens[order[state->have++]] = 0; state->next = state->codes; state->lencode = (const code FAR *)(state->next); state->lenbits = 7; ret = inflate_table(CODES, state->lens, 19, &(state->next), &(state->lenbits), state->work); if (ret) { strm->msg = (char *)"invalid code lengths set"; state->mode = BAD; break; } Tracev((stderr, "inflate: code lengths ok\n")); state->have = 0; state->mode = CODELENS; case CODELENS: while (state->have < state->nlen + state->ndist) { for (;;) { here = state->lencode[BITS(state->lenbits)]; if ((unsigned)(here.bits) <= bits) break; PULLBYTE(); } if (here.val < 16) { DROPBITS(here.bits); state->lens[state->have++] = here.val; } else { if (here.val == 16) { NEEDBITS(here.bits + 2); DROPBITS(here.bits); if (state->have == 0) { strm->msg = (char *)"invalid bit length repeat"; state->mode = BAD; break; } len = state->lens[state->have - 1]; copy = 3 + BITS(2); DROPBITS(2); } else if (here.val == 17) { NEEDBITS(here.bits + 3); DROPBITS(here.bits); len = 0; copy = 3 + BITS(3); DROPBITS(3); } else { NEEDBITS(here.bits + 7); DROPBITS(here.bits); len = 0; copy = 11 + BITS(7); DROPBITS(7); } if (state->have + copy > state->nlen + state->ndist) { strm->msg = (char *)"invalid bit length repeat"; state->mode = BAD; break; } while (copy--) state->lens[state->have++] = (unsigned short)len; } } /* handle error breaks in while */ if (state->mode == BAD) break; /* check for end-of-block code (better have one) */ if (state->lens[256] == 0) { strm->msg = (char *)"invalid code -- missing end-of-block"; state->mode = BAD; break; } /* build code tables -- note: do not change the lenbits or distbits values here (9 and 6) without reading the comments in inftrees.h concerning the ENOUGH constants, which depend on those values */ state->next = state->codes; state->lencode = (const code FAR *)(state->next); state->lenbits = 9; ret = inflate_table(LENS, state->lens, state->nlen, &(state->next), &(state->lenbits), state->work); if (ret) { strm->msg = (char *)"invalid literal/lengths set"; state->mode = BAD; break; } state->distcode = (const code FAR *)(state->next); state->distbits = 6; ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist, &(state->next), &(state->distbits), state->work); if (ret) { strm->msg = (char *)"invalid distances set"; state->mode = BAD; break; } Tracev((stderr, "inflate: codes ok\n")); state->mode = LEN_; if (flush == Z_TREES) goto inf_leave; case LEN_: state->mode = LEN; case LEN: if (have >= 6 && left >= 258) { RESTORE(); inflate_fast(strm, out); LOAD(); if (state->mode == TYPE) state->back = -1; break; } state->back = 0; for (;;) { here = state->lencode[BITS(state->lenbits)]; if ((unsigned)(here.bits) <= bits) break; PULLBYTE(); } if (here.op && (here.op & 0xf0) == 0) { last = here; for (;;) { here = state->lencode[last.val + (BITS(last.bits + last.op) >> last.bits)]; if ((unsigned)(last.bits + here.bits) <= bits) break; PULLBYTE(); } DROPBITS(last.bits); state->back += last.bits; } DROPBITS(here.bits); state->back += here.bits; state->length = (unsigned)here.val; if ((int)(here.op) == 0) { Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? "inflate: literal '%c'\n" : "inflate: literal 0x%02x\n", here.val)); state->mode = LIT; break; } if (here.op & 32) { Tracevv((stderr, "inflate: end of block\n")); state->back = -1; state->mode = TYPE; break; } if (here.op & 64) { strm->msg = (char *)"invalid literal/length code"; state->mode = BAD; break; } state->extra = (unsigned)(here.op) & 15; state->mode = LENEXT; case LENEXT: if (state->extra) { NEEDBITS(state->extra); state->length += BITS(state->extra); DROPBITS(state->extra); state->back += state->extra; } Tracevv((stderr, "inflate: length %u\n", state->length)); state->was = state->length; state->mode = DIST; case DIST: for (;;) { here = state->distcode[BITS(state->distbits)]; if ((unsigned)(here.bits) <= bits) break; PULLBYTE(); } if ((here.op & 0xf0) == 0) { last = here; for (;;) { here = state->distcode[last.val + (BITS(last.bits + last.op) >> last.bits)]; if ((unsigned)(last.bits + here.bits) <= bits) break; PULLBYTE(); } DROPBITS(last.bits); state->back += last.bits; } DROPBITS(here.bits); state->back += here.bits; if (here.op & 64) { strm->msg = (char *)"invalid distance code"; state->mode = BAD; break; } state->offset = (unsigned)here.val; state->extra = (unsigned)(here.op) & 15; state->mode = DISTEXT; case DISTEXT: if (state->extra) { NEEDBITS(state->extra); state->offset += BITS(state->extra); DROPBITS(state->extra); state->back += state->extra; } #ifdef INFLATE_STRICT if (state->offset > state->dmax) { strm->msg = (char *)"invalid distance too far back"; state->mode = BAD; break; } #endif Tracevv((stderr, "inflate: distance %u\n", state->offset)); state->mode = MATCH; case MATCH: if (left == 0) goto inf_leave; copy = out - left; if (state->offset > copy) { /* copy from window */ copy = state->offset - copy; if (copy > state->whave) { if (state->sane) { strm->msg = (char *)"invalid distance too far back"; state->mode = BAD; break; } #ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR Trace((stderr, "inflate.c too far\n")); copy -= state->whave; if (copy > state->length) copy = state->length; if (copy > left) copy = left; left -= copy; state->length -= copy; do { *put++ = 0; } while (--copy); if (state->length == 0) state->mode = LEN; break; #endif } if (copy > state->wnext) { copy -= state->wnext; from = state->window + (state->wsize - copy); } else from = state->window + (state->wnext - copy); if (copy > state->length) copy = state->length; } else { /* copy from output */ from = put - state->offset; copy = state->length; } if (copy > left) copy = left; left -= copy; state->length -= copy; do { *put++ = *from++; } while (--copy); if (state->length == 0) state->mode = LEN; break; case LIT: if (left == 0) goto inf_leave; *put++ = (unsigned char)(state->length); left--; state->mode = LEN; break; case CHECK: if (state->wrap) { NEEDBITS(32); out -= left; strm->total_out += out; state->total += out; if ((state->wrap & 4) && out) strm->adler = state->check = UPDATE(state->check, put - out, out); out = left; if ((state->wrap & 4) && ( #ifdef GUNZIP state->flags ? hold : #endif ZSWAP32(hold)) != state->check) { strm->msg = (char *)"incorrect data check"; state->mode = BAD; break; } INITBITS(); Tracev((stderr, "inflate: check matches trailer\n")); } #ifdef GUNZIP state->mode = LENGTH; case LENGTH: if (state->wrap && state->flags) { NEEDBITS(32); if (hold != (state->total & 0xffffffffUL)) { strm->msg = (char *)"incorrect length check"; state->mode = BAD; break; } INITBITS(); Tracev((stderr, "inflate: length matches trailer\n")); } #endif state->mode = DONE; case DONE: ret = Z_STREAM_END; goto inf_leave; case BAD: ret = Z_DATA_ERROR; goto inf_leave; case MEM: return Z_MEM_ERROR; case SYNC: default: return Z_STREAM_ERROR; } /* Return from inflate(), updating the total counts and the check value. If there was no progress during the inflate() call, return a buffer error. Call updatewindow() to create and/or update the window state. Note: a memory error from inflate() is non-recoverable. */ inf_leave: RESTORE(); if (state->wsize || (out != strm->avail_out && state->mode < BAD && (state->mode < CHECK || flush != Z_FINISH))) if (updatewindow(strm, strm->next_out, out - strm->avail_out)) { state->mode = MEM; return Z_MEM_ERROR; } in -= strm->avail_in; out -= strm->avail_out; strm->total_in += in; strm->total_out += out; state->total += out; if ((state->wrap & 4) && out) strm->adler = state->check = UPDATE(state->check, strm->next_out - out, out); strm->data_type = (int)state->bits + (state->last ? 64 : 0) + (state->mode == TYPE ? 128 : 0) + (state->mode == LEN_ || state->mode == COPY_ ? 256 : 0); if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK) ret = Z_BUF_ERROR; return ret; } int ZEXPORT inflateEnd( z_streamp strm) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; if (state->window != Z_NULL) ZFREE(strm, state->window); ZFREE(strm, strm->state); strm->state = Z_NULL; Tracev((stderr, "inflate: end\n")); return Z_OK; } #ifndef Z_FREETYPE int ZEXPORT inflateGetDictionary( z_streamp strm, Bytef *dictionary, uInt *dictLength) { struct inflate_state FAR *state; /* check state */ if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; /* copy dictionary */ if (state->whave && dictionary != Z_NULL) { zmemcpy(dictionary, state->window + state->wnext, state->whave - state->wnext); zmemcpy(dictionary + state->whave - state->wnext, state->window, state->wnext); } if (dictLength != Z_NULL) *dictLength = state->whave; return Z_OK; } int ZEXPORT inflateSetDictionary( z_streamp strm, const Bytef *dictionary, uInt dictLength) { struct inflate_state FAR *state; unsigned long dictid; int ret; /* check state */ if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; if (state->wrap != 0 && state->mode != DICT) return Z_STREAM_ERROR; /* check for correct dictionary identifier */ if (state->mode == DICT) { dictid = adler32(0L, Z_NULL, 0); dictid = adler32(dictid, dictionary, dictLength); if (dictid != state->check) return Z_DATA_ERROR; } /* copy dictionary to window using updatewindow(), which will amend the existing dictionary if appropriate */ ret = updatewindow(strm, dictionary + dictLength, dictLength); if (ret) { state->mode = MEM; return Z_MEM_ERROR; } state->havedict = 1; Tracev((stderr, "inflate: dictionary set\n")); return Z_OK; } int ZEXPORT inflateGetHeader( z_streamp strm, gz_headerp head) { struct inflate_state FAR *state; /* check state */ if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; if ((state->wrap & 2) == 0) return Z_STREAM_ERROR; /* save header structure */ state->head = head; head->done = 0; return Z_OK; } /* Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found or when out of input. When called, *have is the number of pattern bytes found in order so far, in 0..3. On return *have is updated to the new state. If on return *have equals four, then the pattern was found and the return value is how many bytes were read including the last byte of the pattern. If *have is less than four, then the pattern has not been found yet and the return value is len. In the latter case, syncsearch() can be called again with more data and the *have state. *have is initialized to zero for the first call. */ local unsigned syncsearch( unsigned FAR *have, const unsigned char FAR *buf, unsigned len) { unsigned got; unsigned next; got = *have; next = 0; while (next < len && got < 4) { if ((int)(buf[next]) == (got < 2 ? 0 : 0xff)) got++; else if (buf[next]) got = 0; else got = 4 - got; next++; } *have = got; return next; } int ZEXPORT inflateSync( z_streamp strm) { unsigned len; /* number of bytes to look at or looked at */ unsigned long in, out; /* temporary to save total_in and total_out */ unsigned char buf[4]; /* to restore bit buffer to byte string */ struct inflate_state FAR *state; /* check parameters */ if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR; /* if first time, start search in bit buffer */ if (state->mode != SYNC) { state->mode = SYNC; state->hold <<= state->bits & 7; state->bits -= state->bits & 7; len = 0; while (state->bits >= 8) { buf[len++] = (unsigned char)(state->hold); state->hold >>= 8; state->bits -= 8; } state->have = 0; syncsearch(&(state->have), buf, len); } /* search available input */ len = syncsearch(&(state->have), strm->next_in, strm->avail_in); strm->avail_in -= len; strm->next_in += len; strm->total_in += len; /* return no joy or set up to restart inflate() on a new block */ if (state->have != 4) return Z_DATA_ERROR; in = strm->total_in; out = strm->total_out; inflateReset(strm); strm->total_in = in; strm->total_out = out; state->mode = TYPE; return Z_OK; } #endif /* !Z_FREETYPE */ /* Returns true if inflate is currently at the end of a block generated by Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP implementation to provide an additional safety check. PPP uses Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored block. When decompressing, PPP checks that at the end of input packet, inflate is waiting for these length bytes. */ int ZEXPORT inflateSyncPoint( z_streamp strm) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; return state->mode == STORED && state->bits == 0; } #if !Z_FREETYPE int ZEXPORT inflateCopy( z_streamp dest, z_streamp source) { struct inflate_state FAR *state; struct inflate_state FAR *copy; unsigned char FAR *window; unsigned wsize; /* check input */ if (inflateStateCheck(source) || dest == Z_NULL) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)source->state; /* allocate space */ copy = (struct inflate_state FAR *) ZALLOC(source, 1, sizeof(struct inflate_state)); if (copy == Z_NULL) return Z_MEM_ERROR; window = Z_NULL; if (state->window != Z_NULL) { window = (unsigned char FAR *) ZALLOC(source, 1U << state->wbits, sizeof(unsigned char)); if (window == Z_NULL) { ZFREE(source, copy); return Z_MEM_ERROR; } } /* copy state */ zmemcpy((voidpf)dest, (voidpf)source, sizeof(z_stream)); zmemcpy((voidpf)copy, (voidpf)state, sizeof(struct inflate_state)); copy->strm = dest; if (state->lencode >= state->codes && state->lencode <= state->codes + ENOUGH - 1) { copy->lencode = copy->codes + (state->lencode - state->codes); copy->distcode = copy->codes + (state->distcode - state->codes); } copy->next = copy->codes + (state->next - state->codes); if (window != Z_NULL) { wsize = 1U << state->wbits; zmemcpy(window, state->window, wsize); } copy->window = window; dest->state = (struct internal_state FAR *)copy; return Z_OK; } #endif /* !Z_FREETYPE */ int ZEXPORT inflateUndermine( z_streamp strm, int subvert) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; #ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR state->sane = !subvert; return Z_OK; #else (void)subvert; state->sane = 1; return Z_DATA_ERROR; #endif } int ZEXPORT inflateValidate( z_streamp strm, int check) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; if (check) state->wrap |= 4; else state->wrap &= ~4; return Z_OK; } #ifndef Z_FREETYPE long ZEXPORT inflateMark( z_streamp strm) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return -(1L << 16); state = (struct inflate_state FAR *)strm->state; return (long)(((unsigned long)((long)state->back)) << 16) + (state->mode == COPY ? state->length : (state->mode == MATCH ? state->was - state->length : 0)); } unsigned long ZEXPORT inflateCodesUsed( z_streamp strm) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return (unsigned long)-1; state = (struct inflate_state FAR *)strm->state; return (unsigned long)(state->next - state->codes); } #endif /* !Z_FREETYPE */ |
Added jni/freetype/src/gzip/inflate.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /* inflate.h -- internal inflate state definition * Copyright (C) 1995-2016 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #ifndef INFLATE_H #define INFLATE_H /* WARNING: this file should *not* be used by applications. It is part of the implementation of the compression library and is subject to change. Applications should only use zlib.h. */ /* define NO_GZIP when compiling if you want to disable gzip header and trailer decoding by inflate(). NO_GZIP would be used to avoid linking in the crc code when it is not needed. For shared libraries, gzip decoding should be left enabled. */ #ifndef NO_GZIP # define GUNZIP #endif /* Possible inflate modes between inflate() calls */ typedef enum { HEAD = 16180, /* i: waiting for magic header */ FLAGS, /* i: waiting for method and flags (gzip) */ TIME, /* i: waiting for modification time (gzip) */ OS, /* i: waiting for extra flags and operating system (gzip) */ EXLEN, /* i: waiting for extra length (gzip) */ EXTRA, /* i: waiting for extra bytes (gzip) */ NAME, /* i: waiting for end of file name (gzip) */ COMMENT, /* i: waiting for end of comment (gzip) */ HCRC, /* i: waiting for header crc (gzip) */ DICTID, /* i: waiting for dictionary check value */ DICT, /* waiting for inflateSetDictionary() call */ TYPE, /* i: waiting for type bits, including last-flag bit */ TYPEDO, /* i: same, but skip check to exit inflate on new block */ STORED, /* i: waiting for stored size (length and complement) */ COPY_, /* i/o: same as COPY below, but only first time in */ COPY, /* i/o: waiting for input or output to copy stored block */ TABLE, /* i: waiting for dynamic block table lengths */ LENLENS, /* i: waiting for code length code lengths */ CODELENS, /* i: waiting for length/lit and distance code lengths */ LEN_, /* i: same as LEN below, but only first time in */ LEN, /* i: waiting for length/lit/eob code */ LENEXT, /* i: waiting for length extra bits */ DIST, /* i: waiting for distance code */ DISTEXT, /* i: waiting for distance extra bits */ MATCH, /* o: waiting for output space to copy string */ LIT, /* o: waiting for output space to write literal */ CHECK, /* i: waiting for 32-bit check value */ LENGTH, /* i: waiting for 32-bit length (gzip) */ DONE, /* finished check, done -- remain here until reset */ BAD, /* got a data error -- remain here until reset */ MEM, /* got an inflate() memory error -- remain here until reset */ SYNC /* looking for synchronization bytes to restart inflate() */ } inflate_mode; /* State transitions between above modes - (most modes can go to BAD or MEM on error -- not shown for clarity) Process header: HEAD -> (gzip) or (zlib) or (raw) (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME -> COMMENT -> HCRC -> TYPE (zlib) -> DICTID or TYPE DICTID -> DICT -> TYPE (raw) -> TYPEDO Read deflate blocks: TYPE -> TYPEDO -> STORED or TABLE or LEN_ or CHECK STORED -> COPY_ -> COPY -> TYPE TABLE -> LENLENS -> CODELENS -> LEN_ LEN_ -> LEN Read deflate codes in fixed or dynamic block: LEN -> LENEXT or LIT or TYPE LENEXT -> DIST -> DISTEXT -> MATCH -> LEN LIT -> LEN Process trailer: CHECK -> LENGTH -> DONE */ /* State maintained between inflate() calls -- approximately 7K bytes, not including the allocated sliding window, which is up to 32K bytes. */ struct inflate_state { z_streamp strm; /* pointer back to this zlib stream */ inflate_mode mode; /* current inflate mode */ int last; /* true if processing last block */ int wrap; /* bit 0 true for zlib, bit 1 true for gzip, bit 2 true to validate check value */ int havedict; /* true if dictionary provided */ int flags; /* gzip header method and flags (0 if zlib) */ unsigned dmax; /* zlib header max distance (INFLATE_STRICT) */ unsigned long check; /* protected copy of check value */ unsigned long total; /* protected copy of output count */ gz_headerp head; /* where to save gzip header information */ /* sliding window */ unsigned wbits; /* log base 2 of requested window size */ unsigned wsize; /* window size or zero if not using window */ unsigned whave; /* valid bytes in the window */ unsigned wnext; /* window write index */ unsigned char FAR *window; /* allocated sliding window, if needed */ /* bit accumulator */ unsigned long hold; /* input bit accumulator */ unsigned bits; /* number of bits in "in" */ /* for string and stored block copying */ unsigned length; /* literal or length of data to copy */ unsigned offset; /* distance back to copy string from */ /* for table and code decoding */ unsigned extra; /* extra bits needed */ /* fixed and dynamic code tables */ code const FAR *lencode; /* starting table for length/literal codes */ code const FAR *distcode; /* starting table for distance codes */ unsigned lenbits; /* index bits for lencode */ unsigned distbits; /* index bits for distcode */ /* dynamic table building */ unsigned ncode; /* number of code length code lengths */ unsigned nlen; /* number of length code lengths */ unsigned ndist; /* number of distance code lengths */ unsigned have; /* number of code lengths in lens[] */ code FAR *next; /* next available space in codes[] */ unsigned short lens[320]; /* temporary storage for code lengths */ unsigned short work[288]; /* work area for code table building */ code codes[ENOUGH]; /* space for code tables */ int sane; /* if false, allow invalid distance too far */ int back; /* bits back of last unprocessed length/lit */ unsigned was; /* initial length of match */ }; #endif /* INFLATE_H */ |
Changes to jni/freetype/src/gzip/inftrees.c.
1 | /* inftrees.c -- generate Huffman trees for efficient decoding | | < < < | < | | < < < < | | < | > | > > > | < < < < < < < | < < < < < < < < < < < < < < < < | | < < < | | < | | < | | < < < < < | < < < | | | | | | | | | | | | | | | | | > | | < | | | | | | | > > > > > > > > < < < | < | > > > > | | < | > | | | < < < < < < < < < < < < | > > | < > | > > | < < < < < < < < < | < > > > > > | < | | | < | | < < < | < < < < < < < < | < > | | < | < < | | < | | < > | > > | | | < > | > | | | | | | | < < < < < < < | < < < > | < < < < > | < < < < > | < < < < < | < | < > > > > | < > > | < < | > > | < < < < | < < < < < < < < < | < | < | > | < < < < | < < < < < < > > > > | | | | > > > < < < | < > | > | | < < | < < | | < < < | | < < < | > > > | < < < < < < | < | | | | < < < < < < < < < > | > > > > | < > > > | < < < < < < < < < < < < < | < > > | < > > > | | | < < > > | < < < < < < | < < > | > | | > | < | | | > | | > | < > | | < < | | | | < | < < < < < < < < < | | < < > > | > | | < < < > | < < < < < < < | | < < < > > < < < | < < < < < | < | < | < > > | | < < < < > | < | | < > > | | > | < | | | < | > | > > > | > > | | < < | < < < < | | < < | | < < | | 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 | /* inftrees.c -- generate Huffman trees for efficient decoding * Copyright (C) 1995-2017 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #include "zutil.h" #include "inftrees.h" #define MAXBITS 15 ZEXTERN const char inflate_copyright[] = " inflate 1.2.11 Copyright 1995-2017 Mark Adler "; /* If you use the zlib library in a product, an acknowledgment is welcome in the documentation of your product. If for some reason you cannot include such an acknowledgment, I would appreciate that you keep this copyright string in the executable of your product. */ /* Build a set of tables to decode the provided canonical Huffman code. The code lengths are lens[0..codes-1]. The result starts at *table, whose indices are 0..2^bits-1. work is a writable array of at least lens shorts, which is used as a work area. type is the type of code to be generated, CODES, LENS, or DISTS. On return, zero is success, -1 is an invalid code, and +1 means that ENOUGH isn't enough. table on return points to the next available entry's address. bits is the requested root table index bits, and on return it is the actual root table index bits. It will differ if the request is greater than the longest code or if it is less than the shortest code. */ int ZLIB_INTERNAL inflate_table( codetype type, unsigned short FAR *lens, unsigned codes, code FAR * FAR *table, unsigned FAR *bits, unsigned short FAR *work) { unsigned len; /* a code's length in bits */ unsigned sym; /* index of code symbols */ unsigned min, max; /* minimum and maximum code lengths */ unsigned root; /* number of index bits for root table */ unsigned curr; /* number of index bits for current table */ unsigned drop; /* code bits to drop for sub-table */ int left; /* number of prefix codes available */ unsigned used; /* code entries in table used */ unsigned huff; /* Huffman code */ unsigned incr; /* for incrementing code, index */ unsigned fill; /* index for replicating entries */ unsigned low; /* low bits for current root entry */ unsigned mask; /* mask for low root bits */ code here; /* table entry for duplication */ code FAR *next; /* next available space in table */ const unsigned short FAR *base; /* base value table to use */ const unsigned short FAR *extra; /* extra bits table to use */ unsigned match; /* use base and extra for symbol >= match */ unsigned short count[MAXBITS+1]; /* number of codes of each length */ unsigned short offs[MAXBITS+1]; /* offsets in table for each length */ static const unsigned short lbase[31] = { /* Length codes 257..285 base */ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; static const unsigned short lext[31] = { /* Length codes 257..285 extra */ 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 77, 202}; static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0}; static const unsigned short dext[32] = { /* Distance codes 0..29 extra */ 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64}; /* Process a set of code lengths to create a canonical Huffman code. The code lengths are lens[0..codes-1]. Each length corresponds to the symbols 0..codes-1. The Huffman code is generated by first sorting the symbols by length from short to long, and retaining the symbol order for codes with equal lengths. Then the code starts with all zero bits for the first code of the shortest length, and the codes are integer increments for the same length, and zeros are appended as the length increases. For the deflate format, these bits are stored backwards from their more natural integer increment ordering, and so when the decoding tables are built in the large loop below, the integer codes are incremented backwards. This routine assumes, but does not check, that all of the entries in lens[] are in the range 0..MAXBITS. The caller must assure this. 1..MAXBITS is interpreted as that code length. zero means that that symbol does not occur in this code. The codes are sorted by computing a count of codes for each length, creating from that a table of starting indices for each length in the sorted table, and then entering the symbols in order in the sorted table. The sorted table is work[], with that space being provided by the caller. The length counts are used for other purposes as well, i.e. finding the minimum and maximum length codes, determining if there are any codes at all, checking for a valid set of lengths, and looking ahead at length counts to determine sub-table sizes when building the decoding tables. */ /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ for (len = 0; len <= MAXBITS; len++) count[len] = 0; for (sym = 0; sym < codes; sym++) count[lens[sym]]++; /* bound code lengths, force root to be within code lengths */ root = *bits; for (max = MAXBITS; max >= 1; max--) if (count[max] != 0) break; if (root > max) root = max; if (max == 0) { /* no symbols to code at all */ here.op = (unsigned char)64; /* invalid code marker */ here.bits = (unsigned char)1; here.val = (unsigned short)0; *(*table)++ = here; /* make a table to force an error */ *(*table)++ = here; *bits = 1; return 0; /* no symbols, but wait for decoding to report error */ } for (min = 1; min < max; min++) if (count[min] != 0) break; if (root < min) root = min; /* check for an over-subscribed or incomplete set of lengths */ left = 1; for (len = 1; len <= MAXBITS; len++) { left <<= 1; left -= count[len]; if (left < 0) return -1; /* over-subscribed */ } if (left > 0 && (type == CODES || max != 1)) return -1; /* incomplete set */ /* generate offsets into symbol table for each length for sorting */ offs[1] = 0; for (len = 1; len < MAXBITS; len++) offs[len + 1] = offs[len] + count[len]; /* sort symbols by length, by symbol order within each length */ for (sym = 0; sym < codes; sym++) if (lens[sym] != 0) work[offs[lens[sym]]++] = (unsigned short)sym; /* Create and fill in decoding tables. In this loop, the table being filled is at next and has curr index bits. The code being used is huff with length len. That code is converted to an index by dropping drop bits off of the bottom. For codes where len is less than drop + curr, those top drop + curr - len bits are incremented through all values to fill the table with replicated entries. root is the number of index bits for the root table. When len exceeds root, sub-tables are created pointed to by the root entry with an index of the low root bits of huff. This is saved in low to check for when a new sub-table should be started. drop is zero when the root table is being filled, and drop is root when sub-tables are being filled. When a new sub-table is needed, it is necessary to look ahead in the code lengths to determine what size sub-table is needed. The length counts are used for this, and so count[] is decremented as codes are entered in the tables. used keeps track of how many table entries have been allocated from the provided *table space. It is checked for LENS and DIST tables against the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in the initial root table size constants. See the comments in inftrees.h for more information. sym increments through all symbols, and the loop terminates when all codes of length max, i.e. all codes, have been processed. This routine permits incomplete codes, so another loop after this one fills in the rest of the decoding tables with invalid code markers. */ /* set up for code type */ switch (type) { case CODES: base = extra = work; /* dummy value--not used */ match = 20; break; case LENS: base = lbase; extra = lext; match = 257; break; default: /* DISTS */ base = dbase; extra = dext; match = 0; } /* initialize state for loop */ huff = 0; /* starting code */ sym = 0; /* starting code symbol */ len = min; /* starting code length */ next = *table; /* current table to fill in */ curr = root; /* current table index bits */ drop = 0; /* current bits to drop from code for index */ low = (unsigned)(-1); /* trigger new sub-table when len > root */ used = 1U << root; /* use root table entries */ mask = used - 1; /* mask for comparing low */ /* check available table space */ if ((type == LENS && used > ENOUGH_LENS) || (type == DISTS && used > ENOUGH_DISTS)) return 1; /* process all codes and make table entries */ for (;;) { /* create table entry */ here.bits = (unsigned char)(len - drop); if (work[sym] + 1U < match) { here.op = (unsigned char)0; here.val = work[sym]; } else if (work[sym] >= match) { here.op = (unsigned char)(extra[work[sym] - match]); here.val = base[work[sym] - match]; } else { here.op = (unsigned char)(32 + 64); /* end of block */ here.val = 0; } /* replicate for those indices with low len bits equal to huff */ incr = 1U << (len - drop); fill = 1U << curr; min = fill; /* save offset to next table */ do { fill -= incr; next[(huff >> drop) + fill] = here; } while (fill != 0); /* backwards increment the len-bit code huff */ incr = 1U << (len - 1); while (huff & incr) incr >>= 1; if (incr != 0) { huff &= incr - 1; huff += incr; } else huff = 0; /* go to next symbol, update count, len */ sym++; if (--(count[len]) == 0) { if (len == max) break; len = lens[work[sym]]; } /* create new sub-table if needed */ if (len > root && (huff & mask) != low) { /* if first time, transition to sub-tables */ if (drop == 0) drop = root; /* increment past last table */ next += min; /* here min is 1 << curr */ /* determine length of next table */ curr = len - drop; left = (int)(1 << curr); while (curr + drop < max) { left -= count[curr + drop]; if (left <= 0) break; curr++; left <<= 1; } /* check for enough space */ used += 1U << curr; if ((type == LENS && used > ENOUGH_LENS) || (type == DISTS && used > ENOUGH_DISTS)) return 1; /* point entry in root table to sub-table */ low = huff & mask; (*table)[low].op = (unsigned char)curr; (*table)[low].bits = (unsigned char)root; (*table)[low].val = (unsigned short)(next - *table); } } /* fill in remaining table entry if code is incomplete (guaranteed to have at most one remaining entry, since if the code is incomplete, the maximum code length that was allowed to get this far is one bit) */ if (huff != 0) { here.op = (unsigned char)64; /* invalid code marker */ here.bits = (unsigned char)(len - drop); here.val = (unsigned short)0; next[huff] = here; } /* set return parameters */ *table += used; *bits = root; return 0; } |
Changes to jni/freetype/src/gzip/inftrees.h.
1 | /* inftrees.h -- header to use inftrees.c | | > > > > > | > | | < < | < | < < < | | < > > > | | | | | < > | > | | > | | | | | | | > > > | > | > > > | < > > > > | < < < < < < < | < < | | < | | 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 | /* inftrees.h -- header to use inftrees.c * Copyright (C) 1995-2005, 2010 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #ifndef INFTREES_H #define INFTREES_H /* WARNING: this file should *not* be used by applications. It is part of the implementation of the compression library and is subject to change. Applications should only use zlib.h. */ /* Structure for decoding tables. Each entry provides either the information needed to do the operation requested by the code that indexed that table entry, or it provides a pointer to another table that indexes more bits of the code. op indicates whether the entry is a pointer to another table, a literal, a length or distance, an end-of-block, or an invalid code. For a table pointer, the low four bits of op is the number of index bits of that table. For a length or distance, the low four bits of op is the number of extra bits to get after the code. bits is the number of bits in this code or part of the code to drop off of the bit buffer. val is the actual byte to output in the case of a literal, the base length or distance, or the offset from the current table to the next table. Each entry is four bytes. */ typedef struct { unsigned char op; /* operation, extra bits, table bits */ unsigned char bits; /* bits in this part of the code */ unsigned short val; /* offset in table or code value */ } code; /* op values as set by inflate_table(): 00000000 - literal 0000tttt - table link, tttt != 0 is the number of table index bits 0001eeee - length or distance, eeee is the number of extra bits 01100000 - end of block 01000000 - invalid code */ /* Maximum size of the dynamic table. The maximum number of code structures is 1444, which is the sum of 852 for literal/length codes and 592 for distance codes. These values were found by exhaustive searches using the program examples/enough.c found in the zlib distribtution. The arguments to that program are the number of symbols, the initial root table size, and the maximum bit length of a code. "enough 286 9 15" for literal/length codes returns returns 852, and "enough 30 6 15" for distance codes returns 592. The initial root table size (9 or 6) is found in the fifth argument of the inflate_table() calls in inflate.c and infback.c. If the root table size is changed, then these maximum sizes would be need to be recalculated and updated. */ #define ENOUGH_LENS 852 #define ENOUGH_DISTS 592 #define ENOUGH (ENOUGH_LENS+ENOUGH_DISTS) /* Type of code to build for inflate_table() */ typedef enum { CODES, LENS, DISTS } codetype; ZEXTERN int ZLIB_INTERNAL inflate_table OF((codetype type, unsigned short FAR *lens, unsigned codes, code FAR * FAR *table, unsigned FAR *bits, unsigned short FAR *work)); #endif /* INFTREES_H_ */ |
Deleted jni/freetype/src/gzip/infutil.c.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted jni/freetype/src/gzip/infutil.h.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Added jni/freetype/src/gzip/patches/freetype-zlib.diff.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | [zlib] Fix zlib sources for compilation with FreeType We must ensure that they do not issue compiler errors or warnings when they are compiled as part of `src/gzip/ftgzip.c`. * src/gzip/adler32.c: Do not define unused functions when `Z_FREETYPE` is set. * src/gzip/crc32.c (DO1, DO8): Undefine. Already defined in `adler32.c`. * src/gzip/gzguts.h (COPY): Rename to... (COPY__): ... this since `COPY` and `COPY_` conflict with enum values, which have the same name in `zlib.h`. * src/gzip/inflate.c, src/gzip/adler32.c: Omit unused function declarations when `Z_FREETYPE` is defined. * src/gzip/zlib.h: Include `ftzconf.h` instead of `zconf.h` to avoid conflicts with system-installed headers. Omit unused function declarations when `Z_FREETYPE` is defined. * src/gzip/zutil.h: Use `ft_memxxx` functions instead of `memxxx`. Omit unused function declarations when `Z_FREETYPE` is defined. * src/gzip/inflate.h, src/gzip/inftrees.h: Add header guard macros to prevent compiler errors. diff --git b/src/gzip/adler32.c a/src/gzip/adler32.c index be5e8a247..aa032e1dd 100644 --- b/src/gzip/adler32.c +++ a/src/gzip/adler32.c @@ -7,7 +7,9 @@ #include "zutil.h" +#ifndef Z_FREETYPE local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2)); +#endif #define BASE 65521U /* largest prime smaller than 65536 */ #define NMAX 5552 @@ -139,6 +141,8 @@ uLong ZEXPORT adler32( return adler32_z(adler, buf, len); } +#ifndef Z_FREETYPE + /* ========================================================================= */ local uLong adler32_combine_( uLong adler1, @@ -184,3 +188,5 @@ uLong ZEXPORT adler32_combine64( { return adler32_combine_(adler1, adler2, len2); } + +#endif /* !Z_FREETYPE */ diff --git b/src/gzip/crc32.c a/src/gzip/crc32.c index 3e3eb1794..ffced1ea7 100644 --- b/src/gzip/crc32.c +++ a/src/gzip/crc32.c @@ -195,6 +195,8 @@ const z_crc_t FAR * ZEXPORT get_crc_table() } /* ========================================================================= */ +#undef DO1 +#undef DO8 #define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8) #define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1 diff --git b/src/gzip/gzguts.h a/src/gzip/gzguts.h index 990a4d251..c81f8f392 100644 --- b/src/gzip/gzguts.h +++ a/src/gzip/gzguts.h @@ -163,7 +163,7 @@ /* values for gz_state how */ #define LOOK 0 /* look for a gzip header */ -#define COPY 1 /* copy input directly */ +#define COPY__ 1 /* copy input directly */ #define GZIP 2 /* decompress a gzip stream */ /* internal gzip file state data structure */ diff --git b/src/gzip/inflate.c a/src/gzip/inflate.c index 3f7ea647b..7387e6f57 100644 --- b/src/gzip/inflate.c +++ a/src/gzip/inflate.c @@ -99,8 +99,10 @@ local int updatewindow OF((z_streamp strm, const unsigned char FAR *end, #ifdef BUILDFIXED void makefixed OF((void)); #endif +#ifndef Z_FREETYPE local unsigned syncsearch OF((unsigned FAR *have, const unsigned char FAR *buf, unsigned len)); +#endif local int inflateStateCheck( z_streamp strm) @@ -244,6 +246,8 @@ int ZEXPORT inflateInit_( return inflateInit2_(strm, DEF_WBITS, version, stream_size); } +#ifndef Z_FREETYPE + int ZEXPORT inflatePrime( z_streamp strm, int bits, @@ -265,6 +269,8 @@ int ZEXPORT inflatePrime( return Z_OK; } +#endif /* Z_FREETYPE */ + /* Return state with length and distance decoding tables and index sizes set to fixed code decoding. Normally this returns fixed tables from inffixed.h. @@ -1288,6 +1294,8 @@ int ZEXPORT inflateEnd( return Z_OK; } +#ifndef Z_FREETYPE + int ZEXPORT inflateGetDictionary( z_streamp strm, Bytef *dictionary, @@ -1440,6 +1448,8 @@ int ZEXPORT inflateSync( return Z_OK; } +#endif /* !Z_FREETYPE */ + /* Returns true if inflate is currently at the end of a block generated by Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP @@ -1458,6 +1468,8 @@ int ZEXPORT inflateSyncPoint( return state->mode == STORED && state->bits == 0; } +#if !Z_FREETYPE + int ZEXPORT inflateCopy( z_streamp dest, z_streamp source) @@ -1505,6 +1517,8 @@ int ZEXPORT inflateCopy( return Z_OK; } +#endif /* !Z_FREETYPE */ + int ZEXPORT inflateUndermine( z_streamp strm, int subvert) @@ -1538,6 +1552,8 @@ int ZEXPORT inflateValidate( return Z_OK; } +#ifndef Z_FREETYPE + long ZEXPORT inflateMark( z_streamp strm) { @@ -1559,3 +1575,5 @@ unsigned long ZEXPORT inflateCodesUsed( state = (struct inflate_state FAR *)strm->state; return (unsigned long)(state->next - state->codes); } + +#endif /* !Z_FREETYPE */ diff --git b/src/gzip/inflate.h a/src/gzip/inflate.h index a46cce6b6..92ea758e2 100644 --- b/src/gzip/inflate.h +++ a/src/gzip/inflate.h @@ -3,6 +3,9 @@ * For conditions of distribution and use, see copyright notice in zlib.h */ +#ifndef INFLATE_H +#define INFLATE_H + /* WARNING: this file should *not* be used by applications. It is part of the implementation of the compression library and is subject to change. Applications should only use zlib.h. @@ -123,3 +126,5 @@ struct inflate_state { int back; /* bits back of last unprocessed length/lit */ unsigned was; /* initial length of match */ }; + +#endif /* INFLATE_H */ diff --git b/src/gzip/inftrees.h a/src/gzip/inftrees.h index baa53a0b1..c94eb78b5 100644 --- b/src/gzip/inftrees.h +++ a/src/gzip/inftrees.h @@ -3,6 +3,9 @@ * For conditions of distribution and use, see copyright notice in zlib.h */ +#ifndef INFTREES_H +#define INFTREES_H + /* WARNING: this file should *not* be used by applications. It is part of the implementation of the compression library and is subject to change. Applications should only use zlib.h. @@ -60,3 +63,5 @@ typedef enum { int ZLIB_INTERNAL inflate_table OF((codetype type, unsigned short FAR *lens, unsigned codes, code FAR * FAR *table, unsigned FAR *bits, unsigned short FAR *work)); + +#endif /* INFTREES_H_ */ diff --git b/src/gzip/zlib.h a/src/gzip/zlib.h index f09cdaf1e..1807c0645 100644 --- b/src/gzip/zlib.h +++ a/src/gzip/zlib.h @@ -31,7 +31,7 @@ #ifndef ZLIB_H #define ZLIB_H -#include "zconf.h" +#include "ftzconf.h" #ifdef __cplusplus extern "C" { @@ -211,6 +211,8 @@ typedef gz_header FAR *gz_headerp; #define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ +#ifndef Z_FREETYPE + #define zlib_version zlibVersion() /* for compatibility with versions < 1.0.2 */ @@ -246,7 +248,6 @@ ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); this will be done by deflate(). */ - ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); /* deflate compresses as much data as possible, and stops when the input @@ -373,6 +374,7 @@ ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); deallocated). */ +#endif /* !Z_FREETYPE */ /* ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); @@ -534,6 +536,8 @@ ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); The following functions are needed only in some special applications. */ +#ifndef Z_FREETYPE + /* ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, int level, @@ -954,6 +958,8 @@ ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, destination. */ +#endif /* !Z_FREETYPE */ + ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); /* This function is equivalent to inflateEnd followed by inflateInit, @@ -978,6 +984,8 @@ ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, the windowBits parameter is invalid. */ +#ifndef Z_FREETYPE + ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, int bits, int value)); @@ -1067,6 +1075,8 @@ ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, stream state was inconsistent. */ +#endif /* !Z_FREETYPE */ + /* ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, unsigned char FAR *window)); @@ -1093,6 +1103,8 @@ typedef unsigned (*in_func) OF((void FAR *, z_const unsigned char FAR * FAR *)); typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); +#ifndef Z_FREETYPE + ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, in_func in, void FAR *in_desc, out_func out, void FAR *out_desc)); @@ -1212,6 +1224,8 @@ ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); 27-31: 0 (reserved) */ +#endif /* !Z_FREETYPE */ + #ifndef Z_SOLO /* utility functions */ @@ -1739,6 +1753,8 @@ ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); if (crc != original_crc) error(); */ +#ifndef Z_FREETYPE + ZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf, z_size_t len)); /* @@ -1805,6 +1821,19 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, ZLIB_VERSION, (int)sizeof(z_stream)) #endif +#else /* Z_FREETYPE */ + + +ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, + const char *version, int stream_size)); + +# define inflateInit2(strm, windowBits) \ + inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ + (int)sizeof(z_stream)) + +#endif /* Z_FREETYPE */ + + #ifndef Z_SOLO /* gzgetc() macro and its supporting function and exposed data structure. Note @@ -1879,12 +1908,15 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ #else /* Z_SOLO */ +#ifndef Z_FREETYPE ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); +#endif #endif /* !Z_SOLO */ /* undocumented functions */ +#ifndef Z_FREETYPE ZEXTERN const char * ZEXPORT zError OF((int)); ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); @@ -1904,6 +1936,7 @@ ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, va_list va)); # endif #endif +#endif /* !Z_FREETYPE */ #ifdef __cplusplus } diff --git b/src/gzip/zutil.h a/src/gzip/zutil.h index b079ea6a8..2d734a835 100644 --- b/src/gzip/zutil.h +++ a/src/gzip/zutil.h @@ -30,7 +30,9 @@ #endif #ifdef Z_SOLO +# ifndef Z_FREETYPE typedef long ptrdiff_t; /* guess -- will be caught if guess is wrong */ +# endif #endif #ifndef local @@ -185,6 +187,8 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ #pragma warn -8066 #endif +#ifndef Z_FREETYPE + /* provide prototypes for these when building zlib without LFS */ #if !defined(_WIN32) && \ (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) @@ -192,6 +196,8 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); #endif +#endif /* !Z_FREETYPE */ + /* common defaults */ #ifndef OS_CODE @@ -223,9 +229,9 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ # define zmemcmp _fmemcmp # define zmemzero(dest, len) _fmemset(dest, 0, len) # else -# define zmemcpy memcpy -# define zmemcmp memcmp -# define zmemzero(dest, len) memset(dest, 0, len) +# define zmemcpy ft_memcpy +# define zmemcmp ft_memcmp +# define zmemzero(dest, len) ft_memset(dest, 0, len) # endif #else void ZLIB_INTERNAL zmemcpy OF((Bytef* dest, const Bytef* source, uInt len)); |
Changes to jni/freetype/src/gzip/rules.mk.
1 2 3 4 5 | # # FreeType 2 GZip support configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 GZip support configuration rules # # Copyright (C) 2002-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ | |||
36 37 38 39 40 41 42 | # # All source and header files get loaded by `ftgzip.c' only if SYSTEM_ZLIB # is not defined (regardless whether we have a `single' or a `multi' build). # However, it doesn't harm if we add everything as a dependency # unconditionally. # GZIP_DRV_SRCS := $(GZIP_DIR)/adler32.c \ | | | | | | | | | | | | | 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 | # # All source and header files get loaded by `ftgzip.c' only if SYSTEM_ZLIB # is not defined (regardless whether we have a `single' or a `multi' build). # However, it doesn't harm if we add everything as a dependency # unconditionally. # GZIP_DRV_SRCS := $(GZIP_DIR)/adler32.c \ $(GZIP_DIR)/crc32.c \ $(GZIP_DIR)/crc32.h \ $(GZIP_DIR)/ftzconf.h \ $(GZIP_DIR)/infback.c \ $(GZIP_DIR)/inffast.c \ $(GZIP_DIR)/inffast.h \ $(GZIP_DIR)/inffixed.h \ $(GZIP_DIR)/inflate.c \ $(GZIP_DIR)/inflate.h \ $(GZIP_DIR)/inftrees.c \ $(GZIP_DIR)/inftrees.h \ $(GZIP_DIR)/zlib.h \ $(GZIP_DIR)/zutil.c \ $(GZIP_DIR)/zutil.h # gzip driver object(s) # |
︙ | ︙ |
Changes to jni/freetype/src/gzip/zlib.h.
1 | /* zlib.h -- interface of the 'zlib' general purpose compression library | | | | 1 2 3 4 5 6 7 8 9 10 11 | /* zlib.h -- interface of the 'zlib' general purpose compression library version 1.2.11, January 15th, 2017 Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it |
︙ | ︙ | |||
20 21 22 23 24 25 26 | 3. This notice may not be removed or altered from any source distribution. Jean-loup Gailly Mark Adler jloup@gzip.org madler@alumni.caltech.edu The data format used by the zlib library is described by RFCs (Request for | | | | | | > > > > > | | | | | | < | | > > > > | | > > > > > > > > > > | | | | | | | | | > | > > > > > > > > > > > > > > > > > > > > > > > | | | | | | | | | | > > | | | | | | | | | | | | < | > > | | | > > > | | > > > > > > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > > > > > > | | | | > > > > > > > > > > > > > > > > > > > > | | > > | | | | | | | | | > > | | | | > > | | | | > | | > > > | | | | > | | | < | | | | | > | | | > > | | | | | | | | > | | | | | | | > > | | | | | | > | > > > > > | > > > > > > > > > > > > > | < > > > > > > | | | | | | | | > > > > > > | > > > > > > | | | | | | | | > > > > > > > > | > | > | | | > | | > | | | | | < > > > | | | | | | | > > > > > > > > > > > > > > > > > > > > > > > > | | | | | | > | | | | | > | | > > | | > > | | > > > | | > > > > > | | | | | | > > | | | > | | | > > > > > > > > > > > > > > > > > > > > > > > > | | | | > | | | | | | > > > | | | > | > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > | > > > > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > | | < | | | > > | | | > > > > > > > > > > > > > > > > > > > > > > > > | > | > | | | | > > > > > | | | | | > > > > | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | | > > > | < | < < | | > > | | | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | | | | > > | | | | > | < > > > | | | | > > > > > > > > > > | | | | | | < < | > > > > > > > > > > > > > > > > > > > > > > | | | | > | > > > > > > > > > > > > > > > > | > > | | > | > | > | | | | | | | > > > > > > > | > > > > > > > > > > > > > > | > > > > > > > > > > > > > > > > > > > > | > > > > > | > > > > > > > > | > > | > > > > > > < > | > > > | | > > > > > | > > > > > > > > > > > | | > > > > > > > > > > > > > > > | | | > > > > > > > > > | > | > | | | > > | | > > > | | > > > > > > > > > > > > | > > > > | > | | | > | > > > > | | > > > | | | > | | > | > > | | | > | > | > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | > > > | > > > > > > > > > > > > > > > > | | | | | > > > > > > > > > > > > > > > > | | | < | | > | | > > > > > > > > > > > > > > > > > > > > > | | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > | | > | | > | > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | 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 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 | 3. This notice may not be removed or altered from any source distribution. Jean-loup Gailly Mark Adler jloup@gzip.org madler@alumni.caltech.edu The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). */ #ifndef ZLIB_H #define ZLIB_H #include "ftzconf.h" #ifdef __cplusplus extern "C" { #endif #define ZLIB_VERSION "1.2.11" #define ZLIB_VERNUM 0x12b0 #define ZLIB_VER_MAJOR 1 #define ZLIB_VER_MINOR 2 #define ZLIB_VER_REVISION 11 #define ZLIB_VER_SUBREVISION 0 /* The 'zlib' compression library provides in-memory compression and decompression functions, including integrity checks of the uncompressed data. This version of the library supports only one compression method (deflation) but other algorithms will be added later and will have the same stream interface. Compression can be done in a single step if the buffers are large enough, or can be done by repeated calls of the compression function. In the latter case, the application must provide more input and/or consume the output (providing more output space) before each call. The compressed data format used by default by the in-memory functions is the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped around a deflate stream, which is itself documented in RFC 1951. The library also supports reading and writing files in gzip (.gz) format with an interface similar to that of stdio using the functions that start with "gz". The gzip format is different from the zlib format. gzip is a gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. This library can optionally read and write gzip and raw deflate streams in memory as well. The zlib format was designed to be compact and fast for use in memory and on communications channels. The gzip format was designed for single- file compression on file systems, has a larger header than zlib to maintain directory information, and uses a different, slower check method than zlib. The library does not install any signal handler. The decoder checks the consistency of the compressed data, so the library should never crash even in the case of corrupted input. */ typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); typedef void (*free_func) OF((voidpf opaque, voidpf address)); struct internal_state; typedef struct z_stream_s { z_const Bytef *next_in; /* next input byte */ uInt avail_in; /* number of bytes available at next_in */ uLong total_in; /* total number of input bytes read so far */ Bytef *next_out; /* next output byte will go here */ uInt avail_out; /* remaining free space at next_out */ uLong total_out; /* total number of bytes output so far */ z_const char *msg; /* last error message, NULL if no error */ struct internal_state FAR *state; /* not visible by applications */ alloc_func zalloc; /* used to allocate the internal state */ free_func zfree; /* used to free the internal state */ voidpf opaque; /* private data object passed to zalloc and zfree */ int data_type; /* best guess about the data type: binary or text for deflate, or the decoding state for inflate */ uLong adler; /* Adler-32 or CRC-32 value of the uncompressed data */ uLong reserved; /* reserved for future use */ } z_stream; typedef z_stream FAR *z_streamp; /* gzip header information passed to and from zlib routines. See RFC 1952 for more details on the meanings of these fields. */ typedef struct gz_header_s { int text; /* true if compressed data believed to be text */ uLong time; /* modification time */ int xflags; /* extra flags (not used when writing a gzip file) */ int os; /* operating system */ Bytef *extra; /* pointer to extra field or Z_NULL if none */ uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ uInt extra_max; /* space at extra (only when reading header) */ Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ uInt name_max; /* space at name (only when reading header) */ Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ uInt comm_max; /* space at comment (only when reading header) */ int hcrc; /* true if there was or will be a header crc */ int done; /* true when done reading gzip header (not used when writing a gzip file) */ } gz_header; typedef gz_header FAR *gz_headerp; /* The application must update next_in and avail_in when avail_in has dropped to zero. It must update next_out and avail_out when avail_out has dropped to zero. The application must initialize zalloc, zfree and opaque before calling the init function. All other fields are set by the compression library and must not be updated by the application. The opaque value provided by the application will be passed as the first parameter for calls of zalloc and zfree. This can be useful for custom memory management. The compression library attaches no meaning to the opaque value. zalloc must return Z_NULL if there is not enough memory for the object. If zlib is used in a multi-threaded application, zalloc and zfree must be thread safe. In that case, zlib is thread-safe. When zalloc and zfree are Z_NULL on entry to the initialization function, they are set to internal routines that use the standard library functions malloc() and free(). On 16-bit systems, the functions zalloc and zfree must be able to allocate exactly 65536 bytes, but will not be required to allocate more than this if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers returned by zalloc for objects of exactly 65536 bytes *must* have their offset normalized to zero. The default allocation function provided by this library ensures this (see zutil.c). To reduce memory requirements and avoid any allocation of 64K objects, at the expense of compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h). The fields total_in and total_out can be used for statistics or progress reports. After compression, total_in holds the total size of the uncompressed data and may be saved for use by the decompressor (particularly if the decompressor wants to decompress everything in a single step). */ /* constants */ #define Z_NO_FLUSH 0 #define Z_PARTIAL_FLUSH 1 #define Z_SYNC_FLUSH 2 #define Z_FULL_FLUSH 3 #define Z_FINISH 4 #define Z_BLOCK 5 #define Z_TREES 6 /* Allowed flush values; see deflate() and inflate() below for details */ #define Z_OK 0 #define Z_STREAM_END 1 #define Z_NEED_DICT 2 #define Z_ERRNO (-1) #define Z_STREAM_ERROR (-2) #define Z_DATA_ERROR (-3) #define Z_MEM_ERROR (-4) #define Z_BUF_ERROR (-5) #define Z_VERSION_ERROR (-6) /* Return codes for the compression/decompression functions. Negative values * are errors, positive values are used for special but normal events. */ #define Z_NO_COMPRESSION 0 #define Z_BEST_SPEED 1 #define Z_BEST_COMPRESSION 9 #define Z_DEFAULT_COMPRESSION (-1) /* compression levels */ #define Z_FILTERED 1 #define Z_HUFFMAN_ONLY 2 #define Z_RLE 3 #define Z_FIXED 4 #define Z_DEFAULT_STRATEGY 0 /* compression strategy; see deflateInit2() below for details */ #define Z_BINARY 0 #define Z_TEXT 1 #define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ #define Z_UNKNOWN 2 /* Possible values of the data_type field for deflate() */ #define Z_DEFLATED 8 /* The deflate compression method (the only one supported in this version) */ #define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ #ifndef Z_FREETYPE #define zlib_version zlibVersion() /* for compatibility with versions < 1.0.2 */ /* basic functions */ ZEXTERN const char * ZEXPORT zlibVersion OF((void)); /* The application can compare zlibVersion and ZLIB_VERSION for consistency. If the first character differs, the library code actually used is not compatible with the zlib.h header file used by the application. This check is automatically made by deflateInit and inflateInit. */ /* ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); Initializes the internal stream state for compression. The fields zalloc, zfree and opaque must be initialized before by the caller. If zalloc and zfree are set to Z_NULL, deflateInit updates them to use default allocation functions. The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: 1 gives best speed, 9 gives best compression, 0 gives no compression at all (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION requests a default compromise between speed and compression (currently equivalent to level 6). deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_STREAM_ERROR if level is not a valid compression level, or Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible with the version assumed by the caller (ZLIB_VERSION). msg is set to null if there is no error message. deflateInit does not perform any compression: this will be done by deflate(). */ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); /* deflate compresses as much data as possible, and stops when the input buffer becomes empty or the output buffer becomes full. It may introduce some output latency (reading input without producing any output) except when forced to flush. The detailed semantics are as follows. deflate performs one or both of the following actions: - Compress more input starting at next_in and update next_in and avail_in accordingly. If not all input can be processed (because there is not enough room in the output buffer), next_in and avail_in are updated and processing will resume at this point for the next call of deflate(). - Generate more output starting at next_out and update next_out and avail_out accordingly. This action is forced if the parameter flush is non zero. Forcing flush frequently degrades the compression ratio, so this parameter should be set only when necessary. Some output may be provided even if flush is zero. Before the call of deflate(), the application should ensure that at least one of the actions is possible, by providing more input and/or consuming more output, and updating avail_in or avail_out accordingly; avail_out should never be zero before the call. The application can consume the compressed output when it wants, for example when the output buffer is full (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK and with zero avail_out, it must be called again after making room in the output buffer because there might be more output pending. See deflatePending(), which can be used if desired to determine whether or not there is more ouput in that case. Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to decide how much data to accumulate before producing output, in order to maximize compression. If the parameter flush is set to Z_SYNC_FLUSH, all pending output is flushed to the output buffer and the output is aligned on a byte boundary, so that the decompressor can get all input data available so far. (In particular avail_in is zero after the call if enough output space has been provided before the call.) Flushing may degrade compression for some compression algorithms and so it should be used only when necessary. This completes the current deflate block and follows it with an empty stored block that is three bits plus filler bits to the next byte, followed by four bytes (00 00 ff ff). If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the output buffer, but the output is not aligned to a byte boundary. All of the input data so far will be available to the decompressor, as for Z_SYNC_FLUSH. This completes the current deflate block and follows it with an empty fixed codes block that is 10 bits long. This assures that enough bytes are output in order for the decompressor to finish the block before the empty fixed codes block. If flush is set to Z_BLOCK, a deflate block is completed and emitted, as for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to seven bits of the current block are held to be written as the next byte after the next deflate block is completed. In this case, the decompressor may not be provided enough bits at this point in order to complete decompression of the data provided so far to the compressor. It may need to wait for the next block to be emitted. This is for advanced applications that need to control the emission of deflate blocks. If flush is set to Z_FULL_FLUSH, all output is flushed as with Z_SYNC_FLUSH, and the compression state is reset so that decompression can restart from this point if previous compressed data has been damaged or if random access is desired. Using Z_FULL_FLUSH too often can seriously degrade compression. If deflate returns with avail_out == 0, this function must be called again with the same value of the flush parameter and more output space (updated avail_out), until the flush is complete (deflate returns with non-zero avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that avail_out is greater than six to avoid repeated flush markers due to avail_out == 0 on return. If the parameter flush is set to Z_FINISH, pending input is processed, pending output is flushed and deflate returns with Z_STREAM_END if there was enough output space. If deflate returns with Z_OK or Z_BUF_ERROR, this function must be called again with Z_FINISH and more output space (updated avail_out) but no more input data, until it returns with Z_STREAM_END or an error. After deflate has returned Z_STREAM_END, the only possible operations on the stream are deflateReset or deflateEnd. Z_FINISH can be used in the first deflate call after deflateInit if all the compression is to be done in a single step. In order to complete in one call, avail_out must be at least the value returned by deflateBound (see below). Then deflate is guaranteed to return Z_STREAM_END. If not enough output space is provided, deflate will not return Z_STREAM_END, and it must be called again as described above. deflate() sets strm->adler to the Adler-32 checksum of all input read so far (that is, total_in bytes). If a gzip stream is being generated, then strm->adler will be the CRC-32 checksum of the input read so far. (See deflateInit2 below.) deflate() may update strm->data_type if it can make a good guess about the input data type (Z_BINARY or Z_TEXT). If in doubt, the data is considered binary. This field is only for information purposes and does not affect the compression algorithm in any manner. deflate() returns Z_OK if some progress has been made (more input processed or more output produced), Z_STREAM_END if all input has been consumed and all output has been produced (only when flush is set to Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example if next_in or next_out was Z_NULL or the state was inadvertently written over by the application), or Z_BUF_ERROR if no progress is possible (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not fatal, and deflate() can be called again with more input and more output space to continue compressing. */ ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); /* All dynamically allocated data structures for this stream are freed. This function discards any unprocessed input and does not flush any pending output. deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state was inconsistent, Z_DATA_ERROR if the stream was freed prematurely (some input or output was discarded). In the error case, msg may be set but then points to a static string (which must not be deallocated). */ #endif /* !Z_FREETYPE */ /* ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); Initializes the internal stream state for decompression. The fields next_in, avail_in, zalloc, zfree and opaque must be initialized before by the caller. In the current version of inflate, the provided input is not read or consumed. The allocation of a sliding window will be deferred to the first call of inflate (if the decompression does not complete on the first call). If zalloc and zfree are set to Z_NULL, inflateInit updates them to use default allocation functions. inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_VERSION_ERROR if the zlib library version is incompatible with the version assumed by the caller, or Z_STREAM_ERROR if the parameters are invalid, such as a null pointer to the structure. msg is set to null if there is no error message. inflateInit does not perform any decompression. Actual decompression will be done by inflate(). So next_in, and avail_in, next_out, and avail_out are unused and unchanged. The current implementation of inflateInit() does not process any header information -- that is deferred until inflate() is called. */ ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); /* inflate decompresses as much data as possible, and stops when the input buffer becomes empty or the output buffer becomes full. It may introduce some output latency (reading input without producing any output) except when forced to flush. The detailed semantics are as follows. inflate performs one or both of the following actions: - Decompress more input starting at next_in and update next_in and avail_in accordingly. If not all input can be processed (because there is not enough room in the output buffer), then next_in and avail_in are updated accordingly, and processing will resume at this point for the next call of inflate(). - Generate more output starting at next_out and update next_out and avail_out accordingly. inflate() provides as much output as possible, until there is no more input data or no more space in the output buffer (see below about the flush parameter). Before the call of inflate(), the application should ensure that at least one of the actions is possible, by providing more input and/or consuming more output, and updating the next_* and avail_* values accordingly. If the caller of inflate() does not provide both available input and available output space, it is possible that there will be no progress made. The application can consume the uncompressed output when it wants, for example when the output buffer is full (avail_out == 0), or after each call of inflate(). If inflate returns Z_OK and with zero avail_out, it must be called again after making room in the output buffer because there might be more output pending. The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH, Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much output as possible to the output buffer. Z_BLOCK requests that inflate() stop if and when it gets to the next deflate block boundary. When decoding the zlib or gzip format, this will cause inflate() to return immediately after the header and before the first block. When doing a raw inflate, inflate() will go ahead and process the first block, and will return when it gets to the end of that block, or when it runs out of data. The Z_BLOCK option assists in appending to or combining deflate streams. To assist in this, on return inflate() always sets strm->data_type to the number of unused bits in the last byte taken from strm->next_in, plus 64 if inflate() is currently decoding the last block in the deflate stream, plus 128 if inflate() returned immediately after decoding an end-of-block code or decoding the complete header up to just before the first byte of the deflate stream. The end-of-block will not be indicated until all of the uncompressed data from that block has been written to strm->next_out. The number of unused bits may in general be greater than seven, except when bit 7 of data_type is set, in which case the number of unused bits will be less than eight. data_type is set as noted here every time inflate() returns for all flush options, and so can be used to determine the amount of currently consumed input in bits. The Z_TREES option behaves as Z_BLOCK does, but it also returns when the end of each deflate block header is reached, before any actual data in that block is decoded. This allows the caller to determine the length of the deflate block header for later use in random access within a deflate block. 256 is added to the value of strm->data_type when inflate() returns immediately after reaching the end of the deflate block header. inflate() should normally be called until it returns Z_STREAM_END or an error. However if all decompression is to be performed in a single step (a single call of inflate), the parameter flush should be set to Z_FINISH. In this case all pending input is processed and all pending output is flushed; avail_out must be large enough to hold all of the uncompressed data for the operation to complete. (The size of the uncompressed data may have been saved by the compressor for this purpose.) The use of Z_FINISH is not required to perform an inflation in one step. However it may be used to inform inflate that a faster approach can be used for the single inflate() call. Z_FINISH also informs inflate to not maintain a sliding window if the stream completes, which reduces inflate's memory footprint. If the stream does not complete, either because not all of the stream is provided or not enough output space is provided, then a sliding window will be allocated and inflate() can be called again to continue the operation as if Z_NO_FLUSH had been used. In this implementation, inflate() always flushes as much output as possible to the output buffer, and always uses the faster approach on the first call. So the effects of the flush parameter in this implementation are on the return value of inflate() as noted below, when inflate() returns early when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of memory for a sliding window when Z_FINISH is used. If a preset dictionary is needed after this call (see inflateSetDictionary below), inflate sets strm->adler to the Adler-32 checksum of the dictionary chosen by the compressor and returns Z_NEED_DICT; otherwise it sets strm->adler to the Adler-32 checksum of all output produced so far (that is, total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described below. At the end of the stream, inflate() checks that its computed Adler-32 checksum is equal to that saved by the compressor and returns Z_STREAM_END only if the checksum is correct. inflate() can decompress and check either zlib-wrapped or gzip-wrapped deflate data. The header type is detected automatically, if requested when initializing with inflateInit2(). Any information contained in the gzip header is not retained unless inflateGetHeader() is used. When processing gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output produced so far. The CRC-32 is checked against the gzip trailer, as is the uncompressed length, modulo 2^32. inflate() returns Z_OK if some progress has been made (more input processed or more output produced), Z_STREAM_END if the end of the compressed data has been reached and all uncompressed output has been produced, Z_NEED_DICT if a preset dictionary is needed at this point, Z_DATA_ERROR if the input data was corrupted (input stream not conforming to the zlib format or incorrect check value, in which case strm->msg points to a string with a more specific error), Z_STREAM_ERROR if the stream structure was inconsistent (for example next_in or next_out was Z_NULL, or the state was inadvertently written over by the application), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if no progress was possible or if there was not enough room in the output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and inflate() can be called again with more input and more output space to continue decompressing. If Z_DATA_ERROR is returned, the application may then call inflateSync() to look for a good compression block if a partial recovery of the data is to be attempted. */ ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); /* All dynamically allocated data structures for this stream are freed. This function discards any unprocessed input and does not flush any pending output. inflateEnd returns Z_OK if success, or Z_STREAM_ERROR if the stream state was inconsistent. */ /* Advanced functions */ /* The following functions are needed only in some special applications. */ #ifndef Z_FREETYPE /* ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, int level, int method, int windowBits, int memLevel, int strategy)); This is another version of deflateInit with more compression options. The fields next_in, zalloc, zfree and opaque must be initialized before by the caller. The method parameter is the compression method. It must be Z_DEFLATED in this version of the library. The windowBits parameter is the base two logarithm of the window size (the size of the history buffer). It should be in the range 8..15 for this version of the library. Larger values of this parameter result in better compression at the expense of memory usage. The default value is 15 if deflateInit is used instead. For the current implementation of deflate(), a windowBits value of 8 (a window size of 256 bytes) is not supported. As a result, a request for 8 will result in 9 (a 512-byte window). In that case, providing 8 to inflateInit2() will result in an error when the zlib header with 9 is checked against the initialization of inflate(). The remedy is to not use 8 with deflateInit2() with this initialization, or at least in that case use 9 with inflateInit2(). windowBits can also be -8..-15 for raw deflate. In this case, -windowBits determines the window size. deflate() will then generate raw deflate data with no zlib header or trailer, and will not compute a check value. windowBits can also be greater than 15 for optional gzip encoding. Add 16 to windowBits to write a simple gzip header and trailer around the compressed data instead of a zlib wrapper. The gzip header will have no file name, no extra data, no comment, no modification time (set to zero), no header crc, and the operating system will be set to the appropriate value, if the operating system was determined at compile time. If a gzip stream is being written, strm->adler is a CRC-32 instead of an Adler-32. For raw deflate or gzip encoding, a request for a 256-byte window is rejected as invalid, since only the zlib header provides a means of transmitting the window size to the decompressor. The memLevel parameter specifies how much memory should be allocated for the internal compression state. memLevel=1 uses minimum memory but is slow and reduces compression ratio; memLevel=9 uses maximum memory for optimal speed. The default value is 8. See zconf.h for total memory usage as a function of windowBits and memLevel. The strategy parameter is used to tune the compression algorithm. Use the value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no string match), or Z_RLE to limit match distances to one (run-length encoding). Filtered data consists mostly of small values with a somewhat random distribution. In this case, the compression algorithm is tuned to compress them better. The effect of Z_FILTERED is to force more Huffman coding and less string matching; it is somewhat intermediate between Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The strategy parameter only affects the compression ratio but not the correctness of the compressed output even if it is not set appropriately. Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler decoder for special applications. deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible with the version assumed by the caller (ZLIB_VERSION). msg is set to null if there is no error message. deflateInit2 does not perform any compression: this will be done by deflate(). */ ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, const Bytef *dictionary, uInt dictLength)); /* Initializes the compression dictionary from the given byte sequence without producing any compressed output. When using the zlib format, this function must be called immediately after deflateInit, deflateInit2 or deflateReset, and before any call of deflate. When doing raw deflate, this function must be called either before any call of deflate, or immediately after the completion of a deflate block, i.e. after all input has been consumed and all output has been delivered when using any of the flush options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH. The compressor and decompressor must use exactly the same dictionary (see inflateSetDictionary). The dictionary should consist of strings (byte sequences) that are likely to be encountered later in the data to be compressed, with the most commonly used strings preferably put towards the end of the dictionary. Using a dictionary is most useful when the data to be compressed is short and can be predicted with good accuracy; the data can then be compressed better than with the default empty dictionary. Depending on the size of the compression data structures selected by deflateInit or deflateInit2, a part of the dictionary may in effect be discarded, for example if the dictionary is larger than the window size provided in deflateInit or deflateInit2. Thus the strings most likely to be useful should be put at the end of the dictionary, not at the front. In addition, the current implementation of deflate will use at most the window size minus 262 bytes of the provided dictionary. Upon return of this function, strm->adler is set to the Adler-32 value of the dictionary; the decompressor may later use this value to determine which dictionary has been used by the compressor. (The Adler-32 value applies to the whole dictionary even if only a subset of the dictionary is actually used by the compressor.) If a raw deflate was requested, then the Adler-32 value is not computed and strm->adler is not set. deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is inconsistent (for example if deflate has already been called for this stream or if not at a block boundary for raw deflate). deflateSetDictionary does not perform any compression: this will be done by deflate(). */ ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm, Bytef *dictionary, uInt *dictLength)); /* Returns the sliding dictionary being maintained by deflate. dictLength is set to the number of bytes in the dictionary, and that many bytes are copied to dictionary. dictionary must have enough space, where 32768 bytes is always enough. If deflateGetDictionary() is called with dictionary equal to Z_NULL, then only the dictionary length is returned, and nothing is copied. Similary, if dictLength is Z_NULL, then it is not set. deflateGetDictionary() may return a length less than the window size, even when more than the window size in input has been provided. It may return up to 258 bytes less in that case, due to how zlib's implementation of deflate manages the sliding window and lookahead for matches, where matches can be up to 258 bytes long. If the application needs the last window-size bytes of input, then that would need to be saved by the application outside of zlib. deflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the stream state is inconsistent. */ ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, z_streamp source)); /* Sets the destination stream as a complete copy of the source stream. This function can be useful when several compression strategies will be tried, for example when there are several ways of pre-processing the input data with a filter. The streams that will be discarded should then be freed by calling deflateEnd. Note that deflateCopy duplicates the internal compression state which can be quite large, so this strategy is slow and can consume lots of memory. deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_STREAM_ERROR if the source stream state was inconsistent (such as zalloc being Z_NULL). msg is left unchanged in both source and destination. */ ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); /* This function is equivalent to deflateEnd followed by deflateInit, but does not free and reallocate the internal compression state. The stream will leave the compression level and any other attributes that may have been set unchanged. deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent (such as zalloc or state being Z_NULL). */ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, int level, int strategy)); /* Dynamically update the compression level and compression strategy. The interpretation of level and strategy is as in deflateInit2(). This can be used to switch between compression and straight copy of the input data, or to switch to a different kind of input data requiring a different strategy. If the compression approach (which is a function of the level) or the strategy is changed, and if any input has been consumed in a previous deflate() call, then the input available so far is compressed with the old level and strategy using deflate(strm, Z_BLOCK). There are three approaches for the compression levels 0, 1..3, and 4..9 respectively. The new level and strategy will take effect at the next call of deflate(). If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does not have enough output space to complete, then the parameter change will not take effect. In this case, deflateParams() can be called again with the same parameters and more output space to try again. In order to assure a change in the parameters on the first try, the deflate stream should be flushed using deflate() with Z_BLOCK or other flush request until strm.avail_out is not zero, before calling deflateParams(). Then no more input data should be provided before the deflateParams() call. If this is done, the old level and strategy will be applied to the data compressed before deflateParams(), and the new level and strategy will be applied to the the data compressed after deflateParams(). deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream state was inconsistent or if a parameter was invalid, or Z_BUF_ERROR if there was not enough output space to complete the compression of the available input data before a change in the strategy or approach. Note that in the case of a Z_BUF_ERROR, the parameters are not changed. A return value of Z_BUF_ERROR is not fatal, in which case deflateParams() can be retried with more output space. */ ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, int good_length, int max_lazy, int nice_length, int max_chain)); /* Fine tune deflate's internal compression parameters. This should only be used by someone who understands the algorithm used by zlib's deflate for searching for the best matching string, and even then only by the most fanatic optimizer trying to squeeze out the last compressed bit for their specific input data. Read the deflate.c source code for the meaning of the max_lazy, good_length, nice_length, and max_chain parameters. deflateTune() can be called after deflateInit() or deflateInit2(), and returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. */ ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, uLong sourceLen)); /* deflateBound() returns an upper bound on the compressed size after deflation of sourceLen bytes. It must be called after deflateInit() or deflateInit2(), and after deflateSetHeader(), if used. This would be used to allocate an output buffer for deflation in a single pass, and so would be called before deflate(). If that first deflate() call is provided the sourceLen input bytes, an output buffer allocated to the size returned by deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed to return Z_STREAM_END. Note that it is possible for the compressed size to be larger than the value returned by deflateBound() if flush options other than Z_FINISH or Z_NO_FLUSH are used. */ ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, unsigned *pending, int *bits)); /* deflatePending() returns the number of bytes and bits of output that have been generated, but not yet provided in the available output. The bytes not provided would be due to the available output space having being consumed. The number of bits of output not provided are between 0 and 7, where they await more bits to join them in order to fill out a full byte. If pending or bits are Z_NULL, then those values are not set. deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent. */ ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, int bits, int value)); /* deflatePrime() inserts bits in the deflate output stream. The intent is that this function is used to start off the deflate output with the bits leftover from a previous deflate stream when appending to it. As such, this function can only be used for raw deflate, and must be used before the first deflate() call after a deflateInit2() or deflateReset(). bits must be less than or equal to 16, and that many of the least significant bits of value will be inserted in the output. deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the source stream state was inconsistent. */ ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, gz_headerp head)); /* deflateSetHeader() provides gzip header information for when a gzip stream is requested by deflateInit2(). deflateSetHeader() may be called after deflateInit2() or deflateReset() and before the first call of deflate(). The text, time, os, extra field, name, and comment information in the provided gz_header structure are written to the gzip header (xflag is ignored -- the extra flags are set according to the compression level). The caller must assure that, if not Z_NULL, name and comment are terminated with a zero byte, and that if extra is not Z_NULL, that extra_len bytes are available there. If hcrc is true, a gzip header crc is included. Note that the current versions of the command-line version of gzip (up through version 1.3.x) do not support header crc's, and will report that it is a "multi-part gzip file" and give up. If deflateSetHeader is not used, the default gzip header has text false, the time set to zero, and os set to 255, with no extra, name, or comment fields. The gzip header is returned to the default state by deflateReset(). deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent. */ /* ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, int windowBits)); This is another version of inflateInit with an extra parameter. The fields next_in, avail_in, zalloc, zfree and opaque must be initialized before by the caller. The windowBits parameter is the base two logarithm of the maximum window size (the size of the history buffer). It should be in the range 8..15 for this version of the library. The default value is 15 if inflateInit is used instead. windowBits must be greater than or equal to the windowBits value provided to deflateInit2() while compressing, or it must be equal to 15 if deflateInit2() was not used. If a compressed stream with a larger window size is given as input, inflate() will return with the error code Z_DATA_ERROR instead of trying to allocate a larger window. windowBits can also be zero to request that inflate use the window size in the zlib header of the compressed stream. windowBits can also be -8..-15 for raw inflate. In this case, -windowBits determines the window size. inflate() will then process raw deflate data, not looking for a zlib or gzip header, not generating a check value, and not looking for any check values for comparison at the end of the stream. This is for use with other formats that use the deflate compressed data format such as zip. Those formats provide their own check values. If a custom format is developed using the raw deflate format for compressed data, it is recommended that a check value such as an Adler-32 or a CRC-32 be applied to the uncompressed data as is done in the zlib, gzip, and zip formats. For most applications, the zlib format should be used as is. Note that comments above on the use in deflateInit2() applies to the magnitude of windowBits. windowBits can also be greater than 15 for optional gzip decoding. Add 32 to windowBits to enable zlib and gzip decoding with automatic header detection, or add 16 to decode only the gzip format (the zlib format will return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a CRC-32 instead of an Adler-32. Unlike the gunzip utility and gzread() (see below), inflate() will not automatically decode concatenated gzip streams. inflate() will return Z_STREAM_END at the end of the gzip stream. The state would need to be reset to continue decoding a subsequent gzip stream. inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_VERSION_ERROR if the zlib library version is incompatible with the version assumed by the caller, or Z_STREAM_ERROR if the parameters are invalid, such as a null pointer to the structure. msg is set to null if there is no error message. inflateInit2 does not perform any decompression apart from possibly reading the zlib header if present: actual decompression will be done by inflate(). (So next_in and avail_in may be modified, but next_out and avail_out are unused and unchanged.) The current implementation of inflateInit2() does not process any header information -- that is deferred until inflate() is called. */ ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, const Bytef *dictionary, uInt dictLength)); /* Initializes the decompression dictionary from the given uncompressed byte sequence. This function must be called immediately after a call of inflate, if that call returned Z_NEED_DICT. The dictionary chosen by the compressor can be determined from the Adler-32 value returned by that call of inflate. The compressor and decompressor must use exactly the same dictionary (see deflateSetDictionary). For raw inflate, this function can be called at any time to set the dictionary. If the provided dictionary is smaller than the window and there is already data in the window, then the provided dictionary will amend what's there. The application must insure that the dictionary that was used for compression is provided. inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the expected one (incorrect Adler-32 value). inflateSetDictionary does not perform any decompression: this will be done by subsequent calls of inflate(). */ ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, Bytef *dictionary, uInt *dictLength)); /* Returns the sliding dictionary being maintained by inflate. dictLength is set to the number of bytes in the dictionary, and that many bytes are copied to dictionary. dictionary must have enough space, where 32768 bytes is always enough. If inflateGetDictionary() is called with dictionary equal to Z_NULL, then only the dictionary length is returned, and nothing is copied. Similary, if dictLength is Z_NULL, then it is not set. inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the stream state is inconsistent. */ ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); /* Skips invalid compressed data until a possible full flush point (see above for the description of deflate with Z_FULL_FLUSH) can be found, or until all available input is skipped. No output is provided. inflateSync searches for a 00 00 FF FF pattern in the compressed data. All full flush points have this pattern, but not all occurrences of this pattern are full flush points. inflateSync returns Z_OK if a possible full flush point has been found, Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point has been found, or Z_STREAM_ERROR if the stream structure was inconsistent. In the success case, the application may save the current current value of total_in which indicates where valid compressed data was found. In the error case, the application may repeatedly call inflateSync, providing more input each time, until success or end of the input data. */ ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, z_streamp source)); /* Sets the destination stream as a complete copy of the source stream. This function can be useful when randomly accessing a large stream. The first pass through the stream can periodically record the inflate state, allowing restarting inflate at those points when randomly accessing the stream. inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_STREAM_ERROR if the source stream state was inconsistent (such as zalloc being Z_NULL). msg is left unchanged in both source and destination. */ #endif /* !Z_FREETYPE */ ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); /* This function is equivalent to inflateEnd followed by inflateInit, but does not free and reallocate the internal decompression state. The stream will keep attributes that may have been set by inflateInit2. inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent (such as zalloc or state being Z_NULL). */ ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, int windowBits)); /* This function is the same as inflateReset, but it also permits changing the wrap and window size requests. The windowBits parameter is interpreted the same as it is for inflateInit2. If the window size is changed, then the memory allocated for the window is freed, and the window will be reallocated by inflate() if needed. inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent (such as zalloc or state being Z_NULL), or if the windowBits parameter is invalid. */ #ifndef Z_FREETYPE ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, int bits, int value)); /* This function inserts bits in the inflate input stream. The intent is that this function is used to start inflating at a bit position in the middle of a byte. The provided bits will be used before any bytes are used from next_in. This function should only be used with raw inflate, and should be used before the first inflate() call after inflateInit2() or inflateReset(). bits must be less than or equal to 16, and that many of the least significant bits of value will be inserted in the input. If bits is negative, then the input stream bit buffer is emptied. Then inflatePrime() can be called again to put bits in the buffer. This is used to clear out bits leftover after feeding inflate a block description prior to feeding inflate codes. inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent. */ ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); /* This function returns two values, one in the lower 16 bits of the return value, and the other in the remaining upper bits, obtained by shifting the return value down 16 bits. If the upper value is -1 and the lower value is zero, then inflate() is currently decoding information outside of a block. If the upper value is -1 and the lower value is non-zero, then inflate is in the middle of a stored block, with the lower value equaling the number of bytes from the input remaining to copy. If the upper value is not -1, then it is the number of bits back from the current bit position in the input of the code (literal or length/distance pair) currently being processed. In that case the lower value is the number of bytes already emitted for that code. A code is being processed if inflate is waiting for more input to complete decoding of the code, or if it has completed decoding but is waiting for more output space to write the literal or match data. inflateMark() is used to mark locations in the input data for random access, which may be at bit positions, and to note those cases where the output of a code may span boundaries of random access blocks. The current location in the input stream can be determined from avail_in and data_type as noted in the description for the Z_BLOCK flush parameter for inflate. inflateMark returns the value noted above, or -65536 if the provided source stream state was inconsistent. */ ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, gz_headerp head)); /* inflateGetHeader() requests that gzip header information be stored in the provided gz_header structure. inflateGetHeader() may be called after inflateInit2() or inflateReset(), and before the first call of inflate(). As inflate() processes the gzip stream, head->done is zero until the header is completed, at which time head->done is set to one. If a zlib stream is being decoded, then head->done is set to -1 to indicate that there will be no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be used to force inflate() to return immediately after header processing is complete and before any actual data is decompressed. The text, time, xflags, and os fields are filled in with the gzip header contents. hcrc is set to true if there is a header CRC. (The header CRC was valid if done is set to one.) If extra is not Z_NULL, then extra_max contains the maximum number of bytes to write to extra. Once done is true, extra_len contains the actual extra field length, and extra contains the extra field, or that field truncated if extra_max is less than extra_len. If name is not Z_NULL, then up to name_max characters are written there, terminated with a zero unless the length is greater than name_max. If comment is not Z_NULL, then up to comm_max characters are written there, terminated with a zero unless the length is greater than comm_max. When any of extra, name, or comment are not Z_NULL and the respective field is not present in the header, then that field is set to Z_NULL to signal its absence. This allows the use of deflateSetHeader() with the returned structure to duplicate the header. However if those fields are set to allocated memory, then the application will need to save those pointers elsewhere so that they can be eventually freed. If inflateGetHeader is not used, then the header information is simply discarded. The header is always checked for validity, including the header CRC if present. inflateReset() will reset the process to discard the header information. The application would need to call inflateGetHeader() again to retrieve the header from the next gzip stream. inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent. */ #endif /* !Z_FREETYPE */ /* ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, unsigned char FAR *window)); Initialize the internal stream state for decompression using inflateBack() calls. The fields zalloc, zfree and opaque in strm must be initialized before the call. If zalloc and zfree are Z_NULL, then the default library- derived memory allocation routines are used. windowBits is the base two logarithm of the window size, in the range 8..15. window is a caller supplied buffer of that size. Except for special applications where it is assured that deflate was used with small window sizes, windowBits must be 15 and a 32K byte window must be supplied to be able to decompress general deflate streams. See inflateBack() for the usage of these routines. inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of the parameters are invalid, Z_MEM_ERROR if the internal state could not be allocated, or Z_VERSION_ERROR if the version of the library does not match the version of the header file. */ typedef unsigned (*in_func) OF((void FAR *, z_const unsigned char FAR * FAR *)); typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); #ifndef Z_FREETYPE ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, in_func in, void FAR *in_desc, out_func out, void FAR *out_desc)); /* inflateBack() does a raw inflate with a single call using a call-back interface for input and output. This is potentially more efficient than inflate() for file i/o applications, in that it avoids copying between the output and the sliding window by simply making the window itself the output buffer. inflate() can be faster on modern CPUs when used with large buffers. inflateBack() trusts the application to not change the output buffer passed by the output function, at least until inflateBack() returns. inflateBackInit() must be called first to allocate the internal state and to initialize the state with the user-provided window buffer. inflateBack() may then be used multiple times to inflate a complete, raw deflate stream with each call. inflateBackEnd() is then called to free the allocated state. A raw deflate stream is one with no zlib or gzip header or trailer. This routine would normally be used in a utility that reads zip or gzip files and writes out uncompressed files. The utility would decode the header and process the trailer on its own, hence this routine expects only the raw deflate stream to decompress. This is different from the default behavior of inflate(), which expects a zlib header and trailer around the deflate stream. inflateBack() uses two subroutines supplied by the caller that are then called by inflateBack() for input and output. inflateBack() calls those routines until it reads a complete deflate stream and writes out all of the uncompressed data, or until it encounters an error. The function's parameters and return types are defined above in the in_func and out_func typedefs. inflateBack() will call in(in_desc, &buf) which should return the number of bytes of provided input, and a pointer to that input in buf. If there is no input available, in() must return zero -- buf is ignored in that case -- and inflateBack() will return a buffer error. inflateBack() will call out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() should return zero on success, or non-zero on failure. If out() returns non-zero, inflateBack() will return with an error. Neither in() nor out() are permitted to change the contents of the window provided to inflateBackInit(), which is also the buffer that out() uses to write from. The length written by out() will be at most the window size. Any non-zero amount of input may be provided by in(). For convenience, inflateBack() can be provided input on the first call by setting strm->next_in and strm->avail_in. If that input is exhausted, then in() will be called. Therefore strm->next_in must be initialized before calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in must also be initialized, and then if strm->avail_in is not zero, input will initially be taken from strm->next_in[0 .. strm->avail_in - 1]. The in_desc and out_desc parameters of inflateBack() is passed as the first parameter of in() and out() respectively when they are called. These descriptors can be optionally used to pass any information that the caller- supplied in() and out() functions need to do their job. On return, inflateBack() will set strm->next_in and strm->avail_in to pass back any unused input that was provided by the last in() call. The return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR if in() or out() returned an error, Z_DATA_ERROR if there was a format error in the deflate stream (in which case strm->msg is set to indicate the nature of the error), or Z_STREAM_ERROR if the stream was not properly initialized. In the case of Z_BUF_ERROR, an input or output error can be distinguished using strm->next_in which will be Z_NULL only if in() returned an error. If strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning non-zero. (in() will always be called before out(), so strm->next_in is assured to be defined if out() returns non-zero.) Note that inflateBack() cannot return Z_OK. */ ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); /* All memory allocated by inflateBackInit() is freed. inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream state was inconsistent. */ ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); /* Return flags indicating compile-time options. Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: 1.0: size of uInt 3.2: size of uLong 5.4: size of voidpf (pointer) 7.6: size of z_off_t Compiler, assembler, and debug options: 8: ZLIB_DEBUG 9: ASMV or ASMINF -- use ASM code 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention 11: 0 (reserved) One-time table building (smaller code, but not thread-safe if true): 12: BUILDFIXED -- build static block decoding tables when needed 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed 14,15: 0 (reserved) Library content (indicates missing functionality): 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking deflate code when not needed) 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect and decode gzip streams (to avoid linking crc code) 18-19: 0 (reserved) Operation variations (changes in library functionality): 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate 21: FASTEST -- deflate algorithm with only one, lowest compression level 22,23: 0 (reserved) The sprintf variant used by gzprintf (zero is best): 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! 26: 0 = returns value, 1 = void -- 1 means inferred string length returned Remainder: 27-31: 0 (reserved) */ #endif /* !Z_FREETYPE */ #ifndef Z_SOLO /* utility functions */ /* The following utility functions are implemented on top of the basic stream-oriented functions. To simplify the interface, some default options are assumed (compression level and memory usage, standard memory allocation functions). The source code of these utility functions can be modified if you need special options. */ ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen)); /* Compresses the source buffer into the destination buffer. sourceLen is the byte length of the source buffer. Upon entry, destLen is the total size of the destination buffer, which must be at least the value returned by compressBound(sourceLen). Upon exit, destLen is the actual size of the compressed data. compress() is equivalent to compress2() with a level parameter of Z_DEFAULT_COMPRESSION. compress returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if there was not enough room in the output buffer. */ ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level)); /* Compresses the source buffer into the destination buffer. The level parameter has the same meaning as in deflateInit. sourceLen is the byte length of the source buffer. Upon entry, destLen is the total size of the destination buffer, which must be at least the value returned by compressBound(sourceLen). Upon exit, destLen is the actual size of the compressed data. compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if there was not enough room in the output buffer, Z_STREAM_ERROR if the level parameter is invalid. */ ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); /* compressBound() returns an upper bound on the compressed size after compress() or compress2() on sourceLen bytes. It would be used before a compress() or compress2() call to allocate the destination buffer. */ ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen)); /* Decompresses the source buffer into the destination buffer. sourceLen is the byte length of the source buffer. Upon entry, destLen is the total size of the destination buffer, which must be large enough to hold the entire uncompressed data. (The size of the uncompressed data must have been saved previously by the compressor and transmitted to the decompressor by some mechanism outside the scope of this compression library.) Upon exit, destLen is the actual size of the uncompressed data. uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if there was not enough room in the output buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. In the case where there is not enough room, uncompress() will fill the output buffer with the uncompressed data up to that point. */ ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, const Bytef *source, uLong *sourceLen)); /* Same as uncompress, except that sourceLen is a pointer, where the length of the source is *sourceLen. On return, *sourceLen is the number of source bytes consumed. */ /* gzip file access functions */ /* This library supports reading and writing files in gzip (.gz) format with an interface similar to that of stdio, using the functions that start with "gz". The gzip format is different from the zlib format. gzip is a gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. */ typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ /* ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); Opens a gzip (.gz) file for reading or writing. The mode parameter is as in fopen ("rb" or "wb") but can also include a compression level ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' for fixed code compression as in "wb9F". (See the description of deflateInit2 for more information about the strategy parameter.) 'T' will request transparent writing or appending with no compression and not using the gzip format. "a" can be used instead of "w" to request that the gzip stream that will be written be appended to the file. "+" will result in an error, since reading and writing to the same gzip file is not supported. The addition of "x" when writing will create the file exclusively, which fails if the file already exists. On systems that support it, the addition of "e" when reading or writing will set the flag to close the file on an execve() call. These functions, as well as gzip, will read and decode a sequence of gzip streams in a file. The append function of gzopen() can be used to create such a file. (Also see gzflush() for another way to do this.) When appending, gzopen does not test whether the file begins with a gzip stream, nor does it look for the end of the gzip streams to begin appending. gzopen will simply append a gzip stream to the existing file. gzopen can be used to read a file which is not in gzip format; in this case gzread will directly read from the file without decompression. When reading, this will be detected automatically by looking for the magic two- byte gzip header. gzopen returns NULL if the file could not be opened, if there was insufficient memory to allocate the gzFile state, or if an invalid mode was specified (an 'r', 'w', or 'a' was not provided, or '+' was provided). errno can be checked to determine if the reason gzopen failed was that the file could not be opened. */ ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); /* gzdopen associates a gzFile with the file descriptor fd. File descriptors are obtained from calls like open, dup, creat, pipe or fileno (if the file has been previously opened with fopen). The mode parameter is as in gzopen. The next call of gzclose on the returned gzFile will also close the file descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd, mode);. The duplicated descriptor should be saved to avoid a leak, since gzdopen does not close fd if it fails. If you are using fileno() to get the file descriptor from a FILE *, then you will have to use dup() to avoid double-close()ing the file descriptor. Both gzclose() and fclose() will close the associated file descriptor, so they need to have different file descriptors. gzdopen returns NULL if there was insufficient memory to allocate the gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not provided, or '+' was provided), or if fd is -1. The file descriptor is not used until the next gz* read, write, seek, or close operation, so gzdopen will not detect if fd is invalid (unless fd is -1). */ ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); /* Set the internal buffer size used by this library's functions. The default buffer size is 8192 bytes. This function must be called after gzopen() or gzdopen(), and before any other calls that read or write the file. The buffer memory allocation is always deferred to the first read or write. Three times that size in buffer space is allocated. A larger buffer size of, for example, 64K or 128K bytes will noticeably increase the speed of decompression (reading). The new buffer size also affects the maximum length for gzprintf(). gzbuffer() returns 0 on success, or -1 on failure, such as being called too late. */ ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); /* Dynamically update the compression level or strategy. See the description of deflateInit2 for the meaning of these parameters. Previously provided data is flushed before the parameter change. gzsetparams returns Z_OK if success, Z_STREAM_ERROR if the file was not opened for writing, Z_ERRNO if there is an error writing the flushed data, or Z_MEM_ERROR if there is a memory allocation error. */ ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); /* Reads the given number of uncompressed bytes from the compressed file. If the input file is not in gzip format, gzread copies the given number of bytes into the buffer directly from the file. After reaching the end of a gzip stream in the input, gzread will continue to read, looking for another gzip stream. Any number of gzip streams may be concatenated in the input file, and will all be decompressed by gzread(). If something other than a gzip stream is encountered after a gzip stream, that remaining trailing garbage is ignored (and no error is returned). gzread can be used to read a gzip file that is being concurrently written. Upon reaching the end of the input, gzread will return with the available data. If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then gzclearerr can be used to clear the end of file indicator in order to permit gzread to be tried again. Z_OK indicates that a gzip stream was completed on the last gzread. Z_BUF_ERROR indicates that the input file ended in the middle of a gzip stream. Note that gzread does not return -1 in the event of an incomplete gzip stream. This error is deferred until gzclose(), which will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip stream. Alternatively, gzerror can be used before gzclose to detect this case. gzread returns the number of uncompressed bytes actually read, less than len for end of file, or -1 for error. If len is too large to fit in an int, then nothing is read, -1 is returned, and the error state is set to Z_STREAM_ERROR. */ ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, gzFile file)); /* Read up to nitems items of size size from file to buf, otherwise operating as gzread() does. This duplicates the interface of stdio's fread(), with size_t request and return types. If the library defines size_t, then z_size_t is identical to size_t. If not, then z_size_t is an unsigned integer type that can contain a pointer. gzfread() returns the number of full items read of size size, or zero if the end of the file was reached and a full item could not be read, or if there was an error. gzerror() must be consulted if zero is returned in order to determine if there was an error. If the multiplication of size and nitems overflows, i.e. the product does not fit in a z_size_t, then nothing is read, zero is returned, and the error state is set to Z_STREAM_ERROR. In the event that the end of file is reached and only a partial item is available at the end, i.e. the remaining uncompressed data length is not a multiple of size, then the final partial item is nevetheless read into buf and the end-of-file flag is set. The length of the partial item read is not provided, but could be inferred from the result of gztell(). This behavior is the same as the behavior of fread() implementations in common libraries, but it prevents the direct use of gzfread() to read a concurrently written file, reseting and retrying on end-of-file, when size is not 1. */ ZEXTERN int ZEXPORT gzwrite OF((gzFile file, voidpc buf, unsigned len)); /* Writes the given number of uncompressed bytes into the compressed file. gzwrite returns the number of uncompressed bytes written or 0 in case of error. */ ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, z_size_t nitems, gzFile file)); /* gzfwrite() writes nitems items of size size from buf to file, duplicating the interface of stdio's fwrite(), with size_t request and return types. If the library defines size_t, then z_size_t is identical to size_t. If not, then z_size_t is an unsigned integer type that can contain a pointer. gzfwrite() returns the number of full items written of size size, or zero if there was an error. If the multiplication of size and nitems overflows, i.e. the product does not fit in a z_size_t, then nothing is written, zero is returned, and the error state is set to Z_STREAM_ERROR. */ ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); /* Converts, formats, and writes the arguments to the compressed file under control of the format string, as in fprintf. gzprintf returns the number of uncompressed bytes actually written, or a negative zlib error code in case of error. The number of uncompressed bytes written is limited to 8191, or one less than the buffer size given to gzbuffer(). The caller should assure that this limit is not exceeded. If it is exceeded, then gzprintf() will return an error (0) with nothing written. In this case, there may also be a buffer overflow with unpredictable consequences, which is possible only if zlib was compiled with the insecure functions sprintf() or vsprintf() because the secure snprintf() or vsnprintf() functions were not available. This can be determined using zlibCompileFlags(). */ ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); /* Writes the given null-terminated string to the compressed file, excluding the terminating null character. gzputs returns the number of characters written, or -1 in case of error. */ ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); /* Reads bytes from the compressed file until len-1 characters are read, or a newline character is read and transferred to buf, or an end-of-file condition is encountered. If any characters are read or if len == 1, the string is terminated with a null character. If no characters are read due to an end-of-file or len < 1, then the buffer is left untouched. gzgets returns buf which is a null-terminated string, or it returns NULL for end-of-file or in case of error. If there was an error, the contents at buf are indeterminate. */ ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); /* Writes c, converted to an unsigned char, into the compressed file. gzputc returns the value that was written, or -1 in case of error. */ ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); /* Reads one byte from the compressed file. gzgetc returns this byte or -1 in case of end of file or error. This is implemented as a macro for speed. As such, it does not do all of the checking the other functions do. I.e. it does not check to see if file is NULL, nor whether the structure file points to has been clobbered or not. */ ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); /* Push one character back onto the stream to be read as the first character on the next read. At least one character of push-back is allowed. gzungetc() returns the character pushed, or -1 on failure. gzungetc() will fail if c is -1, and may fail if a character has been pushed but not read yet. If gzungetc is used immediately after gzopen or gzdopen, at least the output buffer size of pushed characters is allowed. (See gzbuffer above.) The pushed character will be discarded if the stream is repositioned with gzseek() or gzrewind(). */ ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); /* Flushes all pending output into the compressed file. The parameter flush is as in the deflate() function. The return value is the zlib error number (see function gzerror below). gzflush is only permitted when writing. If the flush parameter is Z_FINISH, the remaining data is written and the gzip stream is completed in the output. If gzwrite() is called again, a new gzip stream will be started in the output. gzread() is able to read such concatenated gzip streams. gzflush should be called only when strictly necessary because it will degrade compression if called too often. */ /* ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, z_off_t offset, int whence)); Sets the starting position for the next gzread or gzwrite on the given compressed file. The offset represents a number of bytes in the uncompressed data stream. The whence parameter is defined as in lseek(2); the value SEEK_END is not supported. If the file is opened for reading, this function is emulated but can be extremely slow. If the file is opened for writing, only forward seeks are supported; gzseek then compresses a sequence of zeroes up to the new starting position. gzseek returns the resulting offset location as measured in bytes from the beginning of the uncompressed stream, or -1 in case of error, in particular if the file is opened for writing and the new starting position would be before the current position. */ ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); /* Rewinds the given file. This function is supported only for reading. gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) */ /* ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); Returns the starting position for the next gzread or gzwrite on the given compressed file. This position represents a number of bytes in the uncompressed data stream, and is zero when starting, even if appending or reading a gzip stream from the middle of a file using gzdopen(). gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) */ /* ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); Returns the current offset in the file being read or written. This offset includes the count of bytes that precede the gzip stream, for example when appending or when using gzdopen() for reading. When reading, the offset does not include as yet unused buffered input. This information can be used for a progress indicator. On error, gzoffset() returns -1. */ ZEXTERN int ZEXPORT gzeof OF((gzFile file)); /* Returns true (1) if the end-of-file indicator has been set while reading, false (0) otherwise. Note that the end-of-file indicator is set only if the read tried to go past the end of the input, but came up short. Therefore, just like feof(), gzeof() may return false even if there is no more data to read, in the event that the last read request was for the exact number of bytes remaining in the input file. This will happen if the input file size is an exact multiple of the buffer size. If gzeof() returns true, then the read functions will return no more data, unless the end-of-file indicator is reset by gzclearerr() and the input file has grown since the previous end of file was detected. */ ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); /* Returns true (1) if file is being copied directly while reading, or false (0) if file is a gzip stream being decompressed. If the input file is empty, gzdirect() will return true, since the input does not contain a gzip stream. If gzdirect() is used immediately after gzopen() or gzdopen() it will cause buffers to be allocated to allow reading the file to determine if it is a gzip file. Therefore if gzbuffer() is used, it should be called before gzdirect(). When writing, gzdirect() returns true (1) if transparent writing was requested ("wT" for the gzopen() mode), or false (0) otherwise. (Note: gzdirect() is not needed when writing. Transparent writing must be explicitly requested, so the application already knows the answer. When linking statically, using gzdirect() will include all of the zlib code for gzip file reading and decompression, which may not be desired.) */ ZEXTERN int ZEXPORT gzclose OF((gzFile file)); /* Flushes all pending output if necessary, closes the compressed file and deallocates the (de)compression state. Note that once file is closed, you cannot call gzerror with file, since its structures have been deallocated. gzclose must not be called more than once on the same file, just as free must not be called more than once on the same allocation. gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the last read ended in the middle of a gzip stream, or Z_OK on success. */ ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); /* Same as gzclose(), but gzclose_r() is only for use when reading, and gzclose_w() is only for use when writing or appending. The advantage to using these instead of gzclose() is that they avoid linking in zlib compression or decompression code that is not used when only reading or only writing respectively. If gzclose() is used, then both compression and decompression code will be included the application when linking to a static zlib library. */ ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); /* Returns the error message for the last error which occurred on the given compressed file. errnum is set to zlib error number. If an error occurred in the file system and not in the compression library, errnum is set to Z_ERRNO and the application may consult errno to get the exact error code. The application must not modify the returned string. Future calls to this function may invalidate the previously returned string. If file is closed, then the string previously returned by gzerror will no longer be available. gzerror() should be used to distinguish errors from end-of-file for those functions above that do not distinguish those cases in their return values. */ ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); /* Clears the error and end-of-file flags for file. This is analogous to the clearerr() function in stdio. This is useful for continuing to read a gzip file that is being written concurrently. */ #endif /* !Z_SOLO */ /* checksum functions */ /* These functions are not related to compression but are exported anyway because they might be useful in applications using the compression library. */ ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); /* Update a running Adler-32 checksum with the bytes buf[0..len-1] and return the updated checksum. If buf is Z_NULL, this function returns the required initial value for the checksum. An Adler-32 checksum is almost as reliable as a CRC-32 but can be computed much faster. Usage example: uLong adler = adler32(0L, Z_NULL, 0); while (read_buffer(buffer, length) != EOF) { adler = adler32(adler, buffer, length); } if (adler != original_adler) error(); */ ZEXTERN uLong ZEXPORT adler32_z OF((uLong adler, const Bytef *buf, z_size_t len)); /* Same as adler32(), but with a size_t length. */ /* ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, z_off_t len2)); Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. Note that the z_off_t type (like off_t) is a signed integer. If len2 is negative, the result has no meaning or utility. */ ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); /* Update a running CRC-32 with the bytes buf[0..len-1] and return the updated CRC-32. If buf is Z_NULL, this function returns the required initial value for the crc. Pre- and post-conditioning (one's complement) is performed within this function so it shouldn't be done by the application. Usage example: uLong crc = crc32(0L, Z_NULL, 0); while (read_buffer(buffer, length) != EOF) { crc = crc32(crc, buffer, length); } if (crc != original_crc) error(); */ #ifndef Z_FREETYPE ZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf, z_size_t len)); /* Same as crc32(), but with a size_t length. */ /* ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); Combine two CRC-32 check values into one. For two sequences of bytes, seq1 and seq2 with lengths len1 and len2, CRC-32 check values were calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and len2. */ /* various hacks, don't look :) */ /* deflateInit and inflateInit are macros to allow checking the zlib version * and the compiler's view of z_stream: */ ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, const char *version, int stream_size)); ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, const char *version, int stream_size)); ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, int windowBits, int memLevel, int strategy, const char *version, int stream_size)); ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, const char *version, int stream_size)); ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, unsigned char FAR *window, const char *version, int stream_size)); #ifdef Z_PREFIX_SET # define z_deflateInit(strm, level) \ deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) # define z_inflateInit(strm) \ inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) # define z_deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) # define z_inflateInit2(strm, windowBits) \ inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ (int)sizeof(z_stream)) # define z_inflateBackInit(strm, windowBits, window) \ inflateBackInit_((strm), (windowBits), (window), \ ZLIB_VERSION, (int)sizeof(z_stream)) #else # define deflateInit(strm, level) \ deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) # define inflateInit(strm) \ inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) # define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) # define inflateInit2(strm, windowBits) \ inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ (int)sizeof(z_stream)) # define inflateBackInit(strm, windowBits, window) \ inflateBackInit_((strm), (windowBits), (window), \ ZLIB_VERSION, (int)sizeof(z_stream)) #endif #else /* Z_FREETYPE */ ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, const char *version, int stream_size)); # define inflateInit2(strm, windowBits) \ inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ (int)sizeof(z_stream)) #endif /* Z_FREETYPE */ #ifndef Z_SOLO /* gzgetc() macro and its supporting function and exposed data structure. Note * that the real internal state is much larger than the exposed structure. * This abbreviated structure exposes just enough for the gzgetc() macro. The * user should not mess with these exposed elements, since their names or * behavior could change in the future, perhaps even capriciously. They can * only be used by the gzgetc() macro. You have been warned. */ struct gzFile_s { unsigned have; unsigned char *next; z_off64_t pos; }; ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ #ifdef Z_PREFIX_SET # undef z_gzgetc # define z_gzgetc(g) \ ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g)) #else # define gzgetc(g) \ ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g)) #endif /* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if * both are true, the application gets the *64 functions, and the regular * functions are changed to 64 bits) -- in case these are set on systems * without large file support, _LFS64_LARGEFILE must also be true */ #ifdef Z_LARGE64 ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); #endif #if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) # ifdef Z_PREFIX_SET # define z_gzopen z_gzopen64 # define z_gzseek z_gzseek64 # define z_gztell z_gztell64 # define z_gzoffset z_gzoffset64 # define z_adler32_combine z_adler32_combine64 # define z_crc32_combine z_crc32_combine64 # else # define gzopen gzopen64 # define gzseek gzseek64 # define gztell gztell64 # define gzoffset gzoffset64 # define adler32_combine adler32_combine64 # define crc32_combine crc32_combine64 # endif # ifndef Z_LARGE64 ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); # endif #else ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); #endif #else /* Z_SOLO */ #ifndef Z_FREETYPE ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); #endif #endif /* !Z_SOLO */ /* undocumented functions */ #ifndef Z_FREETYPE ZEXTERN const char * ZEXPORT zError OF((int)); ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); ZEXTERN int ZEXPORT inflateValidate OF((z_streamp, int)); ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF ((z_streamp)); ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); #if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(Z_SOLO) ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, const char *mode)); #endif #if defined(STDC) || defined(Z_HAVE_STDARG_H) # ifndef Z_SOLO ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, const char *format, va_list va)); # endif #endif #endif /* !Z_FREETYPE */ #ifdef __cplusplus } #endif #endif /* ZLIB_H */ |
Changes to jni/freetype/src/gzip/zutil.c.
1 | /* zutil.c -- target dependent utility functions for the compression library | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > | > > > > > > | > > > > > > > > > > > | | | | | | | | | | | > | > | > | | < | 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 | /* zutil.c -- target dependent utility functions for the compression library * Copyright (C) 1995-2017 Jean-loup Gailly * For conditions of distribution and use, see copyright notice in zlib.h */ /* @(#) $Id$ */ #include "zutil.h" #ifndef Z_SOLO # include "gzguts.h" #endif #ifdef Z_FREETYPE ZEXTERN #endif z_const char * const z_errmsg[10] = { (z_const char *)"need dictionary", /* Z_NEED_DICT 2 */ (z_const char *)"stream end", /* Z_STREAM_END 1 */ (z_const char *)"", /* Z_OK 0 */ (z_const char *)"file error", /* Z_ERRNO (-1) */ (z_const char *)"stream error", /* Z_STREAM_ERROR (-2) */ (z_const char *)"data error", /* Z_DATA_ERROR (-3) */ (z_const char *)"insufficient memory", /* Z_MEM_ERROR (-4) */ (z_const char *)"buffer error", /* Z_BUF_ERROR (-5) */ (z_const char *)"incompatible version",/* Z_VERSION_ERROR (-6) */ (z_const char *)"" }; const char * ZEXPORT zlibVersion() { return ZLIB_VERSION; } uLong ZEXPORT zlibCompileFlags() { uLong flags; flags = 0; switch ((int)(sizeof(uInt))) { case 2: break; case 4: flags += 1; break; case 8: flags += 2; break; default: flags += 3; } switch ((int)(sizeof(uLong))) { case 2: break; case 4: flags += 1 << 2; break; case 8: flags += 2 << 2; break; default: flags += 3 << 2; } switch ((int)(sizeof(voidpf))) { case 2: break; case 4: flags += 1 << 4; break; case 8: flags += 2 << 4; break; default: flags += 3 << 4; } switch ((int)(sizeof(z_off_t))) { case 2: break; case 4: flags += 1 << 6; break; case 8: flags += 2 << 6; break; default: flags += 3 << 6; } #ifdef ZLIB_DEBUG flags += 1 << 8; #endif #if defined(ASMV) || defined(ASMINF) flags += 1 << 9; #endif #ifdef ZLIB_WINAPI flags += 1 << 10; #endif #ifdef BUILDFIXED flags += 1 << 12; #endif #ifdef DYNAMIC_CRC_TABLE flags += 1 << 13; #endif #ifdef NO_GZCOMPRESS flags += 1L << 16; #endif #ifdef NO_GZIP flags += 1L << 17; #endif #ifdef PKZIP_BUG_WORKAROUND flags += 1L << 20; #endif #ifdef FASTEST flags += 1L << 21; #endif #if defined(STDC) || defined(Z_HAVE_STDARG_H) # ifdef NO_vsnprintf flags += 1L << 25; # ifdef HAS_vsprintf_void flags += 1L << 26; # endif # else # ifdef HAS_vsnprintf_void flags += 1L << 26; # endif # endif #else flags += 1L << 24; # ifdef NO_snprintf flags += 1L << 25; # ifdef HAS_sprintf_void flags += 1L << 26; # endif # else # ifdef HAS_snprintf_void flags += 1L << 26; # endif # endif #endif return flags; } #ifdef ZLIB_DEBUG #include <stdlib.h> # ifndef verbose # define verbose 0 # endif int ZLIB_INTERNAL z_verbose = verbose; void ZLIB_INTERNAL z_error ( char *m) { fprintf(stderr, "%s\n", m); exit(1); } #endif /* exported to allow conversion of error code to string for compress() and * uncompress() */ const char * ZEXPORT zError( int err) { return ERR_MSG(err); } #if defined(_WIN32_WCE) /* The Microsoft C Run-Time Library for Windows CE doesn't have * errno. We define it as a global variable to simplify porting. * Its value is always 0 and should not be used. */ int errno = 0; #endif #ifndef HAVE_MEMCPY void ZLIB_INTERNAL zmemcpy( Bytef* dest, const Bytef* source, uInt len) { if (len == 0) return; do { *dest++ = *source++; /* ??? to be unrolled */ } while (--len != 0); } int ZLIB_INTERNAL zmemcmp( const Bytef* s1, const Bytef* s2, uInt len) { uInt j; for (j = 0; j < len; j++) { if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1; } return 0; } void ZLIB_INTERNAL zmemzero( Bytef* dest, uInt len) { if (len == 0) return; do { *dest++ = 0; /* ??? to be unrolled */ } while (--len != 0); } #endif #ifndef Z_SOLO #ifdef SYS16BIT #ifdef __TURBOC__ /* Turbo C in 16-bit mode */ # define MY_ZCALLOC /* Turbo C malloc() does not allow dynamic allocation of 64K bytes * and farmalloc(64K) returns a pointer with an offset of 8, so we * must fix the pointer. Warning: the pointer must be put back to its * original form in order to free it, use zcfree(). */ |
︙ | ︙ | |||
76 77 78 79 80 81 82 | /* This table is used to remember the original form of pointers * to large buffers (64K). Such pointers are normalized with a zero offset. * Since MSDOS is not a preemptive multitasking OS, this table is not * protected from concurrent access. This hack doesn't work anyway on * a protected system like OS/2. Use Microsoft C instead. */ | | | > > | > > > < | | | | | | | | > > > | | | | | | | > | | | | > | < > > | 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 | /* This table is used to remember the original form of pointers * to large buffers (64K). Such pointers are normalized with a zero offset. * Since MSDOS is not a preemptive multitasking OS, this table is not * protected from concurrent access. This hack doesn't work anyway on * a protected system like OS/2. Use Microsoft C instead. */ voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size) { voidpf buf; ulg bsize = (ulg)items*size; (void)opaque; /* If we allocate less than 65520 bytes, we assume that farmalloc * will return a usable pointer which doesn't have to be normalized. */ if (bsize < 65520L) { buf = farmalloc(bsize); if (*(ush*)&buf != 0) return buf; } else { buf = farmalloc(bsize + 16L); } if (buf == NULL || next_ptr >= MAX_PTR) return NULL; table[next_ptr].org_ptr = buf; /* Normalize the pointer to seg:0 */ *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4; *(ush*)&buf = 0; table[next_ptr++].new_ptr = buf; return buf; } void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr) { int n; (void)opaque; if (*(ush*)&ptr != 0) { /* object < 64K */ farfree(ptr); return; } /* Find the original pointer */ for (n = 0; n < next_ptr; n++) { if (ptr != table[n].new_ptr) continue; farfree(table[n].org_ptr); while (++n < next_ptr) { table[n-1] = table[n]; } next_ptr--; return; } Assert(0, "zcfree: ptr not found"); } #endif /* __TURBOC__ */ #ifdef M_I86 /* Microsoft C in 16-bit mode */ # define MY_ZCALLOC #if (!defined(_MSC_VER) || (_MSC_VER <= 600)) # define _halloc halloc # define _hfree hfree #endif voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, uInt items, uInt size) { (void)opaque; return _halloc((long)items, size); } void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr) { (void)opaque; _hfree(ptr); } #endif /* M_I86 */ #endif /* SYS16BIT */ #ifndef MY_ZCALLOC /* Any system without a special alloc function */ #ifndef STDC extern voidp malloc OF((uInt size)); extern voidp calloc OF((uInt items, uInt size)); extern void free OF((voidpf ptr)); #endif voidpf ZLIB_INTERNAL zcalloc ( voidpf opaque, unsigned items, unsigned size) { (void)opaque; return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) : (voidpf)calloc(items, size); } void ZLIB_INTERNAL zcfree ( voidpf opaque, voidpf ptr) { (void)opaque; free(ptr); } #endif /* MY_ZCALLOC */ #endif /* !Z_SOLO */ |
Changes to jni/freetype/src/gzip/zutil.h.
1 | /* zutil.h -- internal interface and configuration of the compression library | | | | > > > > > > | > | > > | | < > | > > | > > > > > > | | 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 | /* zutil.h -- internal interface and configuration of the compression library * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ /* WARNING: this file should *not* be used by applications. It is part of the implementation of the compression library and is subject to change. Applications should only use zlib.h. */ /* @(#) $Id$ */ #ifndef ZUTIL_H #define ZUTIL_H #ifdef HAVE_HIDDEN # define ZLIB_INTERNAL __attribute__((visibility ("hidden"))) #else # define ZLIB_INTERNAL #endif #include "zlib.h" #if defined(STDC) && !defined(Z_SOLO) # if !(defined(_WIN32_WCE) && defined(_MSC_VER)) # include <stddef.h> # endif # include <string.h> # include <stdlib.h> #endif #ifdef Z_SOLO # ifndef Z_FREETYPE typedef long ptrdiff_t; /* guess -- will be caught if guess is wrong */ # endif #endif #ifndef local # define local static #endif /* since "static" is used to mean two completely different things in C, we define "local" for the non-static meaning of "static", for readability (compile with -Dlocal if your debugger can't find static symbols) */ typedef unsigned char uch; typedef uch FAR uchf; typedef unsigned short ush; typedef ush FAR ushf; typedef unsigned long ulg; #if 0 extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ #endif /* (size given to avoid silly warnings with Visual C++) */ #define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)] #define ERR_RETURN(strm,err) \ return (strm->msg = ERR_MSG(err), (err)) /* To be used only when the state is known to be valid */ /* common constants */ #ifndef DEF_WBITS # define DEF_WBITS MAX_WBITS #endif |
︙ | ︙ | |||
65 66 67 68 69 70 71 | #define MAX_MATCH 258 /* The minimum and maximum match lengths */ #define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */ /* target dependencies */ | | > | | | | | | | | | > > | | < > | > > > > | > | > | > > | > > | | > > | < < < | > | | | | | > | > > > > | | | > > > > > > > > | > > > > > > > | > > > > > > > > > > > > > > > > > | | | < < < < < < < | | 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 | #define MAX_MATCH 258 /* The minimum and maximum match lengths */ #define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */ /* target dependencies */ #if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32)) # define OS_CODE 0x00 # ifndef Z_SOLO # if defined(__TURBOC__) || defined(__BORLANDC__) # if (__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__)) /* Allow compilation with ANSI keywords only enabled */ void _Cdecl farfree( void *block ); void *_Cdecl farmalloc( unsigned long nbytes ); # else # include <alloc.h> # endif # else /* MSC or DJGPP */ # include <malloc.h> # endif # endif #endif #ifdef AMIGA # define OS_CODE 1 #endif #if defined(VAXC) || defined(VMS) # define OS_CODE 2 # define F_OPEN(name, mode) \ fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512") #endif #ifdef __370__ # if __TARGET_LIB__ < 0x20000000 # define OS_CODE 4 # elif __TARGET_LIB__ < 0x40000000 # define OS_CODE 11 # else # define OS_CODE 8 # endif #endif #if defined(ATARI) || defined(atarist) # define OS_CODE 5 #endif #ifdef OS2 # define OS_CODE 6 # if defined(M_I86) && !defined(Z_SOLO) # include <malloc.h> # endif #endif #if defined(MACOS) || defined(TARGET_OS_MAC) # define OS_CODE 7 # ifndef Z_SOLO # if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os # include <unix.h> /* for fdopen */ # else # ifndef fdopen # define fdopen(fd,mode) NULL /* No fdopen() */ # endif # endif # endif #endif #ifdef __acorn # define OS_CODE 13 #endif #if defined(WIN32) && !defined(__CYGWIN__) # define OS_CODE 10 #endif #ifdef _BEOS_ # define OS_CODE 16 #endif #ifdef __TOS_OS400__ # define OS_CODE 18 #endif #ifdef __APPLE__ # define OS_CODE 19 #endif #if defined(_BEOS_) || defined(RISCOS) # define fdopen(fd,mode) NULL /* No fdopen() */ #endif #if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX # if defined(_WIN32_WCE) # define fdopen(fd,mode) NULL /* No fdopen() */ # ifndef _PTRDIFF_T_DEFINED typedef int ptrdiff_t; # define _PTRDIFF_T_DEFINED # endif # else # define fdopen(fd,type) _fdopen(fd,type) # endif #endif #if defined(__BORLANDC__) && !defined(MSDOS) #pragma warn -8004 #pragma warn -8008 #pragma warn -8066 #endif #ifndef Z_FREETYPE /* provide prototypes for these when building zlib without LFS */ #if !defined(_WIN32) && \ (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0) ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); #endif #endif /* !Z_FREETYPE */ /* common defaults */ #ifndef OS_CODE # define OS_CODE 3 /* assume Unix */ #endif #ifndef F_OPEN # define F_OPEN(name, mode) fopen((name), (mode)) #endif /* functions */ #if defined(pyr) || defined(Z_SOLO) # define NO_MEMCPY #endif #if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__) /* Use our own functions for small and medium model with MSC <= 5.0. * You may have to use the same strategy for Borland C (untested). * The __SC__ check is for Symantec. */ |
︙ | ︙ | |||
172 173 174 175 176 177 178 | # define zmemzero(dest, len) _fmemset(dest, 0, len) # else # define zmemcpy ft_memcpy # define zmemcmp ft_memcmp # define zmemzero(dest, len) ft_memset(dest, 0, len) # endif #else | | | | | | | | < < | > | > > > > > | | 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 | # define zmemzero(dest, len) _fmemset(dest, 0, len) # else # define zmemcpy ft_memcpy # define zmemcmp ft_memcmp # define zmemzero(dest, len) ft_memset(dest, 0, len) # endif #else void ZLIB_INTERNAL zmemcpy OF((Bytef* dest, const Bytef* source, uInt len)); int ZLIB_INTERNAL zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len)); void ZLIB_INTERNAL zmemzero OF((Bytef* dest, uInt len)); #endif /* Diagnostic functions */ #ifdef ZLIB_DEBUG # include <stdio.h> extern int ZLIB_INTERNAL z_verbose; extern void ZLIB_INTERNAL z_error OF((char *m)); # define Assert(cond,msg) {if(!(cond)) z_error(msg);} # define Trace(x) {if (z_verbose>=0) fprintf x ;} # define Tracev(x) {if (z_verbose>0) fprintf x ;} # define Tracevv(x) {if (z_verbose>1) fprintf x ;} # define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;} # define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;} #else # define Assert(cond,msg) # define Trace(x) # define Tracev(x) # define Tracevv(x) # define Tracec(c,x) # define Tracecv(c,x) #endif #ifndef Z_SOLO ZEXTERN voidpf ZLIB_INTERNAL zcalloc OF((voidpf opaque, unsigned items, unsigned size)); ZEXTERN void ZLIB_INTERNAL zcfree OF((voidpf opaque, voidpf ptr)); #endif #define ZALLOC(strm, items, size) \ (*((strm)->zalloc))((strm)->opaque, (items), (size)) #define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr)) #define TRY_FREE(s, p) {if (p) ZFREE(s, p);} /* Reverse the bytes in a 32-bit value */ #define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \ (((q) & 0xff00) << 8) + (((q) & 0xff) << 24)) #endif /* ZUTIL_H */ |
Changes to jni/freetype/src/lzw/ftlzw.c.
1 2 3 4 5 6 7 8 9 10 | /**************************************************************************** * * ftlzw.c * * FreeType support for .Z compressed files. * * This optional component relies on NetBSD's zopen(). It should mainly * be used to parse compressed PCF fonts, as found with many X11 server * distributions. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /**************************************************************************** * * ftlzw.c * * FreeType support for .Z compressed files. * * This optional component relies on NetBSD's zopen(). It should mainly * be used to parse compressed PCF fonts, as found with many X11 server * distributions. * * Copyright (C) 2004-2022 by * Albert Chin-A-Young. * * based on code in `src/gzip/ftgzip.c' * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ | |||
365 366 367 368 369 370 371 | error = ft_lzw_check_header( source ); if ( error ) goto Exit; FT_ZERO( stream ); stream->memory = memory; | | | 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 | error = ft_lzw_check_header( source ); if ( error ) goto Exit; FT_ZERO( stream ); stream->memory = memory; if ( !FT_QNEW( zip ) ) { error = ft_lzw_file_init( zip, stream, source ); if ( error ) { FT_FREE( zip ); goto Exit; } |
︙ | ︙ |
Changes to jni/freetype/src/lzw/ftzopen.c.
1 2 3 4 5 6 7 8 9 10 | /**************************************************************************** * * ftzopen.c * * FreeType support for .Z compressed files. * * This optional component relies on NetBSD's zopen(). It should mainly * be used to parse compressed PCF fonts, as found with many X11 server * distributions. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /**************************************************************************** * * ftzopen.c * * FreeType support for .Z compressed files. * * This optional component relies on NetBSD's zopen(). It should mainly * be used to parse compressed PCF fonts, as found with many X11 server * distributions. * * Copyright (C) 2005-2022 by * David Turner. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/lzw/ftzopen.h.
1 2 3 4 5 6 7 8 9 10 | /**************************************************************************** * * ftzopen.h * * FreeType support for .Z compressed files. * * This optional component relies on NetBSD's zopen(). It should mainly * be used to parse compressed PCF fonts, as found with many X11 server * distributions. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /**************************************************************************** * * ftzopen.h * * FreeType support for .Z compressed files. * * This optional component relies on NetBSD's zopen(). It should mainly * be used to parse compressed PCF fonts, as found with many X11 server * distributions. * * Copyright (C) 2005-2022 by * David Turner. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/lzw/rules.mk.
1 2 3 4 5 | # # FreeType 2 LZW support configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 LZW support configuration rules # # Copyright (C) 2004-2022 by # Albert Chin-A-Young. # # based on `src/lzw/rules.mk' # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/module.mk.
1 2 3 4 5 | # # FreeType 2 otvalid module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 otvalid module definition # # Copyright (C) 2004-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/otvalid.c.
1 2 3 4 5 6 | /**************************************************************************** * * otvalid.c * * FreeType validator for OpenType tables (body only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * otvalid.c * * FreeType validator for OpenType tables (body only). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/otvalid.h.
1 2 3 4 5 6 | /**************************************************************************** * * otvalid.h * * OpenType table validation (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * otvalid.h * * OpenType table validation (specification only). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/otvbase.c.
1 2 3 4 5 6 | /**************************************************************************** * * otvbase.c * * OpenType BASE table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * otvbase.c * * OpenType BASE table validation (body). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/otvcommn.c.
1 2 3 4 5 6 | /**************************************************************************** * * otvcommn.c * * OpenType common tables validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * otvcommn.c * * OpenType common tables validation (body). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/otvcommn.h.
1 2 3 4 5 6 | /**************************************************************************** * * otvcommn.h * * OpenType common tables validation (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * otvcommn.h * * OpenType common tables validation (specification). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/otverror.h.
1 2 3 4 5 6 | /**************************************************************************** * * otverror.h * * OpenType validation module error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * otverror.h * * OpenType validation module error codes (specification only). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/otvgdef.c.
1 2 3 4 5 6 | /**************************************************************************** * * otvgdef.c * * OpenType GDEF table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * otvgdef.c * * OpenType GDEF table validation (body). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/otvgpos.c.
1 2 3 4 5 6 | /**************************************************************************** * * otvgpos.c * * OpenType GPOS table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * otvgpos.c * * OpenType GPOS table validation (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/otvgpos.h.
1 2 3 4 5 6 | /**************************************************************************** * * otvgpos.h * * OpenType GPOS table validator (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * otvgpos.h * * OpenType GPOS table validator (specification). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/otvgsub.c.
1 2 3 4 5 6 | /**************************************************************************** * * otvgsub.c * * OpenType GSUB table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * otvgsub.c * * OpenType GSUB table validation (body). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/otvjstf.c.
1 2 3 4 5 6 | /**************************************************************************** * * otvjstf.c * * OpenType JSTF table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * otvjstf.c * * OpenType JSTF table validation (body). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/otvmath.c.
1 2 3 4 5 6 | /**************************************************************************** * * otvmath.c * * OpenType MATH table validation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * otvmath.c * * OpenType MATH table validation (body). * * Copyright (C) 2007-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * Written by George Williams. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/otvmod.c.
1 2 3 4 5 6 | /**************************************************************************** * * otvmod.c * * FreeType's OpenType validation module implementation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * otvmod.c * * FreeType's OpenType validation module implementation (body). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/otvmod.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * otvmod.h * * FreeType's OpenType validation module implementation * (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * otvmod.h * * FreeType's OpenType validation module implementation * (specification). * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/otvalid/rules.mk.
1 2 3 4 5 | # # FreeType 2 OpenType validation driver configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 OpenType validation driver configuration rules # # Copyright (C) 2004-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/pcf/pcfread.c.
︙ | ︙ | |||
1030 1031 1032 1033 1034 1035 1036 | /* sanity checks; we limit numbers of rows and columns to 256 */ if ( enc->firstCol > enc->lastCol || enc->lastCol > 0xFF || enc->firstRow > enc->lastRow || enc->lastRow > 0xFF ) return FT_THROW( Invalid_Table ); | < < < < < < < < < < > > > > > > > | 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 | /* sanity checks; we limit numbers of rows and columns to 256 */ if ( enc->firstCol > enc->lastCol || enc->lastCol > 0xFF || enc->firstRow > enc->lastRow || enc->lastRow > 0xFF ) return FT_THROW( Invalid_Table ); FT_TRACE5(( "\n" )); defaultCharRow = enc->defaultChar >> 8; defaultCharCol = enc->defaultChar & 0xFF; /* validate default character */ if ( defaultCharRow < enc->firstRow || defaultCharRow > enc->lastRow || defaultCharCol < enc->firstCol || defaultCharCol > enc->lastCol ) { enc->defaultChar = enc->firstRow * 256U + enc->firstCol; FT_TRACE0(( "pcf_get_encodings:" " Invalid default character set to %u\n", enc->defaultChar )); defaultCharRow = enc->firstRow; defaultCharCol = enc->firstCol; } nencoding = (FT_ULong)( enc->lastCol - enc->firstCol + 1 ) * (FT_ULong)( enc->lastRow - enc->firstRow + 1 ); error = FT_Stream_EnterFrame( stream, 2 * nencoding ); if ( error ) goto Bail; /* * FreeType mandates that glyph index 0 is the `undefined glyph', which * PCF calls the `default character'. However, FreeType needs glyph * index 0 to be used for the undefined glyph only, which is is not the * case for PCF. For this reason, we add one slot for glyph index 0 and * simply copy the default character to it. |
︙ | ︙ | |||
1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 | " setting it to the first glyph of the font\n" )); defaultCharEncodingOffset = 1; } } /* copy metrics of default character to index 0 */ face->metrics[0] = face->metrics[defaultCharEncodingOffset]; /* now loop over all values */ offset = enc->offset; for ( i = enc->firstRow; i <= enc->lastRow; i++ ) { for ( j = enc->firstCol; j <= enc->lastCol; j++ ) { | > > > | 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 | " setting it to the first glyph of the font\n" )); defaultCharEncodingOffset = 1; } } /* copy metrics of default character to index 0 */ face->metrics[0] = face->metrics[defaultCharEncodingOffset]; if ( FT_QNEW_ARRAY( enc->offset, nencoding ) ) goto Bail; /* now loop over all values */ offset = enc->offset; for ( i = enc->firstRow; i <= enc->lastRow; i++ ) { for ( j = enc->firstCol; j <= enc->lastCol; j++ ) { |
︙ | ︙ | |||
1127 1128 1129 1130 1131 1132 1133 | /* everything is off by 1 due to the artificial glyph 0 */ *offset++ = encodingOffset == 0xFFFF ? 0xFFFF : encodingOffset + 1; } } FT_Stream_ExitFrame( stream ); | < < < < < | 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 | /* everything is off by 1 due to the artificial glyph 0 */ *offset++ = encodingOffset == 0xFFFF ? 0xFFFF : encodingOffset + 1; } } FT_Stream_ExitFrame( stream ); Bail: return error; } static const FT_Frame_Field pcf_accel_header[] = |
︙ | ︙ |
Changes to jni/freetype/src/pfr/module.mk.
1 2 3 4 5 | # # FreeType 2 PFR module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 PFR module definition # # Copyright (C) 2002-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/pfr/pfr.c.
1 2 3 4 5 6 | /**************************************************************************** * * pfr.c * * FreeType PFR driver component. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pfr.c * * FreeType PFR driver component. * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pfr/pfrcmap.c.
1 2 3 4 5 6 | /**************************************************************************** * * pfrcmap.c * * FreeType PFR cmap handling (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pfrcmap.c * * FreeType PFR cmap handling (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pfr/pfrcmap.h.
1 2 3 4 5 6 | /**************************************************************************** * * pfrcmap.h * * FreeType PFR cmap handling (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pfrcmap.h * * FreeType PFR cmap handling (specification). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pfr/pfrdrivr.c.
1 2 3 4 5 6 | /**************************************************************************** * * pfrdrivr.c * * FreeType PFR driver interface (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pfrdrivr.c * * FreeType PFR driver interface (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pfr/pfrdrivr.h.
1 2 3 4 5 6 | /**************************************************************************** * * pfrdrivr.h * * High-level Type PFR driver interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pfrdrivr.h * * High-level Type PFR driver interface (specification). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pfr/pfrerror.h.
1 2 3 4 5 6 | /**************************************************************************** * * pfrerror.h * * PFR error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pfrerror.h * * PFR error codes (specification only). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pfr/pfrgload.c.
1 2 3 4 5 6 | /**************************************************************************** * * pfrgload.c * * FreeType PFR glyph loader (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pfrgload.c * * FreeType PFR glyph loader (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pfr/pfrgload.h.
1 2 3 4 5 6 | /**************************************************************************** * * pfrgload.h * * FreeType PFR glyph loader (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pfrgload.h * * FreeType PFR glyph loader (specification). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pfr/pfrload.c.
1 2 3 4 5 6 | /**************************************************************************** * * pfrload.c * * FreeType PFR loader (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pfrload.c * * FreeType PFR loader (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
989 990 991 992 993 994 995 | Size += 1; if ( flags & PFR_PHY_3BYTE_GPS_OFFSET ) Size += 1; PFR_CHECK_SIZE( count * Size ); | | | 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 | Size += 1; if ( flags & PFR_PHY_3BYTE_GPS_OFFSET ) Size += 1; PFR_CHECK_SIZE( count * Size ); if ( FT_QNEW_ARRAY( phy_font->chars, count ) ) goto Fail; for ( n = 0; n < count; n++ ) { PFR_Char cur = &phy_font->chars[n]; |
︙ | ︙ |
Changes to jni/freetype/src/pfr/pfrload.h.
1 2 3 4 5 6 | /**************************************************************************** * * pfrload.h * * FreeType PFR loader (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pfrload.h * * FreeType PFR loader (specification). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pfr/pfrobjs.c.
1 2 3 4 5 6 | /**************************************************************************** * * pfrobjs.c * * FreeType PFR object methods (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pfrobjs.c * * FreeType PFR object methods (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pfr/pfrobjs.h.
1 2 3 4 5 6 | /**************************************************************************** * * pfrobjs.h * * FreeType PFR object methods (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pfrobjs.h * * FreeType PFR object methods (specification). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pfr/pfrsbit.c.
1 2 3 4 5 6 | /**************************************************************************** * * pfrsbit.c * * FreeType PFR bitmap loader (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pfrsbit.c * * FreeType PFR bitmap loader (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pfr/pfrsbit.h.
1 2 3 4 5 6 | /**************************************************************************** * * pfrsbit.h * * FreeType PFR bitmap loader (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pfrsbit.h * * FreeType PFR bitmap loader (specification). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pfr/pfrtypes.h.
1 2 3 4 5 6 | /**************************************************************************** * * pfrtypes.h * * FreeType PFR data structures (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pfrtypes.h * * FreeType PFR data structures (specification only). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pfr/rules.mk.
1 2 3 4 5 | # # FreeType 2 PFR driver configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 PFR driver configuration rules # # Copyright (C) 2002-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/afmparse.c.
1 2 3 4 5 6 | /**************************************************************************** * * afmparse.c * * AFM parser (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afmparse.c * * AFM parser (body). * * Copyright (C) 2006-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/afmparse.h.
1 2 3 4 5 6 | /**************************************************************************** * * afmparse.h * * AFM parser (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * afmparse.h * * AFM parser (specification). * * Copyright (C) 2006-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/cffdecode.c.
1 2 3 4 5 6 | /**************************************************************************** * * cffdecode.c * * PostScript CFF (Type 2) decoding routines (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cffdecode.c * * PostScript CFF (Type 2) decoding routines (body). * * Copyright (C) 2017-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/cffdecode.h.
1 2 3 4 5 6 | /**************************************************************************** * * cffdecode.h * * PostScript CFF (Type 2) decoding routines (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * cffdecode.h * * PostScript CFF (Type 2) decoding routines (specification). * * Copyright (C) 2017-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/module.mk.
1 2 3 4 5 | # # FreeType 2 PSaux module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 PSaux module definition # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/psaux.c.
1 2 3 4 5 6 | /**************************************************************************** * * psaux.c * * FreeType auxiliary PostScript driver component (body only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * psaux.c * * FreeType auxiliary PostScript driver component (body only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/psauxerr.h.
1 2 3 4 5 6 | /**************************************************************************** * * psauxerr.h * * PS auxiliary module error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * psauxerr.h * * PS auxiliary module error codes (specification only). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/psauxmod.c.
1 2 3 4 5 6 | /**************************************************************************** * * psauxmod.c * * FreeType auxiliary PostScript module implementation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * psauxmod.c * * FreeType auxiliary PostScript module implementation (body). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/psauxmod.h.
1 2 3 4 5 6 | /**************************************************************************** * * psauxmod.h * * FreeType auxiliary PostScript module implementation (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * psauxmod.h * * FreeType auxiliary PostScript module implementation (specification). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/psconv.c.
1 2 3 4 5 6 | /**************************************************************************** * * psconv.c * * Some convenience conversions (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * psconv.c * * Some convenience conversions (body). * * Copyright (C) 2006-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/psconv.h.
1 2 3 4 5 6 | /**************************************************************************** * * psconv.h * * Some convenience conversions (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * psconv.h * * Some convenience conversions (specification). * * Copyright (C) 2006-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/psintrp.c.
︙ | ︙ | |||
1896 1897 1898 1899 1900 1901 1902 | case 19: /* <idx> 1 19 callothersubr */ /* ==> replace elements starting from index */ /* cvi( <idx> ) of BuildCharArray with */ /* WeightVector */ { FT_UInt idx; | | > | | > | | | | | 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 | case 19: /* <idx> 1 19 callothersubr */ /* ==> replace elements starting from index */ /* cvi( <idx> ) of BuildCharArray with */ /* WeightVector */ { FT_UInt idx; PS_Blend blend = decoder->blend; FT_UInt len_buildchar = decoder->len_buildchar; if ( arg_cnt != 1 || !blend ) goto Unexpected_OtherSubr; idx = (FT_UInt)cf2_stack_popInt( opStack ); if ( len_buildchar < blend->num_designs || len_buildchar - blend->num_designs < idx ) goto Unexpected_OtherSubr; if ( decoder->buildchar && blend->weight_vector ) ft_memcpy( &decoder->buildchar[idx], blend->weight_vector, blend->num_designs * sizeof ( blend->weight_vector[0] ) ); } break; case 20: /* <arg1> <arg2> 2 20 callothersubr pop */ /* ==> push <arg1> + <arg2> onto T1 stack */ { |
︙ | ︙ |
Changes to jni/freetype/src/psaux/psobjs.c.
1 2 3 4 5 6 | /**************************************************************************** * * psobjs.c * * Auxiliary functions for PostScript fonts (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * psobjs.c * * Auxiliary functions for PostScript fonts (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
94 95 96 97 98 99 100 101 | Exit: if ( error ) FT_FREE( table->elements ); return error; } | < < < < < < < < < < < < < < < < < | | | | < < | | < | > > | | > > > | > | 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 | Exit: if ( error ) FT_FREE( table->elements ); return error; } static FT_Error ps_table_realloc( PS_Table table, FT_Offset new_size ) { FT_Memory memory = table->memory; FT_Byte* old_base = table->block; FT_Error error; /* (re)allocate the base block */ if ( FT_REALLOC( table->block, table->capacity, new_size ) ) return error; /* rebase offsets if necessary */ if ( old_base && table->block != old_base ) { FT_Byte** offset = table->elements; FT_Byte** limit = offset + table->max_elems; for ( ; offset < limit; offset++ ) { if ( *offset ) *offset = table->block + ( *offset - old_base ); } } table->capacity = new_size; return FT_Err_Ok; } |
︙ | ︙ | |||
200 201 202 203 204 205 206 | { /* increase size by 25% and round up to the nearest multiple of 1024 */ new_size += ( new_size >> 2 ) + 1; new_size = FT_PAD_CEIL( new_size, 1024 ); } | | | 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 | { /* increase size by 25% and round up to the nearest multiple of 1024 */ new_size += ( new_size >> 2 ) + 1; new_size = FT_PAD_CEIL( new_size, 1024 ); } error = ps_table_realloc( table, new_size ); if ( error ) return error; if ( in_offset >= 0 ) object = table->block + in_offset; } |
︙ | ︙ | |||
230 231 232 233 234 235 236 | * @Description: * Finalizes a PS_TableRec (i.e., reallocate it to its current * cursor). * * @InOut: * table :: * The target table. | < < < < < < < | < < < < < | < < < < < < < < | 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 | * @Description: * Finalizes a PS_TableRec (i.e., reallocate it to its current * cursor). * * @InOut: * table :: * The target table. */ FT_LOCAL_DEF( void ) ps_table_done( PS_Table table ) { /* no problem if shrinking fails */ ps_table_realloc( table, table->cursor ); } FT_LOCAL_DEF( void ) ps_table_release( PS_Table table ) { FT_Memory memory = table->memory; |
︙ | ︙ | |||
1094 1095 1096 1097 1098 1099 1100 | limit--; } for ( ; count > 0; count--, idx++ ) { FT_Byte* q = (FT_Byte*)objects[idx] + field->offset; FT_Long val; | < | 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 | limit--; } for ( ; count > 0; count--, idx++ ) { FT_Byte* q = (FT_Byte*)objects[idx] + field->offset; FT_Long val; skip_spaces( &cur, limit ); switch ( type ) { case T1_FIELD_TYPE_BOOL: |
︙ | ︙ | |||
1144 1145 1146 1147 1148 1149 1150 | *(FT_Long*)q = val; } break; case T1_FIELD_TYPE_STRING: case T1_FIELD_TYPE_KEY: { | | | > | 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 | *(FT_Long*)q = val; } break; case T1_FIELD_TYPE_STRING: case T1_FIELD_TYPE_KEY: { FT_Memory memory = parser->memory; FT_UInt len = (FT_UInt)( limit - cur ); FT_String* string = NULL; if ( cur >= limit ) break; /* we allow both a string or a name */ /* for cases like /FontName (foo) def */ |
︙ | ︙ | |||
1186 1187 1188 1189 1190 1191 1192 | /* for this to work (FT_String**)q must have been */ /* initialized to NULL */ if ( *(FT_String**)q ) { FT_TRACE0(( "ps_parser_load_field: overwriting field %s\n", field->ident )); FT_FREE( *(FT_String**)q ); | < | 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 | /* for this to work (FT_String**)q must have been */ /* initialized to NULL */ if ( *(FT_String**)q ) { FT_TRACE0(( "ps_parser_load_field: overwriting field %s\n", field->ident )); FT_FREE( *(FT_String**)q ); } if ( FT_QALLOC( string, len + 1 ) ) goto Exit; FT_MEM_COPY( string, cur, len ); string[len] = 0; |
︙ | ︙ |
Changes to jni/freetype/src/psaux/psobjs.h.
1 2 3 4 5 6 | /**************************************************************************** * * psobjs.h * * Auxiliary functions for PostScript fonts (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * psobjs.h * * Auxiliary functions for PostScript fonts (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/rules.mk.
1 2 3 4 5 | # # FreeType 2 PSaux driver configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 PSaux driver configuration rules # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/t1cmap.c.
1 2 3 4 5 6 | /**************************************************************************** * * t1cmap.c * * Type 1 character map support (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1cmap.c * * Type 1 character map support (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/t1cmap.h.
1 2 3 4 5 6 | /**************************************************************************** * * t1cmap.h * * Type 1 character map support (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1cmap.h * * Type 1 character map support (specification). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/t1decode.c.
1 2 3 4 5 6 | /**************************************************************************** * * t1decode.c * * PostScript Type 1 decoding routines (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1decode.c * * PostScript Type 1 decoding routines (body). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psaux/t1decode.h.
1 2 3 4 5 6 | /**************************************************************************** * * t1decode.h * * PostScript Type 1 decoding routines (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1decode.h * * PostScript Type 1 decoding routines (specification). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pshinter/module.mk.
1 2 3 4 5 | # # FreeType 2 PSHinter module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 PSHinter module definition # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/pshinter/pshalgo.c.
1 2 3 4 5 6 | /**************************************************************************** * * pshalgo.c * * PostScript hinting algorithm (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pshalgo.c * * PostScript hinting algorithm (body). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used * modified and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
178 179 180 181 182 183 184 | FT_UNUSED( counter_masks ); count = hints->num_hints; /* allocate our tables */ | | | | | | 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | FT_UNUSED( counter_masks ); count = hints->num_hints; /* allocate our tables */ if ( FT_QNEW_ARRAY( table->sort, 2 * count ) || FT_QNEW_ARRAY( table->hints, count ) || FT_QNEW_ARRAY( table->zones, 2 * count + 1 ) ) goto Exit; table->max_hints = count; table->sort_global = FT_OFFSET( table->sort, count ); table->num_hints = 0; table->num_zones = 0; table->zone = NULL; /* initialize the `table->hints' array */ { PSH_Hint write = table->hints; |
︙ | ︙ | |||
1163 1164 1165 1166 1167 1168 1169 | /* clear all fields */ FT_ZERO( glyph ); memory = glyph->memory = globals->memory; /* allocate and setup points + contours arrays */ | | | | 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 | /* clear all fields */ FT_ZERO( glyph ); memory = glyph->memory = globals->memory; /* allocate and setup points + contours arrays */ if ( FT_QNEW_ARRAY( glyph->points, outline->n_points ) || FT_QNEW_ARRAY( glyph->contours, outline->n_contours ) ) goto Exit; glyph->num_points = (FT_UInt)outline->n_points; glyph->num_contours = (FT_UInt)outline->n_contours; { FT_UInt first = 0, next, n; |
︙ | ︙ | |||
1224 1225 1226 1227 1228 1229 1230 1231 | for ( n = 0; n < glyph->num_points; n++, point++ ) { FT_Int n_prev = (FT_Int)( point->prev - points ); FT_Int n_next = (FT_Int)( point->next - points ); FT_Pos dxi, dyi, dxo, dyo; if ( !( outline->tags[n] & FT_CURVE_TAG_ON ) ) | > | | | | | 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 | for ( n = 0; n < glyph->num_points; n++, point++ ) { FT_Int n_prev = (FT_Int)( point->prev - points ); FT_Int n_next = (FT_Int)( point->next - points ); FT_Pos dxi, dyi, dxo, dyo; point->flags = 0; if ( !( outline->tags[n] & FT_CURVE_TAG_ON ) ) psh_point_set_off( point ); dxi = vec[n].x - vec[n_prev].x; dyi = vec[n].y - vec[n_prev].y; point->dir_in = psh_compute_dir( dxi, dyi ); dxo = vec[n_next].x - vec[n].x; dyo = vec[n_next].y - vec[n].y; point->dir_out = psh_compute_dir( dxo, dyo ); /* detect smooth points */ if ( psh_point_is_off( point ) ) psh_point_set_smooth( point ); else if ( point->dir_in == point->dir_out ) { if ( point->dir_out != PSH_DIR_NONE || psh_corner_is_flat( dxi, dyi, dxo, dyo ) ) psh_point_set_smooth( point ); } } } glyph->outline = outline; glyph->globals = globals; |
︙ | ︙ | |||
1543 1544 1545 1546 1547 1548 1549 | } } /* the accepted shift for strong points in fractional pixels */ #define PSH_STRONG_THRESHOLD 32 | | > | | 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 | } } /* the accepted shift for strong points in fractional pixels */ #define PSH_STRONG_THRESHOLD 32 /* the maximum shift value in font units tuned to distinguish */ /* between stems and serifs in URW+ font collection */ #define PSH_STRONG_THRESHOLD_MAXIMUM 12 /* find strong points in a glyph */ static void psh_glyph_find_strong_points( PSH_Glyph glyph, FT_Int dimension ) { |
︙ | ︙ | |||
1793 1794 1795 1796 1797 1798 1799 | if ( num_strongs <= PSH_MAX_STRONG_INTERNAL ) strongs = strongs_0; else { FT_Error error; | | | 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 | if ( num_strongs <= PSH_MAX_STRONG_INTERNAL ) strongs = strongs_0; else { FT_Error error; if ( FT_QNEW_ARRAY( strongs, num_strongs ) ) return; } num_strongs = 0; for ( point = points; point < points_end; point++ ) { PSH_Point* insert; |
︙ | ︙ | |||
2106 2107 2108 2109 2110 2111 2112 | FT_Fixed x_scale = dim_x->scale_mult; FT_Fixed y_scale = dim_y->scale_mult; FT_Fixed old_x_scale = x_scale; FT_Fixed old_y_scale = y_scale; | | | > > | | > | 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 | FT_Fixed x_scale = dim_x->scale_mult; FT_Fixed y_scale = dim_y->scale_mult; FT_Fixed old_x_scale = x_scale; FT_Fixed old_y_scale = y_scale; FT_Fixed scaled = 0; FT_Fixed fitted = 0; FT_Bool rescale = FALSE; if ( globals->blues.normal_top.count ) { scaled = FT_MulFix( globals->blues.normal_top.zones->org_ref, y_scale ); fitted = FT_PIX_ROUND( scaled ); } if ( fitted != 0 && scaled != fitted ) { rescale = TRUE; y_scale = FT_MulDiv( y_scale, fitted, scaled ); |
︙ | ︙ |
Changes to jni/freetype/src/pshinter/pshalgo.h.
1 2 3 4 5 6 | /**************************************************************************** * * pshalgo.h * * PostScript hinting algorithm (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pshalgo.h * * PostScript hinting algorithm (specification). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pshinter/pshglob.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * pshglob.c * * PostScript hinter global hinting management (body). * Inspired by the new auto-hinter module. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * pshglob.c * * PostScript hinter global hinting management (body). * Inspired by the new auto-hinter module. * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used * modified and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
646 647 648 649 650 651 652 | T1_Private* priv, PSH_Globals *aglobals ) { PSH_Globals globals = NULL; FT_Error error; | | | 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 | T1_Private* priv, PSH_Globals *aglobals ) { PSH_Globals globals = NULL; FT_Error error; if ( !FT_QNEW( globals ) ) { FT_UInt count; FT_Short* read; globals->memory = memory; |
︙ | ︙ |
Changes to jni/freetype/src/pshinter/pshglob.h.
1 2 3 4 5 6 | /**************************************************************************** * * pshglob.h * * PostScript hinter global hinting management. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pshglob.h * * PostScript hinter global hinting management. * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pshinter/pshinter.c.
1 2 3 4 5 6 | /**************************************************************************** * * pshinter.c * * FreeType PostScript Hinting module * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pshinter.c * * FreeType PostScript Hinting module * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pshinter/pshmod.c.
1 2 3 4 5 6 | /**************************************************************************** * * pshmod.c * * FreeType PostScript hinter module implementation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pshmod.c * * FreeType PostScript hinter module implementation (body). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pshinter/pshmod.h.
1 2 3 4 5 6 | /**************************************************************************** * * pshmod.h * * PostScript hinter module interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pshmod.h * * PostScript hinter module interface (specification). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pshinter/pshnterr.h.
1 2 3 4 5 6 | /**************************************************************************** * * pshnterr.h * * PS Hinter error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pshnterr.h * * PS Hinter error codes (specification only). * * Copyright (C) 2003-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pshinter/pshrec.c.
1 2 3 4 5 6 | /**************************************************************************** * * pshrec.c * * FreeType PostScript hints recorder (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pshrec.c * * FreeType PostScript hints recorder (body). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
59 60 61 62 63 64 65 | static FT_Error ps_hint_table_ensure( PS_Hint_Table table, FT_UInt count, FT_Memory memory ) { FT_UInt old_max = table->max_hints; FT_UInt new_max = count; | | < < | | | | | | | < < < | 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 | static FT_Error ps_hint_table_ensure( PS_Hint_Table table, FT_UInt count, FT_Memory memory ) { FT_UInt old_max = table->max_hints; FT_UInt new_max = count; FT_Error error; /* try to grow the table */ new_max = FT_PAD_CEIL( new_max, 8 ); if ( !FT_QRENEW_ARRAY( table->hints, old_max, new_max ) ) table->max_hints = new_max; return error; } static FT_Error ps_hint_table_alloc( PS_Hint_Table table, FT_Memory memory, PS_Hint *ahint ) { FT_Error error = FT_Err_Ok; FT_UInt count; PS_Hint hint = NULL; count = table->num_hints; count++; if ( count > table->max_hints ) { error = ps_hint_table_ensure( table, count, memory ); if ( error ) goto Exit; } hint = table->hints + count - 1; /* initialized upstream */ table->num_hints = count; Exit: *ahint = hint; return error; } |
︙ | ︙ | |||
132 133 134 135 136 137 138 | /* ensure that a mask can contain "count" bits */ static FT_Error ps_mask_ensure( PS_Mask mask, FT_UInt count, FT_Memory memory ) { | | | > | | < < < < < < < < < < < < < < < < | 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 | /* ensure that a mask can contain "count" bits */ static FT_Error ps_mask_ensure( PS_Mask mask, FT_UInt count, FT_Memory memory ) { FT_UInt old_max = mask->max_bits >> 3; FT_UInt new_max = ( count + 7 ) >> 3; FT_Error error = FT_Err_Ok; if ( new_max > old_max ) { new_max = FT_PAD_CEIL( new_max, 8 ); /* added bytes are zeroed here */ if ( !FT_RENEW_ARRAY( mask->bytes, old_max, new_max ) ) mask->max_bits = new_max * 8; } return error; } /* test a bit value in a given mask */ static FT_Int ps_mask_test_bit( PS_Mask mask, FT_UInt idx ) { if ( idx >= mask->num_bits ) return 0; return mask->bytes[idx >> 3] & ( 0x80 >> ( idx & 7 ) ); } /* set a given bit, possibly grow the mask */ static FT_Error ps_mask_set_bit( PS_Mask mask, FT_UInt idx, FT_Memory memory ) { |
︙ | ︙ | |||
265 266 267 268 269 270 271 272 273 274 275 276 277 278 | if ( error ) goto Exit; } mask = table->masks + count - 1; mask->num_bits = 0; mask->end_point = 0; table->num_masks = count; Exit: *amask = mask; return error; } | > > > > | 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 | if ( error ) goto Exit; } mask = table->masks + count - 1; mask->num_bits = 0; mask->end_point = 0; /* reused mask must be cleared */ if ( mask->max_bits ) FT_MEM_ZERO( mask->bytes, mask->max_bits >> 3 ); table->num_masks = count; Exit: *amask = mask; return error; } |
︙ | ︙ | |||
422 423 424 425 426 427 428 | { /* we need to merge the bitsets of index1 and index2 with a */ /* simple union */ PS_Mask mask1 = table->masks + index1; PS_Mask mask2 = table->masks + index2; FT_UInt count1 = mask1->num_bits; FT_UInt count2 = mask2->num_bits; | | | | < | 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 | { /* we need to merge the bitsets of index1 and index2 with a */ /* simple union */ PS_Mask mask1 = table->masks + index1; PS_Mask mask2 = table->masks + index2; FT_UInt count1 = mask1->num_bits; FT_UInt count2 = mask2->num_bits; FT_UInt delta; if ( count2 > 0 ) { FT_UInt pos; FT_Byte* read; FT_Byte* write; /* if "count2" is greater than "count1", we need to grow the */ /* first bitset */ if ( count2 > count1 ) { error = ps_mask_ensure( mask1, count2, memory ); if ( error ) goto Exit; mask1->num_bits = count2; } /* merge (unite) the bitsets */ read = mask2->bytes; write = mask1->bytes; pos = ( count2 + 7 ) >> 3; |
︙ | ︙ | |||
463 464 465 466 467 468 469 | /* Now, remove "mask2" from the list. We need to keep the masks */ /* sorted in order of importance, so move table elements. */ mask2->num_bits = 0; mask2->end_point = 0; /* number of masks to move */ | | | | 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 | /* Now, remove "mask2" from the list. We need to keep the masks */ /* sorted in order of importance, so move table elements. */ mask2->num_bits = 0; mask2->end_point = 0; /* number of masks to move */ delta = table->num_masks - 1 - index2; if ( delta > 0 ) { /* move to end of table for reuse */ PS_MaskRec dummy = *mask2; ft_memmove( mask2, mask2 + 1, delta * sizeof ( PS_MaskRec ) ); mask2[delta] = dummy; } table->num_masks--; } else |
︙ | ︙ | |||
643 644 645 646 647 648 649 | /* add a new single stem (called from "T1Stem" method) */ static FT_Error ps_dimension_add_t1stem( PS_Dimension dim, FT_Int pos, FT_Int len, FT_Memory memory, | | < < < | 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 | /* add a new single stem (called from "T1Stem" method) */ static FT_Error ps_dimension_add_t1stem( PS_Dimension dim, FT_Int pos, FT_Int len, FT_Memory memory, FT_UInt *aindex ) { FT_Error error = FT_Err_Ok; FT_UInt flags = 0; /* detect ghost stem */ if ( len < 0 ) { flags |= PS_HINT_FLAG_GHOST; if ( len == -21 ) { flags |= PS_HINT_FLAG_BOTTOM; pos = ADD_INT( pos, len ); } len = 0; } /* now, lookup stem in the current hints table */ { PS_Mask mask; FT_UInt idx; FT_UInt max = dim->hints.num_hints; PS_Hint hint = dim->hints.hints; |
︙ | ︙ | |||
700 701 702 703 704 705 706 | goto Exit; error = ps_mask_set_bit( mask, idx, memory ); if ( error ) goto Exit; if ( aindex ) | | | | | | 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 | goto Exit; error = ps_mask_set_bit( mask, idx, memory ); if ( error ) goto Exit; if ( aindex ) *aindex = idx; } Exit: return error; } /* add a "hstem3/vstem3" counter to our dimension table */ static FT_Error ps_dimension_add_counter( PS_Dimension dim, FT_UInt hint1, FT_UInt hint2, FT_UInt hint3, FT_Memory memory ) { FT_Error error = FT_Err_Ok; FT_UInt count = dim->counters.num_masks; PS_Mask counter = dim->counters.masks; |
︙ | ︙ | |||
740 741 742 743 744 745 746 | { error = ps_mask_table_alloc( &dim->counters, memory, &counter ); if ( error ) goto Exit; } /* now, set the bits for our hints in the counter mask */ | < < | | | | < < < | | | | < < < | | | < | 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 | { error = ps_mask_table_alloc( &dim->counters, memory, &counter ); if ( error ) goto Exit; } /* now, set the bits for our hints in the counter mask */ error = ps_mask_set_bit( counter, hint1, memory ); if ( error ) goto Exit; error = ps_mask_set_bit( counter, hint2, memory ); if ( error ) goto Exit; error = ps_mask_set_bit( counter, hint3, memory ); if ( error ) goto Exit; Exit: return error; } /* end of recording session for a given dimension */ |
︙ | ︙ | |||
888 889 890 891 892 893 894 | if ( !hints->error ) { PS_Dimension dim; FT_Memory memory = hints->memory; FT_Int count; | | | 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 | if ( !hints->error ) { PS_Dimension dim; FT_Memory memory = hints->memory; FT_Int count; FT_UInt idx[3]; /* limit "dimension" to 0..1 */ if ( dimension > 1 ) { FT_TRACE0(( "ps_hints_t1stem3: invalid dimension (%d) used\n", dimension )); |
︙ | ︙ |
Changes to jni/freetype/src/pshinter/pshrec.h.
1 2 3 4 5 6 | /**************************************************************************** * * pshrec.h * * Postscript (Type1/Type2) hints recorder (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pshrec.h * * Postscript (Type1/Type2) hints recorder (specification). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/pshinter/rules.mk.
1 2 3 4 5 | # # FreeType 2 PSHinter driver configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 PSHinter driver configuration rules # # Copyright (C) 2001-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/psnames/module.mk.
1 2 3 4 5 | # # FreeType 2 PSnames module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 PSnames module definition # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/psnames/psmodule.c.
1 2 3 4 5 6 | /**************************************************************************** * * psmodule.c * * psnames module implementation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * psmodule.c * * psnames module implementation (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psnames/psmodule.h.
1 2 3 4 5 6 | /**************************************************************************** * * psmodule.h * * High-level psnames module interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * psmodule.h * * High-level psnames module interface (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psnames/psnamerr.h.
1 2 3 4 5 6 | /**************************************************************************** * * psnamerr.h * * PS names module error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * psnamerr.h * * PS names module error codes (specification only). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psnames/psnames.c.
1 2 3 4 5 6 | /**************************************************************************** * * psnames.c * * FreeType psnames module component (body only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * psnames.c * * FreeType psnames module component (body only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psnames/pstables.h.
1 2 3 4 5 6 | /**************************************************************************** * * pstables.h * * PostScript glyph names. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pstables.h * * PostScript glyph names. * * Copyright (C) 2005-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/psnames/rules.mk.
1 2 3 4 5 | # # FreeType 2 psnames driver configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 psnames driver configuration rules # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/raster/ftmisc.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * ftmisc.h * * Miscellaneous macros for stand-alone rasterizer (specification * only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * ftmisc.h * * Miscellaneous macros for stand-alone rasterizer (specification * only). * * Copyright (C) 2005-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used * modified and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/raster/ftraster.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftraster.c * * The FreeType glyph rasterizer (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftraster.c * * The FreeType glyph rasterizer (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/raster/ftraster.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftraster.h * * The FreeType glyph rasterizer (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftraster.h * * The FreeType glyph rasterizer (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used * modified and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/raster/ftrend1.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftrend1.c * * The FreeType glyph rasterizer interface (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftrend1.c * * The FreeType glyph rasterizer interface (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/raster/ftrend1.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftrend1.h * * The FreeType glyph rasterizer interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftrend1.h * * The FreeType glyph rasterizer interface (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/raster/module.mk.
1 2 3 4 5 | # # FreeType 2 renderer module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 renderer module definition # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/raster/raster.c.
1 2 3 4 5 6 | /**************************************************************************** * * raster.c * * FreeType monochrome rasterer module component (body only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * raster.c * * FreeType monochrome rasterer module component (body only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/raster/rasterrs.h.
1 2 3 4 5 6 | /**************************************************************************** * * rasterrs.h * * monochrome renderer error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * rasterrs.h * * monochrome renderer error codes (specification only). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/raster/rules.mk.
1 2 3 4 5 | # # FreeType 2 renderer module build rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 renderer module build rules # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/sdf/ftbsdf.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftbsdf.c * * Signed Distance Field support for bitmap fonts (body only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftbsdf.c * * Signed Distance Field support for bitmap fonts (body only). * * Copyright (C) 2020-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * Written by Anuj Verma. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ | |||
173 174 175 176 177 178 179 | * * @Description: * Euclidean distance. It gets used for Euclidean distance transforms; * it can also be interpreted as an edge distance. * * @Fields: * dist :: | | | | | 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 | * * @Description: * Euclidean distance. It gets used for Euclidean distance transforms; * it can also be interpreted as an edge distance. * * @Fields: * dist :: * Vector length of the `prox` parameter. Can be squared or absolute * depending on the `USE_SQUARED_DISTANCES` macro defined in file * `ftsdfcommon.h`. * * prox :: * Vector to the nearest edge. Can also be interpreted as shortest * distance of a point. * * alpha :: * Alpha value of the original bitmap from which we generate SDF. * Needed for computing the gradient and determining the proper sign * of a pixel. * */ typedef struct ED_ { FT_16D16 dist; FT_16D16_Vec prox; FT_Byte alpha; } ED; /************************************************************************** * |
︙ | ︙ | |||
591 592 593 594 595 596 597 | if ( bsdf_is_edge( worker->distance_map + index, i, j, worker->width, worker->rows ) ) { /* approximate the edge distance for edge pixels */ | | | | | | 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 | if ( bsdf_is_edge( worker->distance_map + index, i, j, worker->width, worker->rows ) ) { /* approximate the edge distance for edge pixels */ ed[index].prox = compute_edge_distance( ed + index, i, j, worker->width, worker->rows ); ed[index].dist = VECTOR_LENGTH_16D16( ed[index].prox ); } else { /* for non-edge pixels assign far away distances */ ed[index].dist = 400 * ONE; ed[index].prox.x = 200 * ONE; ed[index].prox.y = 200 * ONE; } } } Exit: return error; } |
︙ | ︙ | |||
752 753 754 755 756 757 758 | div = s_index + s_i / 8; mod = 7 - s_i % 8; pixel = s[div]; byte = (FT_Byte)( 1 << mod ); t[t_index].alpha = pixel & byte ? 255 : 0; | < < | 752 753 754 755 756 757 758 759 760 761 762 763 764 765 | div = s_index + s_i / 8; mod = 7 - s_i % 8; pixel = s[div]; byte = (FT_Byte)( 1 << mod ); t[t_index].alpha = pixel & byte ? 255 : 0; } } } break; case FT_PIXEL_MODE_GRAY: { |
︙ | ︙ | |||
869 870 871 872 873 874 875 | * Approximate the distance. We subtract 1 to avoid precision errors, * which could happen because the two directions can be opposite. */ dist = to_check->dist - ONE; if ( dist < current->dist ) { | | | | 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 | * Approximate the distance. We subtract 1 to avoid precision errors, * which could happen because the two directions can be opposite. */ dist = to_check->dist - ONE; if ( dist < current->dist ) { dist_vec = to_check->prox; dist_vec.x += x_offset * ONE; dist_vec.y += y_offset * ONE; dist = VECTOR_LENGTH_16D16( dist_vec ); if ( dist < current->dist ) { current->dist = dist; current->prox = dist_vec; } } } /************************************************************************** * |
︙ | ︙ | |||
1094 1095 1096 1097 1098 1099 1100 | { FT_Error error = FT_Err_Ok; FT_Int w, r; FT_Int i, j; FT_SDFFormat* t_buffer; | | > > | | | | | | 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 | { FT_Error error = FT_Err_Ok; FT_Int w, r; FT_Int i, j; FT_SDFFormat* t_buffer; FT_16D16 sp_sq, spread; if ( !worker || !target ) { error = FT_THROW( Invalid_Argument ); goto Exit; } w = (int)target->width; r = (int)target->rows; t_buffer = (FT_SDFFormat*)target->buffer; if ( w != worker->width || r != worker->rows ) { error = FT_THROW( Invalid_Argument ); goto Exit; } spread = FT_INT_16D16( worker->params.spread ); #if USE_SQUARED_DISTANCES sp_sq = FT_INT_16D16( worker->params.spread * worker->params.spread ); #else sp_sq = FT_INT_16D16( worker->params.spread ); #endif for ( j = 0; j < r; j++ ) { for ( i = 0; i < w; i++ ) { FT_Int index; FT_16D16 dist; FT_SDFFormat final_dist; FT_Char sign; index = j * w + i; dist = worker->distance_map[index].dist; if ( dist < 0 || dist > sp_sq ) dist = sp_sq; #if USE_SQUARED_DISTANCES dist = square_root( dist ); #endif /* We assume that if the pixel is inside a contour */ /* its coverage value must be > 127. */ |
︙ | ︙ |
Changes to jni/freetype/src/sdf/ftsdf.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftsdf.c * * Signed Distance Field support for outline fonts (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsdf.c * * Signed Distance Field support for outline fonts (body). * * Copyright (C) 2020-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * Written by Anuj Verma. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ | |||
493 494 495 496 497 498 499 | if ( !memory || !edge ) { error = FT_THROW( Invalid_Argument ); goto Exit; } | | | 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 | if ( !memory || !edge ) { error = FT_THROW( Invalid_Argument ); goto Exit; } if ( !FT_QNEW( ptr ) ) { *ptr = null_edge; *edge = ptr; } Exit: return error; |
︙ | ︙ | |||
532 533 534 535 536 537 538 | if ( !memory || !contour ) { error = FT_THROW( Invalid_Argument ); goto Exit; } | | | 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 | if ( !memory || !contour ) { error = FT_THROW( Invalid_Argument ); goto Exit; } if ( !FT_QNEW( ptr ) ) { *ptr = null_contour; *contour = ptr; } Exit: return error; |
︙ | ︙ | |||
587 588 589 590 591 592 593 | if ( !memory || !shape ) { error = FT_THROW( Invalid_Argument ); goto Exit; } | | | 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 | if ( !memory || !shape ) { error = FT_THROW( Invalid_Argument ); goto Exit; } if ( !FT_QNEW( ptr ) ) { *ptr = null_shape; ptr->memory = memory; *shape = ptr; } Exit: |
︙ | ︙ | |||
733 734 735 736 737 738 739 740 741 742 743 744 745 746 | if ( !control_1 || !to || !user ) { error = FT_THROW( Invalid_Argument ); goto Exit; } contour = shape->contours; FT_CALL( sdf_edge_new( memory, &edge ) ); edge->edge_type = SDF_EDGE_CONIC; edge->start_pos = contour->last_pos; edge->control_a = *control_1; edge->end_pos = *to; | > > > > > > > > > > > > | 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 | if ( !control_1 || !to || !user ) { error = FT_THROW( Invalid_Argument ); goto Exit; } contour = shape->contours; /* If the control point coincides with any of the end points */ /* then it is a line and should be treated as one to avoid */ /* unnecessary complexity later in the algorithm. */ if ( ( contour->last_pos.x == control_1->x && contour->last_pos.y == control_1->y ) || ( control_1->x == to->x && control_1->y == to->y ) ) { sdf_line_to( to, user ); goto Exit; } FT_CALL( sdf_edge_new( memory, &edge ) ); edge->edge_type = SDF_EDGE_CONIC; edge->start_pos = contour->last_pos; edge->control_a = *control_1; edge->end_pos = *to; |
︙ | ︙ | |||
760 761 762 763 764 765 766 | /* `control_2`. */ static FT_Error sdf_cubic_to( const FT_26D6_Vec* control_1, const FT_26D6_Vec* control_2, const FT_26D6_Vec* to, void* user ) { | | | | | 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 | /* `control_2`. */ static FT_Error sdf_cubic_to( const FT_26D6_Vec* control_1, const FT_26D6_Vec* control_2, const FT_26D6_Vec* to, void* user ) { SDF_Shape* shape = ( SDF_Shape* )user; SDF_Edge* edge = NULL; SDF_Contour* contour = NULL; FT_Error error = FT_Err_Ok; FT_Memory memory = shape->memory; if ( !control_2 || !control_1 || !to || !user ) { |
︙ | ︙ | |||
1061 1062 1063 1064 1065 1066 1067 | /* and add them to `out'. */ /* */ /* This function uses recursion; we thus need */ /* parameter `max_splits' for stopping. */ static FT_Error split_sdf_conic( FT_Memory memory, FT_26D6_Vec* control_points, | | | 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 | /* and add them to `out'. */ /* */ /* This function uses recursion; we thus need */ /* parameter `max_splits' for stopping. */ static FT_Error split_sdf_conic( FT_Memory memory, FT_26D6_Vec* control_points, FT_UInt max_splits, SDF_Edge** out ) { FT_Error error = FT_Err_Ok; FT_26D6_Vec cpos[5]; SDF_Edge* left,* right; |
︙ | ︙ | |||
1130 1131 1132 1133 1134 1135 1136 | /* and add them to `out`. */ /* */ /* This function uses recursion; we thus need */ /* parameter `max_splits' for stopping. */ static FT_Error split_sdf_cubic( FT_Memory memory, FT_26D6_Vec* control_points, | | | | | > | | > > > > > > > > > > > > > > | 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 | /* and add them to `out`. */ /* */ /* This function uses recursion; we thus need */ /* parameter `max_splits' for stopping. */ static FT_Error split_sdf_cubic( FT_Memory memory, FT_26D6_Vec* control_points, FT_UInt max_splits, SDF_Edge** out ) { FT_Error error = FT_Err_Ok; FT_26D6_Vec cpos[7]; SDF_Edge* left, *right; const FT_26D6 threshold = ONE_PIXEL / 4; if ( !memory || !out ) { error = FT_THROW( Invalid_Argument ); goto Exit; } /* split the cubic */ cpos[0] = control_points[0]; cpos[1] = control_points[1]; cpos[2] = control_points[2]; cpos[3] = control_points[3]; /* If the segment is flat enough we won't get any benefit by */ /* splitting it further, so we can just stop splitting. */ /* */ /* Check the deviation of the Bezier curve and stop if it is */ /* smaller than the pre-defined `threshold` value. */ if ( FT_ABS( 2 * cpos[0].x - 3 * cpos[1].x + cpos[3].x ) < threshold && FT_ABS( 2 * cpos[0].y - 3 * cpos[1].y + cpos[3].y ) < threshold && FT_ABS( cpos[0].x - 3 * cpos[2].x + 2 * cpos[3].x ) < threshold && FT_ABS( cpos[0].y - 3 * cpos[2].y + 2 * cpos[3].y ) < threshold ) { split_cubic( cpos ); goto Append; } split_cubic( cpos ); /* If max number of splits is done */ /* then stop and add the lines to */ /* the list. */ if ( max_splits <= 2 ) |
︙ | ︙ | |||
1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 | new_edges = temp; break; case SDF_EDGE_CONIC: /* Subdivide the curve and add it to the list. */ { FT_26D6_Vec ctrls[3]; ctrls[0] = edge->start_pos; ctrls[1] = edge->control_a; ctrls[2] = edge->end_pos; | > > > > > > > > > > > > > > > > > > > | < > > > | 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 | new_edges = temp; break; case SDF_EDGE_CONIC: /* Subdivide the curve and add it to the list. */ { FT_26D6_Vec ctrls[3]; FT_26D6 dx, dy; FT_UInt num_splits; ctrls[0] = edge->start_pos; ctrls[1] = edge->control_a; ctrls[2] = edge->end_pos; dx = FT_ABS( ctrls[2].x + ctrls[0].x - 2 * ctrls[1].x ); dy = FT_ABS( ctrls[2].y + ctrls[0].y - 2 * ctrls[1].y ); if ( dx < dy ) dx = dy; /* Calculate the number of necessary bisections. Each */ /* bisection causes a four-fold reduction of the deviation, */ /* hence we bisect the Bezier curve until the deviation */ /* becomes less than 1/8th of a pixel. For more details */ /* check file `ftgrays.c`. */ num_splits = 1; while ( dx > ONE_PIXEL / 8 ) { dx >>= 2; num_splits <<= 1; } error = split_sdf_conic( memory, ctrls, num_splits, &new_edges ); } break; case SDF_EDGE_CUBIC: /* Subdivide the curve and add it to the list. */ { FT_26D6_Vec ctrls[4]; ctrls[0] = edge->start_pos; ctrls[1] = edge->control_a; ctrls[2] = edge->control_b; ctrls[3] = edge->end_pos; error = split_sdf_cubic( memory, ctrls, 32, &new_edges ); } break; default: error = FT_THROW( Invalid_Argument ); } if ( error != FT_Err_Ok ) goto Exit; edges = edges->next; } /* add to the contours list */ FT_CALL( sdf_contour_new( memory, &tempc ) ); |
︙ | ︙ | |||
3236 3237 3238 3239 3240 3241 3242 | contours = shape->contours; width = (FT_Int)bitmap->width; rows = (FT_Int)bitmap->rows; buffer = (FT_SDFFormat*)bitmap->buffer; if ( USE_SQUARED_DISTANCES ) | | | 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 | contours = shape->contours; width = (FT_Int)bitmap->width; rows = (FT_Int)bitmap->rows; buffer = (FT_SDFFormat*)bitmap->buffer; if ( USE_SQUARED_DISTANCES ) sp_sq = FT_INT_16D16( (FT_Int)( spread * spread ) ); else sp_sq = fixed_spread; if ( width == 0 || rows == 0 ) { FT_TRACE0(( "sdf_generate:" " Cannot render glyph with width/height == 0\n" )); |
︙ | ︙ | |||
3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 | for ( y = cbox.yMin; y < cbox.yMax; y++ ) { for ( x = cbox.xMin; x < cbox.xMax; x++ ) { FT_26D6_Vec grid_point = zero_vector; SDF_Signed_Distance dist = max_sdf; FT_UInt index = 0; if ( x < 0 || x >= width ) continue; if ( y < 0 || y >= rows ) continue; | > | 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 | for ( y = cbox.yMin; y < cbox.yMax; y++ ) { for ( x = cbox.xMin; x < cbox.xMax; x++ ) { FT_26D6_Vec grid_point = zero_vector; SDF_Signed_Distance dist = max_sdf; FT_UInt index = 0; FT_16D16 diff = 0; if ( x < 0 || x >= width ) continue; if ( y < 0 || y >= rows ) continue; |
︙ | ︙ | |||
3307 3308 3309 3310 3311 3312 3313 | dist.sign = -dist.sign; /* ignore if the distance is greater than spread; */ /* otherwise it creates artifacts due to the wrong sign */ if ( dist.distance > sp_sq ) continue; | | | < > | > | | > > > | 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 | dist.sign = -dist.sign; /* ignore if the distance is greater than spread; */ /* otherwise it creates artifacts due to the wrong sign */ if ( dist.distance > sp_sq ) continue; /* take the square root of the distance if required */ if ( USE_SQUARED_DISTANCES ) dist.distance = square_root( dist.distance ); if ( internal_params.flip_y ) index = (FT_UInt)( y * width + x ); else index = (FT_UInt)( ( rows - y - 1 ) * width + x ); /* check whether the pixel is set or not */ if ( dists[index].sign == 0 ) dists[index] = dist; else { diff = FT_ABS( dists[index].distance - dist.distance ); if ( diff <= CORNER_CHECK_EPSILON ) dists[index] = resolve_corner( dists[index], dist ); else if ( dists[index].distance > dist.distance ) dists[index] = dist; } } } edges = edges->next; } contours = contours->next; |
︙ | ︙ |
Changes to jni/freetype/src/sdf/ftsdf.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftsdf.h * * Signed Distance Field support (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsdf.h * * Signed Distance Field support (specification). * * Copyright (C) 2020-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * Written by Anuj Verma. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ |
Changes to jni/freetype/src/sdf/ftsdfcommon.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftsdfcommon.c * * Auxiliary data for Signed Distance Field support (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsdfcommon.c * * Auxiliary data for Signed Distance Field support (body). * * Copyright (C) 2020-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * Written by Anuj Verma. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ |
Changes to jni/freetype/src/sdf/ftsdfcommon.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftsdfcommon.h * * Auxiliary data for Signed Distance Field support (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsdfcommon.h * * Auxiliary data for Signed Distance Field support (specification). * * Copyright (C) 2020-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * Written by Anuj Verma. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ | |||
44 45 46 47 48 49 50 51 52 53 54 55 56 57 | /* default spread value */ #define DEFAULT_SPREAD 8 /* minimum spread supported by the renderer */ #define MIN_SPREAD 2 /* maximum spread supported by the renderer */ #define MAX_SPREAD 32 /************************************************************************** * * common definitions (cannot be set individually for each renderer) * */ | > > | 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | /* default spread value */ #define DEFAULT_SPREAD 8 /* minimum spread supported by the renderer */ #define MIN_SPREAD 2 /* maximum spread supported by the renderer */ #define MAX_SPREAD 32 /* pixel size in 26.6 */ #define ONE_PIXEL ( 1 << 6 ) /************************************************************************** * * common definitions (cannot be set individually for each renderer) * */ |
︙ | ︙ |
Changes to jni/freetype/src/sdf/ftsdferrs.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftsdferrs.h * * Signed Distance Field error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsdferrs.h * * Signed Distance Field error codes (specification only). * * Copyright (C) 2020-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * Written by Anuj Verma. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ |
Changes to jni/freetype/src/sdf/ftsdfrend.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftsdfrend.c * * Signed Distance Field renderer interface (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsdfrend.c * * Signed Distance Field renderer interface (body). * * Copyright (C) 2020-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * Written by Anuj Verma. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ |
Changes to jni/freetype/src/sdf/ftsdfrend.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftsdfrend.h * * Signed Distance Field renderer interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsdfrend.h * * Signed Distance Field renderer interface (specification). * * Copyright (C) 2020-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * Written by Anuj Verma. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ |
Changes to jni/freetype/src/sdf/module.mk.
1 2 3 4 5 | # # FreeType 2 Signed Distance Field module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Signed Distance Field module definition # # Copyright (C) 2020-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/sdf/rules.mk.
1 2 3 4 5 | # # FreeType 2 Signed Distance Field driver configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Signed Distance Field driver configuration rules # # Copyright (C) 2020-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/sdf/sdf.c.
1 2 3 4 5 6 | /**************************************************************************** * * sdf.c * * FreeType Signed Distance Field renderer module component (body only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * sdf.c * * FreeType Signed Distance Field renderer module component (body only). * * Copyright (C) 2020-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * Written by Anuj Verma. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/module.mk.
1 2 3 4 5 | # # FreeType 2 SFNT module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 SFNT module definition # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/pngshim.c.
1 2 3 4 5 6 | /**************************************************************************** * * pngshim.c * * PNG Bitmap glyph support. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pngshim.c * * PNG Bitmap glyph support. * * Copyright (C) 2013-2022 by * Google, Inc. * Written by Stuart Gill and Behdad Esfahbod. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/pngshim.h.
1 2 3 4 5 6 | /**************************************************************************** * * pngshim.h * * PNG Bitmap glyph support. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * pngshim.h * * PNG Bitmap glyph support. * * Copyright (C) 2013-2022 by * Google, Inc. * Written by Stuart Gill and Behdad Esfahbod. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/rules.mk.
1 2 3 4 5 | # # FreeType 2 SFNT driver configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 SFNT driver configuration rules # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ | |||
32 33 34 35 36 37 38 39 40 41 42 43 44 45 | $(SFNT_DIR)/sfdriver.c \ $(SFNT_DIR)/sfobjs.c \ $(SFNT_DIR)/sfwoff.c \ $(SFNT_DIR)/sfwoff2.c \ $(SFNT_DIR)/ttbdf.c \ $(SFNT_DIR)/ttcmap.c \ $(SFNT_DIR)/ttcolr.c \ $(SFNT_DIR)/ttcpal.c \ $(SFNT_DIR)/ttkern.c \ $(SFNT_DIR)/ttload.c \ $(SFNT_DIR)/ttmtx.c \ $(SFNT_DIR)/ttpost.c \ $(SFNT_DIR)/ttsbit.c \ $(SFNT_DIR)/woff2tags.c | > | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | $(SFNT_DIR)/sfdriver.c \ $(SFNT_DIR)/sfobjs.c \ $(SFNT_DIR)/sfwoff.c \ $(SFNT_DIR)/sfwoff2.c \ $(SFNT_DIR)/ttbdf.c \ $(SFNT_DIR)/ttcmap.c \ $(SFNT_DIR)/ttcolr.c \ $(SFNT_DIR)/ttsvg.c \ $(SFNT_DIR)/ttcpal.c \ $(SFNT_DIR)/ttkern.c \ $(SFNT_DIR)/ttload.c \ $(SFNT_DIR)/ttmtx.c \ $(SFNT_DIR)/ttpost.c \ $(SFNT_DIR)/ttsbit.c \ $(SFNT_DIR)/woff2tags.c |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/sfdriver.c.
1 2 3 4 5 6 | /**************************************************************************** * * sfdriver.c * * High-level SFNT driver interface (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * sfdriver.c * * High-level SFNT driver interface (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include "ttsbit.h" #endif #ifdef TT_CONFIG_OPTION_COLOR_LAYERS #include "ttcolr.h" #include "ttcpal.h" #endif #ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES #include "ttpost.h" #endif #ifdef TT_CONFIG_OPTION_BDF #include "ttbdf.h" | > > > > | 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #include "ttsbit.h" #endif #ifdef TT_CONFIG_OPTION_COLOR_LAYERS #include "ttcolr.h" #include "ttcpal.h" #endif #ifdef FT_CONFIG_OPTION_SVG #include "ttsvg.h" #endif #ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES #include "ttpost.h" #endif #ifdef TT_CONFIG_OPTION_BDF #include "ttbdf.h" |
︙ | ︙ | |||
487 488 489 490 491 492 493 | static char* get_win_string( FT_Memory memory, FT_Stream stream, TT_Name entry, char_type_func char_type, FT_Bool report_invalid_characters ) { | | < < | 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 | static char* get_win_string( FT_Memory memory, FT_Stream stream, TT_Name entry, char_type_func char_type, FT_Bool report_invalid_characters ) { FT_Error error; char* result = NULL; FT_String* r; FT_Char* p; FT_UInt len; if ( FT_QALLOC( result, entry->stringLength / 2 + 1 ) ) return NULL; if ( FT_STREAM_SEEK( entry->stringOffset ) || FT_FRAME_ENTER( entry->stringLength ) ) goto get_win_string_error; |
︙ | ︙ | |||
546 547 548 549 550 551 552 | static char* get_apple_string( FT_Memory memory, FT_Stream stream, TT_Name entry, char_type_func char_type, FT_Bool report_invalid_characters ) { | | < < | 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 | static char* get_apple_string( FT_Memory memory, FT_Stream stream, TT_Name entry, char_type_func char_type, FT_Bool report_invalid_characters ) { FT_Error error; char* result = NULL; FT_String* r; FT_Char* p; FT_UInt len; if ( FT_QALLOC( result, entry->stringLength + 1 ) ) return NULL; if ( FT_STREAM_SEEK( entry->stringOffset ) || FT_FRAME_ENTER( entry->stringLength ) ) goto get_apple_string_error; |
︙ | ︙ | |||
1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 | #endif #ifdef TT_CONFIG_OPTION_COLOR_LAYERS #define PUT_COLOR_LAYERS( a ) a #else #define PUT_COLOR_LAYERS( a ) NULL #endif #define PUT_COLOR_LAYERS_V1( a ) PUT_COLOR_LAYERS( a ) #ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES #define PUT_PS_NAMES( a ) a #else #define PUT_PS_NAMES( a ) NULL | > > > > > > | 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 | #endif #ifdef TT_CONFIG_OPTION_COLOR_LAYERS #define PUT_COLOR_LAYERS( a ) a #else #define PUT_COLOR_LAYERS( a ) NULL #endif #ifdef FT_CONFIG_OPTION_SVG #define PUT_SVG_SUPPORT( a ) a #else #define PUT_SVG_SUPPORT( a ) NULL #endif #define PUT_COLOR_LAYERS_V1( a ) PUT_COLOR_LAYERS( a ) #ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES #define PUT_PS_NAMES( a ) a #else #define PUT_PS_NAMES( a ) NULL |
︙ | ︙ | |||
1304 1305 1306 1307 1308 1309 1310 | PUT_COLOR_LAYERS( tt_face_colr_blend_layer ), /* TT_Blend_Colr_Func colr_blend */ tt_face_get_metrics, /* TT_Get_Metrics_Func get_metrics */ tt_face_get_name, /* TT_Get_Name_Func get_name */ | | > > > > > > > | 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 | PUT_COLOR_LAYERS( tt_face_colr_blend_layer ), /* TT_Blend_Colr_Func colr_blend */ tt_face_get_metrics, /* TT_Get_Metrics_Func get_metrics */ tt_face_get_name, /* TT_Get_Name_Func get_name */ sfnt_get_name_id, /* TT_Get_Name_ID_Func get_name_id */ PUT_SVG_SUPPORT( tt_face_load_svg ), /* TT_Load_Table_Func load_svg */ PUT_SVG_SUPPORT( tt_face_free_svg ), /* TT_Free_Table_Func free_svg */ PUT_SVG_SUPPORT( tt_face_load_svg_doc ) /* TT_Load_Svg_Doc_Func load_svg_doc */ ) FT_DEFINE_MODULE( sfnt_module_class, 0, /* not a font driver or renderer */ |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/sfdriver.h.
1 2 3 4 5 6 | /**************************************************************************** * * sfdriver.h * * High-level SFNT driver interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * sfdriver.h * * High-level SFNT driver interface (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/sferrors.h.
1 2 3 4 5 6 | /**************************************************************************** * * sferrors.h * * SFNT error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * sferrors.h * * SFNT error codes (specification only). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/sfnt.c.
1 2 3 4 5 6 | /**************************************************************************** * * sfnt.c * * Single object library component. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * sfnt.c * * Single object library component. * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include "sfobjs.c" #include "sfwoff.c" #include "sfwoff2.c" #include "ttbdf.c" #include "ttcmap.c" #include "ttcolr.c" #include "ttcpal.c" #include "ttkern.c" #include "ttload.c" #include "ttmtx.c" #include "ttpost.c" #include "ttsbit.c" #include "woff2tags.c" #endif /* ANDROID */ /* END */ | > | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include "sfobjs.c" #include "sfwoff.c" #include "sfwoff2.c" #include "ttbdf.c" #include "ttcmap.c" #include "ttcolr.c" #include "ttcpal.c" #include "ttsvg.c" #include "ttkern.c" #include "ttload.c" #include "ttmtx.c" #include "ttpost.c" #include "ttsbit.c" #include "woff2tags.c" #endif /* ANDROID */ /* END */ |
Changes to jni/freetype/src/sfnt/sfobjs.c.
1 2 3 4 5 6 | /**************************************************************************** * * sfobjs.c * * SFNT object management (base). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * sfobjs.c * * SFNT object management (base). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
562 563 564 565 566 567 568 | FT_TRACE2(( "sfnt_init_face: %p (index %d)\n", (void *)face, face_instance_index )); face_index = FT_ABS( face_instance_index ) & 0xFFFF; /* value -(N+1) requests information on index N */ | | | 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 | FT_TRACE2(( "sfnt_init_face: %p (index %d)\n", (void *)face, face_instance_index )); face_index = FT_ABS( face_instance_index ) & 0xFFFF; /* value -(N+1) requests information on index N */ if ( face_instance_index < 0 && face_index > 0 ) face_index--; if ( face_index >= face->ttc_header.count ) { if ( face_instance_index >= 0 ) return FT_THROW( Invalid_Argument ); else |
︙ | ︙ | |||
780 781 782 783 784 785 786 | FT_LOCAL_DEF( FT_Error ) sfnt_load_face( FT_Stream stream, TT_Face face, FT_Int face_instance_index, FT_Int num_params, FT_Parameter* params ) { | | | > | | | | | > > > > | | > > > | 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 | FT_LOCAL_DEF( FT_Error ) sfnt_load_face( FT_Stream stream, TT_Face face, FT_Int face_instance_index, FT_Int num_params, FT_Parameter* params ) { FT_Error error; #ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES FT_Error psnames_error; #endif FT_Bool has_outline; FT_Bool is_apple_sbit; FT_Bool has_CBLC; FT_Bool has_CBDT; FT_Bool has_EBLC; FT_Bool has_bloc; FT_Bool has_sbix; FT_Bool ignore_typographic_family = FALSE; FT_Bool ignore_typographic_subfamily = FALSE; FT_Bool ignore_sbix = FALSE; SFNT_Service sfnt = (SFNT_Service)face->sfnt; FT_UNUSED( face_instance_index ); /* Check parameters */ { FT_Int i; for ( i = 0; i < num_params; i++ ) { if ( params[i].tag == FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY ) ignore_typographic_family = TRUE; else if ( params[i].tag == FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY ) ignore_typographic_subfamily = TRUE; else if ( params[i].tag == FT_PARAM_TAG_IGNORE_SBIX ) ignore_sbix = TRUE; } } /* Load tables */ /* We now support two SFNT-based bitmapped font formats. They */ /* are recognized easily as they do not include a `glyf' */ |
︙ | ︙ | |||
844 845 846 847 848 849 850 | tt_face_lookup_table( face, TTAG_CFF2 ) ); #else has_outline = FT_BOOL( tt_face_lookup_table( face, TTAG_glyf ) || tt_face_lookup_table( face, TTAG_CFF ) || tt_face_lookup_table( face, TTAG_CFF2 ) ); #endif | | > > > > | > | < < | | | < < < | 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 | tt_face_lookup_table( face, TTAG_CFF2 ) ); #else has_outline = FT_BOOL( tt_face_lookup_table( face, TTAG_glyf ) || tt_face_lookup_table( face, TTAG_CFF ) || tt_face_lookup_table( face, TTAG_CFF2 ) ); #endif /* check which sbit formats are present */ has_CBLC = !face->goto_table( face, TTAG_CBLC, stream, 0 ); has_CBDT = !face->goto_table( face, TTAG_CBDT, stream, 0 ); has_EBLC = !face->goto_table( face, TTAG_EBLC, stream, 0 ); has_bloc = !face->goto_table( face, TTAG_bloc, stream, 0 ); has_sbix = !face->goto_table( face, TTAG_sbix, stream, 0 ); is_apple_sbit = FALSE; if ( ignore_sbix ) has_sbix = FALSE; /* if this font doesn't contain outlines, we try to load */ /* a `bhed' table */ if ( !has_outline && sfnt->load_bhed ) { LOAD_( bhed ); is_apple_sbit = FT_BOOL( !error ); } /* load the font header (`head' table) if this isn't an Apple */ /* sbit font file */ if ( !is_apple_sbit || has_sbix ) { LOAD_( head ); if ( error ) goto Exit; } /* Ignore outlines for CBLC/CBDT fonts. */ if ( has_CBLC || has_CBDT ) has_outline = FALSE; /* OpenType 1.8.2 introduced limits to this value; */ /* however, they make sense for older SFNT fonts also */ if ( face->header.Units_Per_EM < 16 || |
︙ | ︙ | |||
982 983 984 985 986 987 988 | face->os2.version = 0xFFFFU; } } /* the optional tables */ /* embedded bitmap support */ | > > > | > > > > > | 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 | face->os2.version = 0xFFFFU; } } /* the optional tables */ /* embedded bitmap support */ /* TODO: Replace this clumsy check for all possible sbit tables */ /* with something better (for example, by passing a parameter */ /* to suppress 'sbix' loading). */ if ( sfnt->load_eblc && ( has_CBLC || has_EBLC || has_bloc || has_sbix ) ) LOAD_( eblc ); /* colored glyph support */ if ( sfnt->load_cpal ) { LOAD_( cpal ); LOAD_( colr ); } /* OpenType-SVG glyph support */ if ( sfnt->load_svg ) LOAD_( svg ); /* consider the pclt, kerning, and gasp tables as optional */ LOAD_( pclt ); LOAD_( gasp ); LOAD_( kern ); face->root.num_glyphs = face->max_profile.numGlyphs; |
︙ | ︙ | |||
1050 1051 1052 1053 1054 1055 1056 | */ if ( face->sbit_table_type == TT_SBIT_TABLE_TYPE_CBLC || face->sbit_table_type == TT_SBIT_TABLE_TYPE_SBIX || face->colr ) flags |= FT_FACE_FLAG_COLOR; /* color glyphs */ if ( has_outline == TRUE ) | > > > > > > | > | 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 | */ if ( face->sbit_table_type == TT_SBIT_TABLE_TYPE_CBLC || face->sbit_table_type == TT_SBIT_TABLE_TYPE_SBIX || face->colr ) flags |= FT_FACE_FLAG_COLOR; /* color glyphs */ if ( has_outline == TRUE ) { /* by default (and for backward compatibility) we handle */ /* fonts with an 'sbix' table as bitmap-only */ if ( has_sbix ) flags |= FT_FACE_FLAG_SBIX; /* with 'sbix' bitmaps */ else flags |= FT_FACE_FLAG_SCALABLE; /* scalable outlines */ } /* The sfnt driver only supports bitmap fonts natively, thus we */ /* don't set FT_FACE_FLAG_HINTER. */ flags |= FT_FACE_FLAG_SFNT | /* SFNT file format */ FT_FACE_FLAG_HORIZONTAL; /* horizontal data */ #ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES |
︙ | ︙ | |||
1273 1274 1275 1276 1277 1278 1279 | root->face_flags |= FT_FACE_FLAG_SCALABLE; /********************************************************************** * * Set up metrics. */ | | > | 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 | root->face_flags |= FT_FACE_FLAG_SCALABLE; /********************************************************************** * * Set up metrics. */ if ( FT_IS_SCALABLE( root ) || FT_HAS_SBIX( root ) ) { /* XXX What about if outline header is missing */ /* (e.g. sfnt wrapped bitmap)? */ root->bbox.xMin = face->header.xMin; root->bbox.yMin = face->header.yMin; root->bbox.xMax = face->header.xMax; root->bbox.yMax = face->header.yMax; |
︙ | ︙ | |||
1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 | /* destroy color table data if it is loaded */ if ( sfnt->free_cpal ) { sfnt->free_cpal( face ); sfnt->free_colr( face ); } } #ifdef TT_CONFIG_OPTION_BDF /* freeing the embedded BDF properties */ tt_face_free_bdf_props( face ); #endif | > > > > > > | 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 | /* destroy color table data if it is loaded */ if ( sfnt->free_cpal ) { sfnt->free_cpal( face ); sfnt->free_colr( face ); } #ifdef FT_CONFIG_OPTION_SVG /* free SVG data */ if ( sfnt->free_svg ) sfnt->free_svg( face ); #endif } #ifdef TT_CONFIG_OPTION_BDF /* freeing the embedded BDF properties */ tt_face_free_bdf_props( face ); #endif |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/sfobjs.h.
1 2 3 4 5 6 | /**************************************************************************** * * sfobjs.h * * SFNT object management (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * sfobjs.h * * SFNT object management (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/sfwoff.c.
1 2 3 4 5 6 | /**************************************************************************** * * sfwoff.c * * WOFF format management (base). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * sfwoff.c * * WOFF format management (base). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
60 61 62 63 64 65 66 | { FT_Memory memory = stream->memory; FT_FREE( stream->base ); stream->size = 0; | < | 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | { FT_Memory memory = stream->memory; FT_FREE( stream->base ); stream->size = 0; stream->close = NULL; } FT_COMPARE_DEF( int ) compare_offsets( const void* a, const void* b ) |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/sfwoff.h.
1 2 3 4 5 6 | /**************************************************************************** * * sfwoff.h * * WOFFF format management (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * sfwoff.h * * WOFFF format management (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/sfwoff2.c.
1 2 3 4 5 6 | /**************************************************************************** * * sfwoff2.c * * WOFF2 format management (base). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * sfwoff2.c * * WOFF2 format management (base). * * Copyright (C) 2019-2022 by * Nikhil Ramakrishnan, David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | #define N_POINTS_STREAM 1 #define FLAG_STREAM 2 #define GLYPH_STREAM 3 #define COMPOSITE_STREAM 4 #define BBOX_STREAM 5 #define INSTRUCTION_STREAM 6 static void stream_close( FT_Stream stream ) { FT_Memory memory = stream->memory; FT_FREE( stream->base ); stream->size = 0; | > > < | 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 | #define N_POINTS_STREAM 1 #define FLAG_STREAM 2 #define GLYPH_STREAM 3 #define COMPOSITE_STREAM 4 #define BBOX_STREAM 5 #define INSTRUCTION_STREAM 6 #define HAVE_OVERLAP_SIMPLE_BITMAP 0x1 static void stream_close( FT_Stream stream ) { FT_Memory memory = stream->memory; FT_FREE( stream->base ); stream->size = 0; stream->close = NULL; } FT_COMPARE_DEF( int ) compare_tags( const void* a, const void* b ) |
︙ | ︙ | |||
519 520 521 522 523 524 525 526 527 528 529 530 531 532 | /* Store decoded points in glyph buffer. */ static FT_Error store_points( FT_ULong n_points, const WOFF2_Point points, FT_UShort n_contours, FT_UShort instruction_len, FT_Byte* dst, FT_ULong dst_size, FT_ULong* glyph_size ) { FT_UInt flag_offset = 10 + ( 2 * n_contours ) + 2 + instruction_len; FT_Byte last_flag = 0xFFU; FT_Byte repeat_count = 0; | > | 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 | /* Store decoded points in glyph buffer. */ static FT_Error store_points( FT_ULong n_points, const WOFF2_Point points, FT_UShort n_contours, FT_UShort instruction_len, FT_Bool have_overlap, FT_Byte* dst, FT_ULong dst_size, FT_ULong* glyph_size ) { FT_UInt flag_offset = 10 + ( 2 * n_contours ) + 2 + instruction_len; FT_Byte last_flag = 0xFFU; FT_Byte repeat_count = 0; |
︙ | ︙ | |||
546 547 548 549 550 551 552 553 554 555 556 557 558 559 | const WOFF2_PointRec point = points[i]; FT_Byte flag = point.on_curve ? GLYF_ON_CURVE : 0; FT_Int dx = point.x - last_x; FT_Int dy = point.y - last_y; if ( dx == 0 ) flag |= GLYF_THIS_X_IS_SAME; else if ( dx > -256 && dx < 256 ) { flag |= GLYF_X_SHORT | ( dx > 0 ? GLYF_THIS_X_IS_SAME : 0 ); x_bytes += 1; } | > > > | 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 | const WOFF2_PointRec point = points[i]; FT_Byte flag = point.on_curve ? GLYF_ON_CURVE : 0; FT_Int dx = point.x - last_x; FT_Int dy = point.y - last_y; if ( i == 0 && have_overlap ) flag |= GLYF_OVERLAP_SIMPLE; if ( dx == 0 ) flag |= GLYF_THIS_X_IS_SAME; else if ( dx > -256 && dx < 256 ) { flag |= GLYF_X_SHORT | ( dx > 0 ? GLYF_THIS_X_IS_SAME : 0 ); x_bytes += 1; } |
︙ | ︙ | |||
830 831 832 833 834 835 836 837 838 839 840 841 842 | FT_Byte* sfnt = *sfnt_bytes; /* current position in stream */ const FT_ULong pos = FT_STREAM_POS(); FT_UInt num_substreams = 7; FT_UShort num_glyphs; FT_UShort index_format; FT_ULong expected_loca_length; FT_UInt offset; FT_UInt i; FT_ULong points_size; | > < > > > | > > | | | | 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 | FT_Byte* sfnt = *sfnt_bytes; /* current position in stream */ const FT_ULong pos = FT_STREAM_POS(); FT_UInt num_substreams = 7; FT_UShort option_flags; FT_UShort num_glyphs; FT_UShort index_format; FT_ULong expected_loca_length; FT_UInt offset; FT_UInt i; FT_ULong points_size; FT_ULong glyph_buf_size; FT_ULong bbox_bitmap_offset; FT_ULong bbox_bitmap_length; FT_ULong overlap_bitmap_offset = 0; FT_ULong overlap_bitmap_length = 0; const FT_ULong glyf_start = *out_offset; FT_ULong dest_offset = *out_offset; WOFF2_Substream substreams = NULL; FT_ULong* loca_values = NULL; FT_UShort* n_points_arr = NULL; FT_Byte* glyph_buf = NULL; WOFF2_Point points = NULL; if ( FT_NEW_ARRAY( substreams, num_substreams ) ) goto Fail; if ( FT_STREAM_SKIP( 2 ) ) goto Fail; if ( FT_READ_USHORT( option_flags ) ) goto Fail; if ( FT_READ_USHORT( num_glyphs ) ) goto Fail; if ( FT_READ_USHORT( index_format ) ) goto Fail; FT_TRACE4(( "option_flags = %u; num_glyphs = %u; index_format = %u\n", option_flags, num_glyphs, index_format )); info->num_glyphs = num_glyphs; /* Calculate expected length of loca and compare. */ /* See https://www.w3.org/TR/WOFF2/#conform-mustRejectLoca */ /* index_format = 0 => Short version `loca'. */ /* index_format = 1 => Long version `loca'. */ expected_loca_length = ( index_format ? 4 : 2 ) * ( (FT_ULong)num_glyphs + 1 ); if ( info->loca_table->dst_length != expected_loca_length ) goto Fail; offset = 2 + 2 + 2 + 2 + ( num_substreams * 4 ); if ( offset > info->glyf_table->TransformLength ) goto Fail; for ( i = 0; i < num_substreams; ++i ) { FT_ULong substream_size; |
︙ | ︙ | |||
897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 | substreams[i].offset = pos + offset; substreams[i].size = substream_size; FT_TRACE5(( " Substream %d: offset = %lu; size = %lu;\n", i, substreams[i].offset, substreams[i].size )); offset += substream_size; } if ( FT_NEW_ARRAY( loca_values, num_glyphs + 1 ) ) goto Fail; points_size = 0; bbox_bitmap_offset = substreams[BBOX_STREAM].offset; /* Size of bboxBitmap = 4 * floor((numGlyphs + 31) / 32) */ | > > > > > > > > > > > > > > | > | | 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 | substreams[i].offset = pos + offset; substreams[i].size = substream_size; FT_TRACE5(( " Substream %d: offset = %lu; size = %lu;\n", i, substreams[i].offset, substreams[i].size )); offset += substream_size; } if ( option_flags & HAVE_OVERLAP_SIMPLE_BITMAP ) { /* Size of overlapBitmap = floor((numGlyphs + 7) / 8) */ overlap_bitmap_length = ( num_glyphs + 7U ) >> 3; if ( overlap_bitmap_length > info->glyf_table->TransformLength - offset ) goto Fail; overlap_bitmap_offset = pos + offset; FT_TRACE5(( " Overlap bitmap: offset = %lu; size = %lu;\n", overlap_bitmap_offset, overlap_bitmap_length )); offset += overlap_bitmap_length; } if ( FT_NEW_ARRAY( loca_values, num_glyphs + 1 ) ) goto Fail; points_size = 0; bbox_bitmap_offset = substreams[BBOX_STREAM].offset; /* Size of bboxBitmap = 4 * floor((numGlyphs + 31) / 32) */ bbox_bitmap_length = ( ( num_glyphs + 31U ) >> 5 ) << 2; /* bboxStreamSize is the combined size of bboxBitmap and bboxStream. */ substreams[BBOX_STREAM].offset += bbox_bitmap_length; glyph_buf_size = WOFF2_DEFAULT_GLYPH_BUF; if ( FT_NEW_ARRAY( glyph_buf, glyph_buf_size ) ) goto Fail; if ( FT_NEW_ARRAY( info->x_mins, num_glyphs ) ) goto Fail; |
︙ | ︙ | |||
1022 1023 1024 1025 1026 1027 1028 | /* simple glyph */ FT_ULong total_n_points = 0; FT_UShort n_points_contour; FT_UInt j; FT_ULong flag_size; FT_ULong triplet_size; FT_ULong triplet_bytes_used; | > > > | | > > > > > > > > > > > | 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 | /* simple glyph */ FT_ULong total_n_points = 0; FT_UShort n_points_contour; FT_UInt j; FT_ULong flag_size; FT_ULong triplet_size; FT_ULong triplet_bytes_used; FT_Bool have_overlap = FALSE; FT_Byte overlap_bitmap; FT_ULong overlap_offset; FT_Byte* flags_buf = NULL; FT_Byte* triplet_buf = NULL; FT_UShort instruction_size; FT_ULong size_needed; FT_Int end_point; FT_UInt contour_ix; FT_Byte* pointer = NULL; /* Set `have_overlap`. */ if ( overlap_bitmap_offset ) { overlap_offset = overlap_bitmap_offset + ( i >> 3 ); if ( FT_STREAM_SEEK( overlap_offset ) || FT_READ_BYTE( overlap_bitmap ) ) goto Fail; if ( overlap_bitmap & ( 0x80 >> ( i & 7 ) ) ) have_overlap = TRUE; } if ( FT_NEW_ARRAY( n_points_arr, n_contours ) ) goto Fail; if ( FT_STREAM_SEEK( substreams[N_POINTS_STREAM].offset ) ) goto Fail; |
︙ | ︙ | |||
1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 | substreams[INSTRUCTION_STREAM].offset += instruction_size; glyph_size += instruction_size; if ( store_points( total_n_points, points, n_contours, instruction_size, glyph_buf, glyph_buf_size, &glyph_size ) ) goto Fail; FT_FREE( points ); FT_FREE( n_points_arr ); | > | 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 | substreams[INSTRUCTION_STREAM].offset += instruction_size; glyph_size += instruction_size; if ( store_points( total_n_points, points, n_contours, instruction_size, have_overlap, glyph_buf, glyph_buf_size, &glyph_size ) ) goto Fail; FT_FREE( points ); FT_FREE( n_points_arr ); |
︙ | ︙ | |||
2082 2083 2084 2085 2086 2087 2088 | error = FT_THROW( Invalid_Table ); goto Exit; } /* Validate requested face index. */ *num_faces = woff2.num_fonts; /* value -(N+1) requests information on index N */ | | | 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 | error = FT_THROW( Invalid_Table ); goto Exit; } /* Validate requested face index. */ *num_faces = woff2.num_fonts; /* value -(N+1) requests information on index N */ if ( *face_instance_index < 0 && face_index > 0 ) face_index--; if ( face_index >= woff2.num_fonts ) { if ( *face_instance_index >= 0 ) { error = FT_THROW( Invalid_Argument ); |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/sfwoff2.h.
1 2 3 4 5 6 | /**************************************************************************** * * sfwoff2.h * * WOFFF2 format management (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * sfwoff2.h * * WOFFF2 format management (specification). * * Copyright (C) 2019-2022 by * Nikhil Ramakrishnan, David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
52 53 54 55 56 57 58 59 60 61 62 63 64 65 | /* Simple glyph flags */ #define GLYF_ON_CURVE 1 << 0 #define GLYF_X_SHORT 1 << 1 #define GLYF_Y_SHORT 1 << 2 #define GLYF_REPEAT 1 << 3 #define GLYF_THIS_X_IS_SAME 1 << 4 #define GLYF_THIS_Y_IS_SAME 1 << 5 /* Other constants */ #define CONTOUR_OFFSET_END_POINT 10 FT_LOCAL( FT_Error ) woff2_open_font( FT_Stream stream, | > | 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | /* Simple glyph flags */ #define GLYF_ON_CURVE 1 << 0 #define GLYF_X_SHORT 1 << 1 #define GLYF_Y_SHORT 1 << 2 #define GLYF_REPEAT 1 << 3 #define GLYF_THIS_X_IS_SAME 1 << 4 #define GLYF_THIS_Y_IS_SAME 1 << 5 #define GLYF_OVERLAP_SIMPLE 1 << 6 /* Other constants */ #define CONTOUR_OFFSET_END_POINT 10 FT_LOCAL( FT_Error ) woff2_open_font( FT_Stream stream, |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttbdf.c.
1 2 3 4 5 6 | /**************************************************************************** * * ttbdf.c * * TrueType and OpenType embedded BDF properties (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttbdf.c * * TrueType and OpenType embedded BDF properties (body). * * Copyright (C) 2005-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttbdf.h.
1 2 3 4 5 6 | /**************************************************************************** * * ttbdf.h * * TrueType and OpenType embedded BDF properties (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttbdf.h * * TrueType and OpenType embedded BDF properties (specification). * * Copyright (C) 2005-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttcmap.c.
1 2 3 4 5 6 | /**************************************************************************** * * ttcmap.c * * TrueType character mapping table (cmap) support (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttcmap.c * * TrueType character mapping table (cmap) support (body). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttcmap.h.
1 2 3 4 5 6 | /**************************************************************************** * * ttcmap.h * * TrueType character mapping table (cmap) support (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttcmap.h * * TrueType character mapping table (cmap) support (specification). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttcmapc.h.
1 2 3 4 5 6 | /**************************************************************************** * * ttcmapc.h * * TT CMAP classes definitions (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttcmapc.h * * TT CMAP classes definitions (specification only). * * Copyright (C) 2009-2022 by * Oran Agra and Mickey Gabel. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttcolr.c.
1 2 3 4 5 6 | /**************************************************************************** * * ttcolr.c * * TrueType and OpenType colored glyph layer support (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttcolr.c * * TrueType and OpenType colored glyph layer support (body). * * Copyright (C) 2018-2022 by * David Turner, Robert Wilhelm, Dominik Röttsches, and Werner Lemberg. * * Originally written by Shao Yu Zhang <shaozhang@fb.com>. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ | |||
518 519 520 521 522 523 524 525 526 527 528 529 530 531 | apaint->u.linear_gradient.p2.y = INT_TO_FIXED( FT_NEXT_SHORT( p ) ); return 1; } else if ( apaint->format == FT_COLR_PAINTFORMAT_RADIAL_GRADIENT ) { if ( !read_color_line( child_table_p, &apaint->u.radial_gradient.colorline ) ) return 0; apaint->u.radial_gradient.c0.x = INT_TO_FIXED( FT_NEXT_SHORT( p ) ); apaint->u.radial_gradient.c0.y = INT_TO_FIXED( FT_NEXT_SHORT( p ) ); | > > > > > > > > > | > | | 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 | apaint->u.linear_gradient.p2.y = INT_TO_FIXED( FT_NEXT_SHORT( p ) ); return 1; } else if ( apaint->format == FT_COLR_PAINTFORMAT_RADIAL_GRADIENT ) { FT_Pos tmp; if ( !read_color_line( child_table_p, &apaint->u.radial_gradient.colorline ) ) return 0; /* In the OpenType specification, `r0` and `r1` are defined as */ /* `UFWORD`. Since FreeType doesn't have a corresponding 16.16 */ /* format we convert to `FWORD` and replace negative values with */ /* (32bit) `FT_INT_MAX`. */ apaint->u.radial_gradient.c0.x = INT_TO_FIXED( FT_NEXT_SHORT( p ) ); apaint->u.radial_gradient.c0.y = INT_TO_FIXED( FT_NEXT_SHORT( p ) ); tmp = INT_TO_FIXED( FT_NEXT_SHORT( p ) ); apaint->u.radial_gradient.r0 = tmp < 0 ? FT_INT_MAX : tmp; apaint->u.radial_gradient.c1.x = INT_TO_FIXED( FT_NEXT_SHORT( p ) ); apaint->u.radial_gradient.c1.y = INT_TO_FIXED( FT_NEXT_SHORT( p ) ); tmp = INT_TO_FIXED( FT_NEXT_SHORT( p ) ); apaint->u.radial_gradient.r1 = tmp < 0 ? FT_INT_MAX : tmp; return 1; } else if ( apaint->format == FT_COLR_PAINTFORMAT_SWEEP_GRADIENT ) { if ( !read_color_line( child_table_p, |
︙ | ︙ | |||
820 821 822 823 824 825 826 | FT_LOCAL_DEF( FT_Bool ) tt_face_get_color_glyph_clipbox( TT_Face face, FT_UInt base_glyph, FT_ClipBox* clip_box ) { Colr* colr; | | | 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 | FT_LOCAL_DEF( FT_Bool ) tt_face_get_color_glyph_clipbox( TT_Face face, FT_UInt base_glyph, FT_ClipBox* clip_box ) { Colr* colr; FT_Byte *p, *p1, *clip_base, *limit; FT_Byte clip_list_format; FT_ULong num_clip_boxes, i; FT_UShort gid_start, gid_end; FT_UInt32 clip_box_offset; FT_Byte format; |
︙ | ︙ | |||
842 843 844 845 846 847 848 849 850 851 852 853 | if ( !colr ) return 0; if ( !colr->clip_list ) return 0; p = colr->clip_list; clip_base = p; clip_list_format = FT_NEXT_BYTE ( p ); /* Format byte used here to be able to upgrade ClipList for >16bit */ | > > > > > > > > > > | > > > > > > > | > > > > | 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 | if ( !colr ) return 0; if ( !colr->clip_list ) return 0; p = colr->clip_list; /* Limit points to the first byte after the end of the color table. */ /* Thus, in subsequent limit checks below we need to check whether the */ /* read pointer is strictly greater than a position offset by certain */ /* field sizes to the left of that position. */ limit = (FT_Byte*)colr->table + colr->table_size; /* Check whether we can extract one `uint8` and one `uint32`. */ if ( p > limit - ( 1 + 4 ) ) return 0; clip_base = p; clip_list_format = FT_NEXT_BYTE ( p ); /* Format byte used here to be able to upgrade ClipList for >16bit */ /* glyph ids; for now we can expect it to be 0. */ if ( !( clip_list_format == 1 ) ) return 0; num_clip_boxes = FT_NEXT_ULONG( p ); /* Check whether we can extract two `uint16` and one `Offset24`, */ /* `num_clip_boxes` times. */ if ( colr->table_size / ( 2 + 2 + 3 ) < num_clip_boxes || p > limit - ( 2 + 2 + 3 ) * num_clip_boxes ) return 0; for ( i = 0; i < num_clip_boxes; ++i ) { gid_start = FT_NEXT_USHORT( p ); gid_end = FT_NEXT_USHORT( p ); clip_box_offset = FT_NEXT_UOFF3( p ); if ( base_glyph >= gid_start && base_glyph <= gid_end ) { p1 = (FT_Byte*)( clip_base + clip_box_offset ); /* Check whether we can extract one `uint8`. */ if ( p1 > limit - 1 ) return 0; format = FT_NEXT_BYTE( p1 ); if ( format > 1 ) return 0; /* Check whether we can extract four `FWORD`. */ if ( p1 > limit - ( 2 + 2 + 2 + 2 ) ) return 0; /* `face->root.size->metrics.x_scale` and `y_scale` are factors */ /* that scale a font unit value in integers to a 26.6 fixed value */ /* according to the requested size, see for example */ /* `ft_recompute_scaled_metrics`. */ font_clip_box.xMin = FT_MulFix( FT_NEXT_SHORT( p1 ), face->root.size->metrics.x_scale ); |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttcolr.h.
1 2 3 4 5 6 | /**************************************************************************** * * ttcolr.h * * TrueType and OpenType colored glyph layer support (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttcolr.h * * TrueType and OpenType colored glyph layer support (specification). * * Copyright (C) 2018-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * Originally written by Shao Yu Zhang <shaozhang@fb.com>. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttcpal.c.
1 2 3 4 5 6 | /**************************************************************************** * * ttcpal.c * * TrueType and OpenType color palette support (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttcpal.c * * TrueType and OpenType color palette support (body). * * Copyright (C) 2018-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * Originally written by Shao Yu Zhang <shaozhang@fb.com>. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttcpal.h.
1 2 3 4 5 6 | /**************************************************************************** * * ttcpal.h * * TrueType and OpenType color palette support (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttcpal.h * * TrueType and OpenType color palette support (specification). * * Copyright (C) 2018-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * Originally written by Shao Yu Zhang <shaozhang@fb.com>. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttkern.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * ttkern.c * * Load the basic TrueType kerning table. This doesn't handle * kerning data within the GPOS table at the moment. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * ttkern.c * * Load the basic TrueType kerning table. This doesn't handle * kerning data within the GPOS table at the moment. * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
90 91 92 93 94 95 96 | if ( p + 6 > p_limit ) break; p_next = p; | | | 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | if ( p + 6 > p_limit ) break; p_next = p; p += 2; /* skip version */ length = FT_NEXT_USHORT( p ); coverage = FT_NEXT_USHORT( p ); if ( length <= 6 + 8 ) break; p_next += length; |
︙ | ︙ | |||
140 141 142 143 144 145 146 | for ( count = num_pairs - 1; count > 0; count-- ) { FT_UInt32 cur_pair; cur_pair = FT_NEXT_ULONG( p ); | | | 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | for ( count = num_pairs - 1; count > 0; count-- ) { FT_UInt32 cur_pair; cur_pair = FT_NEXT_ULONG( p ); if ( cur_pair < old_pair ) break; p += 2; old_pair = cur_pair; } if ( count == 0 ) |
︙ | ︙ | |||
183 184 185 186 187 188 189 | FT_LOCAL_DEF( FT_Int ) tt_face_get_kerning( TT_Face face, FT_UInt left_glyph, FT_UInt right_glyph ) { | | | > | | > > > > > > | 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 | FT_LOCAL_DEF( FT_Int ) tt_face_get_kerning( TT_Face face, FT_UInt left_glyph, FT_UInt right_glyph ) { FT_Int result = 0; FT_UInt count, mask; FT_Byte* p; FT_Byte* p_limit; if ( !face->kern_table ) return result; p = face->kern_table; p_limit = p + face->kern_table_size; p += 4; mask = 0x0001; for ( count = face->num_kern_tables; count > 0 && p + 6 <= p_limit; count--, mask <<= 1 ) |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttkern.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * ttkern.h * * Load the basic TrueType kerning table. This doesn't handle * kerning data within the GPOS table at the moment. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * ttkern.h * * Load the basic TrueType kerning table. This doesn't handle * kerning data within the GPOS table at the moment. * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttload.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * ttload.c * * Load the basic TrueType tables, i.e., tables that can be either in * TTF or OTF fonts (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * ttload.c * * Load the basic TrueType tables, i.e., tables that can be either in * TTF or OTF fonts (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
201 202 203 204 205 206 207 | for ( nn = 0; nn < sfnt->num_tables; nn++ ) { TT_TableRec table; if ( FT_STREAM_READ_FIELDS( table_dir_entry_fields, &table ) ) { | < | 201 202 203 204 205 206 207 208 209 210 211 212 213 214 | for ( nn = 0; nn < sfnt->num_tables; nn++ ) { TT_TableRec table; if ( FT_STREAM_READ_FIELDS( table_dir_entry_fields, &table ) ) { FT_TRACE2(( "check_table_dir:" " can read only %d table%s in font (instead of %d)\n", nn, nn == 1 ? "" : "s", sfnt->num_tables )); sfnt->num_tables = nn; break; } |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttload.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * ttload.h * * Load the basic TrueType tables, i.e., tables that can be either in * TTF or OTF fonts (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * ttload.h * * Load the basic TrueType tables, i.e., tables that can be either in * TTF or OTF fonts (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttmtx.c.
1 2 3 4 5 6 | /**************************************************************************** * * ttmtx.c * * Load the metrics tables common to TTF and OTF fonts (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttmtx.c * * Load the metrics tables common to TTF and OTF fonts (body). * * Copyright (C) 2006-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttmtx.h.
1 2 3 4 5 6 | /**************************************************************************** * * ttmtx.h * * Load the metrics tables common to TTF and OTF fonts (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttmtx.h * * Load the metrics tables common to TTF and OTF fonts (specification). * * Copyright (C) 2006-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttpost.c.
1 2 3 4 5 6 7 | /**************************************************************************** * * ttpost.c * * PostScript name table processing for TrueType and OpenType fonts * (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * ttpost.c * * PostScript name table processing for TrueType and OpenType fonts * (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttpost.h.
1 2 3 4 5 6 7 | /**************************************************************************** * * ttpost.h * * PostScript name table processing for TrueType and OpenType fonts * (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /**************************************************************************** * * ttpost.h * * PostScript name table processing for TrueType and OpenType fonts * (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttsbit.c.
1 2 3 4 5 6 | /**************************************************************************** * * ttsbit.c * * TrueType and OpenType embedded bitmap support (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttsbit.c * * TrueType and OpenType embedded bitmap support (body). * * Copyright (C) 2005-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * Copyright 2013 by Google, Inc. * Google Author(s): Behdad Esfahbod. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project |
︙ | ︙ | |||
168 169 170 171 172 173 174 | if ( !( flags == 1 || flags == 3 ) || num_strikes >= 0x10000UL ) { error = FT_THROW( Invalid_File_Format ); goto Exit; } | < < < < | < < < < < | 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 | if ( !( flags == 1 || flags == 3 ) || num_strikes >= 0x10000UL ) { error = FT_THROW( Invalid_File_Format ); goto Exit; } if ( flags == 3 ) face->root.face_flags |= FT_FACE_FLAG_SBIX_OVERLAY; /* * Count the number of strikes available in the table. We are a bit * paranoid there and don't trust the data. */ count = (FT_UInt)num_strikes; if ( 8 + 4UL * count > table_size ) |
︙ | ︙ | |||
725 726 727 728 729 730 731 732 733 734 735 736 737 738 | /* check that we can write the glyph into the bitmap */ bitmap = decoder->bitmap; bit_width = bitmap->width; bit_height = bitmap->rows; pitch = bitmap->pitch; line = bitmap->buffer; width = decoder->metrics->width; height = decoder->metrics->height; line_bits = width * decoder->bit_depth; if ( x_pos < 0 || (FT_UInt)( x_pos + width ) > bit_width || | > > > | 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 | /* check that we can write the glyph into the bitmap */ bitmap = decoder->bitmap; bit_width = bitmap->width; bit_height = bitmap->rows; pitch = bitmap->pitch; line = bitmap->buffer; if ( !line ) goto Exit; width = decoder->metrics->width; height = decoder->metrics->height; line_bits = width * decoder->bit_depth; if ( x_pos < 0 || (FT_UInt)( x_pos + width ) > bit_width || |
︙ | ︙ | |||
1573 1574 1575 1576 1577 1578 1579 | break; } FT_FRAME_EXIT(); if ( !error ) { | | > > | > > > > > > > > > > > > > > > | 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 | break; } FT_FRAME_EXIT(); if ( !error ) { FT_Short abearing; /* not used here */ FT_UShort aadvance; tt_face_get_metrics( face, FALSE, glyph_index, &abearing, &aadvance ); metrics->horiBearingX = (FT_Short)originOffsetX; metrics->vertBearingX = (FT_Short)originOffsetX; metrics->horiBearingY = (FT_Short)( originOffsetY + metrics->height ); metrics->vertBearingY = (FT_Short)originOffsetY; metrics->horiAdvance = (FT_UShort)( aadvance * face->root.size->metrics.x_ppem / face->header.Units_Per_EM ); if ( face->vertical_info ) tt_face_get_metrics( face, TRUE, glyph_index, &abearing, &aadvance ); else if ( face->os2.version != 0xFFFFU ) aadvance = (FT_UShort)FT_ABS( face->os2.sTypoAscender - face->os2.sTypoDescender ); else aadvance = (FT_UShort)FT_ABS( face->horizontal.Ascender - face->horizontal.Descender ); metrics->vertAdvance = (FT_UShort)( aadvance * face->root.size->metrics.x_ppem / face->header.Units_Per_EM ); } return error; } |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/ttsbit.h.
1 2 3 4 5 6 | /**************************************************************************** * * ttsbit.h * * TrueType and OpenType embedded bitmap support (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttsbit.h * * TrueType and OpenType embedded bitmap support (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Added jni/freetype/src/sfnt/ttsvg.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /**************************************************************************** * * ttsvg.c * * OpenType SVG Color (specification). * * Copyright (C) 2022 by * David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. * */ /************************************************************************** * * 'SVG' table specification: * * https://docs.microsoft.com/en-us/typography/opentype/spec/svg * */ #include <ft2build.h> #include <freetype/internal/ftstream.h> #include <freetype/internal/ftobjs.h> #include <freetype/internal/ftdebug.h> #include <freetype/tttags.h> #include <freetype/ftgzip.h> #include <freetype/otsvg.h> #ifdef FT_CONFIG_OPTION_SVG #include "ttsvg.h" /* NOTE: These table sizes are given by the specification. */ #define SVG_TABLE_HEADER_SIZE (10U) #define SVG_DOCUMENT_RECORD_SIZE (12U) #define SVG_DOCUMENT_LIST_MINIMUM_SIZE (2U + SVG_DOCUMENT_RECORD_SIZE) #define SVG_MINIMUM_SIZE (SVG_TABLE_HEADER_SIZE + \ SVG_DOCUMENT_LIST_MINIMUM_SIZE) typedef struct Svg_ { FT_UShort version; /* table version (starting at 0) */ FT_UShort num_entries; /* number of SVG document records */ FT_Byte* svg_doc_list; /* pointer to the start of SVG Document List */ void* table; /* memory that backs up SVG */ FT_ULong table_size; } Svg; /************************************************************************** * * The macro FT_COMPONENT is used in trace mode. It is an implicit * parameter of the FT_TRACE() and FT_ERROR() macros, usued to print/log * messages during execution. */ #undef FT_COMPONENT #define FT_COMPONENT ttsvg FT_LOCAL_DEF( FT_Error ) tt_face_load_svg( TT_Face face, FT_Stream stream ) { FT_Error error; FT_Memory memory = face->root.memory; FT_ULong table_size; FT_Byte* table = NULL; FT_Byte* p = NULL; Svg* svg = NULL; FT_ULong offsetToSVGDocumentList; error = face->goto_table( face, TTAG_SVG, stream, &table_size ); if ( error ) goto NoSVG; if ( table_size < SVG_MINIMUM_SIZE ) goto InvalidTable; if ( FT_FRAME_EXTRACT( table_size, table ) ) goto NoSVG; /* Allocate memory for the SVG object */ if ( FT_NEW( svg ) ) goto NoSVG; p = table; svg->version = FT_NEXT_USHORT( p ); offsetToSVGDocumentList = FT_NEXT_ULONG( p ); if ( offsetToSVGDocumentList < SVG_TABLE_HEADER_SIZE || offsetToSVGDocumentList > table_size - SVG_DOCUMENT_LIST_MINIMUM_SIZE ) goto InvalidTable; svg->svg_doc_list = (FT_Byte*)( table + offsetToSVGDocumentList ); p = svg->svg_doc_list; svg->num_entries = FT_NEXT_USHORT( p ); FT_TRACE3(( "version: %d\n", svg->version )); FT_TRACE3(( "number of entries: %d\n", svg->num_entries )); if ( offsetToSVGDocumentList + svg->num_entries * SVG_DOCUMENT_RECORD_SIZE > table_size ) goto InvalidTable; svg->table = table; svg->table_size = table_size; face->svg = svg; face->root.face_flags |= FT_FACE_FLAG_SVG; return FT_Err_Ok; InvalidTable: error = FT_THROW( Invalid_Table ); NoSVG: FT_FRAME_RELEASE( table ); FT_FREE( svg ); face->svg = NULL; return error; } FT_LOCAL_DEF( void ) tt_face_free_svg( TT_Face face ) { FT_Memory memory = face->root.memory; FT_Stream stream = face->root.stream; Svg* svg = (Svg*)face->svg; if ( svg ) { FT_FRAME_RELEASE( svg->table ); FT_FREE( svg ); } } typedef struct Svg_doc_ { FT_UShort start_glyph_id; FT_UShort end_glyph_id; FT_ULong offset; FT_ULong length; } Svg_doc; static Svg_doc extract_svg_doc( FT_Byte* stream ) { Svg_doc doc; doc.start_glyph_id = FT_NEXT_USHORT( stream ); doc.end_glyph_id = FT_NEXT_USHORT( stream ); doc.offset = FT_NEXT_ULONG( stream ); doc.length = FT_NEXT_ULONG( stream ); return doc; } static FT_Int compare_svg_doc( Svg_doc doc, FT_UInt glyph_index ) { if ( glyph_index < doc.start_glyph_id ) return -1; else if ( glyph_index > doc.end_glyph_id ) return 1; else return 0; } static FT_Error find_doc( FT_Byte* stream, FT_UShort num_entries, FT_UInt glyph_index, FT_ULong *doc_offset, FT_ULong *doc_length, FT_UShort *start_glyph, FT_UShort *end_glyph ) { FT_Error error; Svg_doc start_doc; Svg_doc mid_doc; Svg_doc end_doc; FT_Bool found = FALSE; FT_UInt i = 0; FT_UInt start_index = 0; FT_UInt end_index = num_entries - 1; FT_Int comp_res; /* search algorithm */ if ( num_entries == 0 ) { error = FT_THROW( Invalid_Table ); return error; } start_doc = extract_svg_doc( stream + start_index * 12 ); end_doc = extract_svg_doc( stream + end_index * 12 ); if ( ( compare_svg_doc( start_doc, glyph_index ) == -1 ) || ( compare_svg_doc( end_doc, glyph_index ) == 1 ) ) { error = FT_THROW( Invalid_Glyph_Index ); return error; } while ( start_index <= end_index ) { i = ( start_index + end_index ) / 2; mid_doc = extract_svg_doc( stream + i * 12 ); comp_res = compare_svg_doc( mid_doc, glyph_index ); if ( comp_res == 1 ) { start_index = i + 1; start_doc = extract_svg_doc( stream + start_index * 4 ); } else if ( comp_res == -1 ) { end_index = i - 1; end_doc = extract_svg_doc( stream + end_index * 4 ); } else { found = TRUE; break; } } /* search algorithm end */ if ( found != TRUE ) { FT_TRACE5(( "SVG glyph not found\n" )); error = FT_THROW( Invalid_Glyph_Index ); } else { *doc_offset = mid_doc.offset; *doc_length = mid_doc.length; *start_glyph = mid_doc.start_glyph_id; *end_glyph = mid_doc.end_glyph_id; error = FT_Err_Ok; } return error; } FT_LOCAL_DEF( FT_Error ) tt_face_load_svg_doc( FT_GlyphSlot glyph, FT_UInt glyph_index ) { FT_Byte* doc_list; /* pointer to the SVG doc list */ FT_UShort num_entries; /* total number of entries in doc list */ FT_ULong doc_offset; FT_ULong doc_length; FT_UShort start_glyph_id; FT_UShort end_glyph_id; FT_Error error = FT_Err_Ok; TT_Face face = (TT_Face)glyph->face; FT_Memory memory = face->root.memory; Svg* svg = (Svg*)face->svg; FT_SVG_Document svg_document = (FT_SVG_Document)glyph->other; FT_ASSERT( !( svg == NULL ) ); doc_list = svg->svg_doc_list; num_entries = FT_NEXT_USHORT( doc_list ); error = find_doc( doc_list, num_entries, glyph_index, &doc_offset, &doc_length, &start_glyph_id, &end_glyph_id ); if ( error != FT_Err_Ok ) goto Exit; doc_list = svg->svg_doc_list; /* reset, so we can use it again */ doc_list = (FT_Byte*)( doc_list + doc_offset ); if ( ( doc_list[0] == 0x1F ) && ( doc_list[1] == 0x8B ) && ( doc_list[2] == 0x08 ) ) { #ifdef FT_CONFIG_OPTION_USE_ZLIB FT_ULong uncomp_size; FT_Byte* uncomp_buffer = NULL; /* * Get the size of the original document. This helps in allotting the * buffer to accommodate the uncompressed version. The last 4 bytes * of the compressed document are equal to the original size modulo * 2^32. Since the size of SVG documents is less than 2^32 bytes we * can use this accurately. The four bytes are stored in * little-endian format. */ FT_TRACE4(( "SVG document is GZIP compressed\n" )); uncomp_size = (FT_ULong)doc_list[doc_length - 1] << 24 | (FT_ULong)doc_list[doc_length - 2] << 16 | (FT_ULong)doc_list[doc_length - 3] << 8 | (FT_ULong)doc_list[doc_length - 4]; if ( FT_QALLOC( uncomp_buffer, uncomp_size ) ) goto Exit; error = FT_Gzip_Uncompress( memory, uncomp_buffer, &uncomp_size, doc_list, doc_length ); if ( error ) { FT_FREE( uncomp_buffer ); error = FT_THROW( Invalid_Table ); goto Exit; } glyph->internal->flags |= FT_GLYPH_OWN_GZIP_SVG; doc_list = uncomp_buffer; doc_length = uncomp_size; #else /* !FT_CONFIG_OPTION_USE_ZLIB */ error = FT_THROW( Unimplemented_Feature ); goto Exit; #endif /* !FT_CONFIG_OPTION_USE_ZLIB */ } svg_document->svg_document = doc_list; svg_document->svg_document_length = doc_length; svg_document->metrics = glyph->face->size->metrics; svg_document->units_per_EM = glyph->face->units_per_EM; svg_document->start_glyph_id = start_glyph_id; svg_document->end_glyph_id = end_glyph_id; svg_document->transform.xx = 0x10000; svg_document->transform.xy = 0; svg_document->transform.yx = 0; svg_document->transform.yy = 0x10000; svg_document->delta.x = 0; svg_document->delta.y = 0; FT_TRACE5(( "start_glyph_id: %d\n", start_glyph_id )); FT_TRACE5(( "end_glyph_id: %d\n", end_glyph_id )); FT_TRACE5(( "svg_document:\n" )); FT_TRACE5(( " %.*s\n", (FT_UInt)doc_length, doc_list )); glyph->other = svg_document; Exit: return error; } #else /* !FT_CONFIG_OPTION_SVG */ /* ANSI C doesn't like empty source files */ typedef int _tt_svg_dummy; #endif /* !FT_CONFIG_OPTION_SVG */ /* END */ |
Added jni/freetype/src/sfnt/ttsvg.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /**************************************************************************** * * ttsvg.h * * OpenType SVG Color (specification). * * Copyright (C) 2022 by * David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. * */ #ifndef TTSVG_H_ #define TTSVG_H_ #include <freetype/internal/ftstream.h> #include <freetype/internal/tttypes.h> FT_BEGIN_HEADER FT_LOCAL( FT_Error ) tt_face_load_svg( TT_Face face, FT_Stream stream ); FT_LOCAL( void ) tt_face_free_svg( TT_Face face ); FT_LOCAL( FT_Error ) tt_face_load_svg_doc( FT_GlyphSlot glyph, FT_UInt glyph_index ); FT_END_HEADER #endif /* TTSVG_H_ */ /* END */ |
Changes to jni/freetype/src/sfnt/woff2tags.c.
1 2 3 4 5 6 | /**************************************************************************** * * woff2tags.c * * WOFF2 Font table tags (base). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * woff2tags.c * * WOFF2 Font table tags (base). * * Copyright (C) 2019-2022 by * Nikhil Ramakrishnan, David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/sfnt/woff2tags.h.
1 2 3 4 5 6 | /**************************************************************************** * * woff2tags.h * * WOFF2 Font table tags (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * woff2tags.h * * WOFF2 Font table tags (specification). * * Copyright (C) 2019-2022 by * Nikhil Ramakrishnan, David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/smooth/ftgrays.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftgrays.c * * A new `perfect' anti-aliasing renderer (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftgrays.c * * A new `perfect' anti-aliasing renderer (body). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 | #endif /* FT_STATIC_RASTER */ /* must be at least 6 bits! */ #define PIXEL_BITS 8 #define ONE_PIXEL ( 1 << PIXEL_BITS ) #define TRUNC( x ) (TCoord)( (x) >> PIXEL_BITS ) #define FRACT( x ) (TCoord)( (x) & ( ONE_PIXEL - 1 ) ) #if PIXEL_BITS >= 6 #define UPSCALE( x ) ( (x) * ( ONE_PIXEL >> 6 ) ) #define DOWNSCALE( x ) ( (x) >> ( PIXEL_BITS - 6 ) ) #else #define UPSCALE( x ) ( (x) >> ( 6 - PIXEL_BITS ) ) | > > | 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 | #endif /* FT_STATIC_RASTER */ /* must be at least 6 bits! */ #define PIXEL_BITS 8 #define ONE_PIXEL ( 1 << PIXEL_BITS ) #undef TRUNC #define TRUNC( x ) (TCoord)( (x) >> PIXEL_BITS ) #undef FRACT #define FRACT( x ) (TCoord)( (x) & ( ONE_PIXEL - 1 ) ) #if PIXEL_BITS >= 6 #define UPSCALE( x ) ( (x) * ( ONE_PIXEL >> 6 ) ) #define DOWNSCALE( x ) ( (x) >> ( PIXEL_BITS - 6 ) ) #else #define UPSCALE( x ) ( (x) >> ( 6 - PIXEL_BITS ) ) |
︙ | ︙ |
Changes to jni/freetype/src/smooth/ftgrays.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftgrays.h * * FreeType smooth renderer declaration * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftgrays.h * * FreeType smooth renderer declaration * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/smooth/ftsmerrs.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftsmerrs.h * * smooth renderer error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsmerrs.h * * smooth renderer error codes (specification only). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/smooth/ftsmooth.c.
1 2 3 4 5 6 | /**************************************************************************** * * ftsmooth.c * * Anti-aliasing renderer interface (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsmooth.c * * Anti-aliasing renderer interface (body). * * Copyright (C) 2000-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/smooth/ftsmooth.h.
1 2 3 4 5 6 | /**************************************************************************** * * ftsmooth.h * * Anti-aliasing renderer interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ftsmooth.h * * Anti-aliasing renderer interface (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/smooth/module.mk.
1 2 3 4 5 | # # FreeType 2 smooth renderer module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 smooth renderer module definition # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/smooth/rules.mk.
1 2 3 4 5 | # # FreeType 2 smooth renderer module build rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 smooth renderer module build rules # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/smooth/smooth.c.
1 2 3 4 5 6 | /**************************************************************************** * * smooth.c * * FreeType anti-aliasing rasterer module component (body only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * smooth.c * * FreeType anti-aliasing rasterer module component (body only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Added jni/freetype/src/svg/ftsvg.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /**************************************************************************** * * ftsvg.c * * The FreeType SVG renderer interface (body). * * Copyright (C) 2022 by * David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. * */ #include <freetype/internal/ftdebug.h> #include <freetype/internal/ftserv.h> #include <freetype/internal/services/svprop.h> #include <freetype/otsvg.h> #include <freetype/internal/svginterface.h> #include <freetype/ftbbox.h> #include "ftsvg.h" #include "svgtypes.h" /************************************************************************** * * The macro FT_COMPONENT is used in trace mode. It is an implicit * parameter of the FT_TRACE() and FT_ERROR() macros, usued to print/log * messages during execution. */ #undef FT_COMPONENT #define FT_COMPONENT otsvg #ifdef FT_CONFIG_OPTION_SVG /* ft_svg_init */ static FT_Error ft_svg_init( SVG_Renderer svg_module ) { FT_Error error = FT_Err_Ok; svg_module->loaded = FALSE; svg_module->hooks_set = FALSE; return error; } static void ft_svg_done( SVG_Renderer svg_module ) { if ( svg_module->loaded == TRUE && svg_module->hooks_set == TRUE ) svg_module->hooks.free_svg( &svg_module->state ); svg_module->loaded = FALSE; } static FT_Error ft_svg_preset_slot( FT_Module module, FT_GlyphSlot slot, FT_Bool cache ) { SVG_Renderer svg_renderer = (SVG_Renderer)module; SVG_RendererHooks hooks = svg_renderer->hooks; if ( svg_renderer->hooks_set == FALSE ) { FT_TRACE1(( "Hooks are NOT set. Can't render OT-SVG glyphs\n" )); return FT_THROW( Missing_SVG_Hooks ); } if ( svg_renderer->loaded == FALSE ) { FT_TRACE3(( "ft_svg_preset_slot: first presetting call," " calling init hook\n" )); hooks.init_svg( &svg_renderer->state ); svg_renderer->loaded = TRUE; } return hooks.preset_slot( slot, cache, &svg_renderer->state ); } static FT_Error ft_svg_render( FT_Renderer renderer, FT_GlyphSlot slot, FT_Render_Mode mode, const FT_Vector* origin ) { SVG_Renderer svg_renderer = (SVG_Renderer)renderer; FT_Library library = renderer->root.library; FT_Memory memory = library->memory; FT_Error error; FT_ULong size_image_buffer; SVG_RendererHooks hooks = svg_renderer->hooks; FT_UNUSED( mode ); FT_UNUSED( origin ); if ( mode != FT_RENDER_MODE_NORMAL ) return FT_THROW( Bad_Argument ); if ( svg_renderer->hooks_set == FALSE ) { FT_TRACE1(( "Hooks are NOT set. Can't render OT-SVG glyphs\n" )); return FT_THROW( Missing_SVG_Hooks ); } if ( svg_renderer->loaded == FALSE ) { FT_TRACE3(( "ft_svg_render: first rendering, calling init hook\n" )); error = hooks.init_svg( &svg_renderer->state ); svg_renderer->loaded = TRUE; } ft_svg_preset_slot( (FT_Module)renderer, slot, TRUE ); size_image_buffer = (FT_ULong)slot->bitmap.pitch * slot->bitmap.rows; /* No `FT_QALLOC` here since we need a clean, empty canvas */ /* to start with. */ if ( FT_ALLOC( slot->bitmap.buffer, size_image_buffer ) ) return error; error = hooks.render_svg( slot, &svg_renderer->state ); if ( error ) FT_FREE( slot->bitmap.buffer ); else slot->internal->flags |= FT_GLYPH_OWN_BITMAP; return error; } static const SVG_Interface svg_interface = { (Preset_Bitmap_Func)ft_svg_preset_slot }; static FT_Error ft_svg_property_set( FT_Module module, const char* property_name, const void* value, FT_Bool value_is_string ) { FT_Error error = FT_Err_Ok; SVG_Renderer renderer = (SVG_Renderer)module; if ( !ft_strcmp( property_name, "svg-hooks" ) ) { SVG_RendererHooks* hooks; if ( value_is_string == TRUE ) { error = FT_THROW( Invalid_Argument ); goto Exit; } hooks = (SVG_RendererHooks*)value; if ( !hooks->init_svg || !hooks->free_svg || !hooks->render_svg || !hooks->preset_slot ) { FT_TRACE0(( "ft_svg_property_set:" " SVG rendering hooks not set because\n" )); FT_TRACE0(( " " " at least one function pointer is NULL\n" )); error = FT_THROW( Invalid_Argument ); goto Exit; } renderer->hooks = *hooks; renderer->hooks_set = TRUE; } else error = FT_THROW( Missing_Property ); Exit: return error; } static FT_Error ft_svg_property_get( FT_Module module, const char* property_name, const void* value ) { FT_Error error = FT_Err_Ok; SVG_Renderer renderer = (SVG_Renderer)module; if ( !ft_strcmp( property_name, "svg-hooks" ) ) { SVG_RendererHooks* hooks = (SVG_RendererHooks*)value; *hooks = renderer->hooks; } else error = FT_THROW( Missing_Property ); return error; } FT_DEFINE_SERVICE_PROPERTIESREC( ft_svg_service_properties, (FT_Properties_SetFunc)ft_svg_property_set, /* set_property */ (FT_Properties_GetFunc)ft_svg_property_get /* get_property */ ) FT_DEFINE_SERVICEDESCREC1( ft_svg_services, FT_SERVICE_ID_PROPERTIES, &ft_svg_service_properties ) FT_CALLBACK_DEF( FT_Module_Interface ) ft_svg_get_interface( FT_Module module, const char* ft_svg_interface ) { FT_Module_Interface result; FT_UNUSED( module ); result = ft_service_list_lookup( ft_svg_services, ft_svg_interface ); if ( result ) return result; return 0; } static FT_Error ft_svg_transform( FT_Renderer renderer, FT_GlyphSlot slot, const FT_Matrix* _matrix, const FT_Vector* _delta ) { FT_SVG_Document doc = (FT_SVG_Document)slot->other; FT_Matrix* matrix = (FT_Matrix*)_matrix; FT_Vector* delta = (FT_Vector*)_delta; FT_Matrix tmp_matrix; FT_Vector tmp_delta; FT_Matrix a, b; FT_Pos x, y; FT_UNUSED( renderer ); if ( !matrix ) { tmp_matrix.xx = 0x10000; tmp_matrix.xy = 0; tmp_matrix.yx = 0; tmp_matrix.yy = 0x10000; matrix = &tmp_matrix; } if ( !delta ) { tmp_delta.x = 0; tmp_delta.y = 0; delta = &tmp_delta; } a = doc->transform; b = *matrix; FT_Matrix_Multiply( &b, &a ); x = ADD_LONG( ADD_LONG( FT_MulFix( matrix->xx, doc->delta.x ), FT_MulFix( matrix->xy, doc->delta.y ) ), delta->x ); y = ADD_LONG( ADD_LONG( FT_MulFix( matrix->yx, doc->delta.x ), FT_MulFix( matrix->yy, doc->delta.y ) ), delta->y ); doc->delta.x = x; doc->delta.y = y; doc->transform = a; return FT_Err_Ok; } #endif /* FT_CONFIG_OPTION_SVG */ #ifdef FT_CONFIG_OPTION_SVG #define PUT_SVG_MODULE( a ) a #define SVG_GLYPH_FORMAT FT_GLYPH_FORMAT_SVG #else #define PUT_SVG_MODULE( a ) NULL #define SVG_GLYPH_FORMAT FT_GLYPH_FORMAT_NONE #endif FT_DEFINE_RENDERER( ft_svg_renderer_class, FT_MODULE_RENDERER, sizeof ( SVG_RendererRec ), "ot-svg", 0x10000L, 0x20000L, (const void*)PUT_SVG_MODULE( &svg_interface ), /* module specific interface */ (FT_Module_Constructor)PUT_SVG_MODULE( ft_svg_init ), /* module_init */ (FT_Module_Destructor)PUT_SVG_MODULE( ft_svg_done ), /* module_done */ PUT_SVG_MODULE( ft_svg_get_interface ), /* get_interface */ SVG_GLYPH_FORMAT, (FT_Renderer_RenderFunc) PUT_SVG_MODULE( ft_svg_render ), /* render_glyph */ (FT_Renderer_TransformFunc)PUT_SVG_MODULE( ft_svg_transform ), /* transform_glyph */ NULL, /* get_glyph_cbox */ NULL, /* set_mode */ NULL /* raster_class */ ) /* END */ |
Added jni/freetype/src/svg/ftsvg.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /**************************************************************************** * * ftsvg.h * * The FreeType SVG renderer interface (specification). * * Copyright (C) 2022 by * David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. * */ #ifndef FTSVG_H_ #define FTSVG_H_ #include <ft2build.h> #include <freetype/ftrender.h> #include <freetype/internal/ftobjs.h> FT_BEGIN_HEADER FT_DECLARE_RENDERER( ft_svg_renderer_class ) FT_END_HEADER #endif /* FTSVG_H_ */ /* END */ |
Added jni/freetype/src/svg/module.mk.
> > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # # FreeType 2 SVG renderer module definition # # Copyright (C) 2022 by # David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. FTMODULE_H_COMMANDS += SVG_MODULE define SVG_MODULE $(OPEN_DRIVER) FT_Renderer_Class, ft_svg_renderer_class $(CLOSE_DRIVER) $(ECHO_DRIVER)ot-svg $(ECHO_DRIVER_DESC)OT-SVG glyph renderer module$(ECHO_DRIVER_DONE) endef # EOF |
Added jni/freetype/src/svg/rules.mk.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | # # FreeType 2 SVG renderer module build rules # # Copyright (C) 2022 by # David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. # SVG renderer driver directory # SVG_DIR := $(SRC_DIR)/svg # compilation flags for the driver # SVG_COMPILE := $(CC) $(ANSIFLAGS) \ $I$(subst /,$(COMPILER_SEP),$(SVG_DIR)) \ $(INCLUDE_FLAGS) \ $(FT_CFLAGS) # SVG renderer sources (i.e., C files) # SVG_DRV_SRC := $(SVG_DIR)/ftsvg.c # SVG renderer headers # SVG_DRV_H := $(SVG_DIR)/ftsvg.h \ $(SVG_DIR)/svgtypes.h # SVG renderer object(s) # # SVG_DRV_OBJ_M is used during `multi' builds. # SVG_DRV_OBJ_S is used during `single' builds. # SVG_DRV_OBJ_M := $(SVG_DRV_SRC:$(SVG_DIR)/%.c=$(OBJ_DIR)/%.$O) SVG_DRV_OBJ_S := $(OBJ_DIR)/svg.$O # SVG renderer source file for single build # SVG_DRV_SRC_S := $(SVG_DIR)/svg.c # SVG renderer - single object # $(SVG_DRV_OBJ_S): $(SVG_DRV_SRC_S) $(SVG_DRV_SRC) \ $(FREETYPE_H) $(SVG_DRV_H) $(SVG_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(SVG_DRV_SRC_S)) # SVG renderer - multiple objects # $(OBJ_DIR)/%.$O: $(SVG_DIR)/%.c $(FREETYPE_H) $(SVG_DRV_H) $(SVG_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<) # update main driver object lists # DRV_OBJS_S += $(SVG_DRV_OBJ_S) DRV_OBJS_M += $(SVG_DRV_OBJ_M) # EOF |
Added jni/freetype/src/svg/svg.c.
> > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /**************************************************************************** * * svg.c * * FreeType SVG renderer module component (body only). * * Copyright (C) 2022 by * David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. * */ #ifndef ANDROID #define FT_MAKE_OPTION_SINGLE_OBJECT #include "svgtypes.h" #include "ftsvg.c" #endif /* ANDROID */ /* END */ |
Added jni/freetype/src/svg/svgtypes.h.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /**************************************************************************** * * svgtypes.h * * The FreeType SVG renderer internal types (specification). * * Copyright (C) 2022 by * David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. * */ #ifndef SVGTYPES_H_ #define SVGTYPES_H_ #include <ft2build.h> #include <freetype/internal/ftobjs.h> #include <freetype/ftrender.h> #include <freetype/otsvg.h> typedef struct SVG_RendererRec_ { FT_RendererRec root; /* this inherits FT_RendererRec */ FT_Bool loaded; FT_Bool hooks_set; SVG_RendererHooks hooks; /* this holds hooks for SVG rendering */ FT_Pointer state; /* a place for hooks to store state, if needed */ } SVG_RendererRec; typedef struct SVG_RendererRec_* SVG_Renderer; #endif /* SVGTYPES_H_ */ /* EOF */ |
Changes to jni/freetype/src/tools/afblue.pl.
1 2 3 4 5 6 7 | #! /usr/bin/perl -w # -*- Perl -*- # # afblue.pl # # Process a blue zone character data file. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #! /usr/bin/perl -w # -*- Perl -*- # # afblue.pl # # Process a blue zone character data file. # # Copyright (C) 2013-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, # modified, and distributed under the terms of the FreeType project # license, LICENSE.TXT. By continuing to use, modify, or distribute # this file you indicate that you have read the license and # understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/tools/glnames.py.
1 2 3 4 5 6 7 8 | #!/usr/bin/env python # # # FreeType 2 glyph name builder # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #!/usr/bin/env python # # # FreeType 2 glyph name builder # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/tools/update-copyright-year.
1 2 3 4 | eval '(exit $?0)' && eval 'exec perl -wS -i "$0" ${1+"$@"}' & eval 'exec perl -wS -i "$0" $argv:q' if 0; | | | 1 2 3 4 5 6 7 8 9 10 11 12 | eval '(exit $?0)' && eval 'exec perl -wS -i "$0" ${1+"$@"}' & eval 'exec perl -wS -i "$0" $argv:q' if 0; # Copyright (C) 2015-2022 by # Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/truetype/module.mk.
1 2 3 4 5 | # # FreeType 2 TrueType module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 TrueType module definition # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/truetype/rules.mk.
1 2 3 4 5 | # # FreeType 2 TrueType driver configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 TrueType driver configuration rules # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/truetype/truetype.c.
1 2 3 4 5 6 | /**************************************************************************** * * truetype.c * * FreeType TrueType driver component (body only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * truetype.c * * FreeType TrueType driver component (body only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/truetype/ttdriver.c.
1 2 3 4 5 6 | /**************************************************************************** * * ttdriver.c * * TrueType font driver implementation (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttdriver.c * * TrueType font driver implementation (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/truetype/ttdriver.h.
1 2 3 4 5 6 | /**************************************************************************** * * ttdriver.h * * High-level TrueType driver interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttdriver.h * * High-level TrueType driver interface (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/truetype/tterrors.h.
1 2 3 4 5 6 | /**************************************************************************** * * tterrors.h * * TrueType error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * tterrors.h * * TrueType error codes (specification only). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/truetype/ttgload.c.
1 2 3 4 5 6 | /**************************************************************************** * * ttgload.c * * TrueType Glyph Loader (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttgload.c * * TrueType Glyph Loader (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
2226 2227 2228 2229 2230 2231 2232 | static FT_Error compute_glyph_metrics( TT_Loader loader, FT_UInt glyph_index ) { TT_Face face = loader->face; | < < < < | 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 | static FT_Error compute_glyph_metrics( TT_Loader loader, FT_UInt glyph_index ) { TT_Face face = loader->face; FT_BBox bbox; FT_Fixed y_scale; TT_GlyphSlot glyph = loader->glyph; TT_Size size = loader->size; |
︙ | ︙ | |||
2252 2253 2254 2255 2256 2257 2258 | /* get the device-independent horizontal advance; it is scaled later */ /* by the base layer. */ glyph->linearHoriAdvance = loader->linear; glyph->metrics.horiBearingX = bbox.xMin; glyph->metrics.horiBearingY = bbox.yMax; | < | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | < | < < < < < | < < | 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 | /* get the device-independent horizontal advance; it is scaled later */ /* by the base layer. */ glyph->linearHoriAdvance = loader->linear; glyph->metrics.horiBearingX = bbox.xMin; glyph->metrics.horiBearingY = bbox.yMax; if ( loader->widthp ) glyph->metrics.horiAdvance = loader->widthp[glyph_index] * 64; else glyph->metrics.horiAdvance = SUB_LONG(loader->pp2.x, loader->pp1.x); /* set glyph dimensions */ glyph->metrics.width = SUB_LONG( bbox.xMax, bbox.xMin ); glyph->metrics.height = SUB_LONG( bbox.yMax, bbox.yMin ); /* Now take care of vertical metrics. In the case where there is */ /* no vertical information within the font (relatively common), */ |
︙ | ︙ | |||
2731 2732 2733 2734 2735 2736 2737 | exec->GS = tt_default_graphics_state; #ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY /* check whether we have a font hinted for ClearType -- */ /* note that this flag can also be modified in a glyph's bytecode */ if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 && exec->GS.instruct_control & 4 ) | | > | > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 | exec->GS = tt_default_graphics_state; #ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY /* check whether we have a font hinted for ClearType -- */ /* note that this flag can also be modified in a glyph's bytecode */ if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 && exec->GS.instruct_control & 4 ) exec->ignore_x_mode = FALSE; #endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */ #ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL /* * Toggle backward compatibility according to what font wants, except * when * * 1) we have a `tricky' font that heavily relies on the interpreter to * render glyphs correctly, for example DFKai-SB, or * 2) FT_RENDER_MODE_MONO (i.e, monochome rendering) is requested. * * In those cases, backward compatibility needs to be turned off to get * correct rendering. The rendering is then completely up to the * font's programming. * */ if ( driver->interpreter_version == TT_INTERPRETER_VERSION_40 && subpixel_hinting_lean && !FT_IS_TRICKY( glyph->face ) ) exec->backward_compatibility = !( exec->GS.instruct_control & 4 ); else exec->backward_compatibility = FALSE; #endif /* TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL */ exec->pedantic_hinting = FT_BOOL( load_flags & FT_LOAD_PEDANTIC ); loader->exec = exec; loader->instructions = exec->glyphIns; /* Use the hdmx table if any unless FT_LOAD_COMPUTE_METRICS */ /* is set or backward compatibility mode of the v38 or v40 */ /* interpreters is active. See `ttinterp.h' for details on */ /* backward compatibility mode. */ if ( IS_HINTED( loader->load_flags ) && !( loader->load_flags & FT_LOAD_COMPUTE_METRICS ) && #ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL !( driver->interpreter_version == TT_INTERPRETER_VERSION_40 && exec->backward_compatibility ) && #endif #ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY !( driver->interpreter_version == TT_INTERPRETER_VERSION_38 && !SPH_OPTION_BITMAP_WIDTHS && FT_LOAD_TARGET_MODE( loader->load_flags ) != FT_RENDER_MODE_MONO && exec->compatible_widths ) && #endif !face->postscript.isFixedPitch ) { loader->widthp = size->widthp; } else loader->widthp = NULL; } #endif /* TT_USE_BYTECODE_INTERPRETER */ /* get face's glyph loader */ if ( !glyf_table_only ) { |
︙ | ︙ | |||
2784 2785 2786 2787 2788 2789 2790 | * @Function: * TT_Load_Glyph * * @Description: * A function used to load a single glyph within a given glyph slot, * for a given size. * | | > | 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 | * @Function: * TT_Load_Glyph * * @Description: * A function used to load a single glyph within a given glyph slot, * for a given size. * * @InOut: * glyph :: * A handle to a target slot object where the glyph * will be loaded. * * @Input: * size :: * A handle to the source face size at which the glyph * must be scaled/loaded. * * glyph_index :: * The index of the glyph in the font file. * |
︙ | ︙ | |||
2893 2894 2895 2896 2897 2898 2899 | { /* return error if font is not scalable */ if ( !FT_IS_SCALABLE( glyph->face ) ) return error; } else { | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > > | 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 | { /* return error if font is not scalable */ if ( !FT_IS_SCALABLE( glyph->face ) ) return error; } else { if ( FT_IS_SCALABLE( glyph->face ) || FT_HAS_SBIX( glyph->face ) ) { TT_Face face = (TT_Face)glyph->face; /* for the bbox we need the header only */ (void)tt_loader_init( &loader, size, glyph, load_flags, TRUE ); (void)load_truetype_glyph( &loader, glyph_index, 0, TRUE ); tt_loader_done( &loader ); glyph->linearHoriAdvance = loader.linear; glyph->linearVertAdvance = loader.vadvance; /* Bitmaps from the 'sbix' table need special treatment: */ /* if there is a glyph contour, the bitmap origin must be */ /* shifted to be relative to the lower left corner of the */ /* glyph bounding box, also taking the left-side bearing */ /* (or top bearing) into account. */ if ( face->sbit_table_type == TT_SBIT_TABLE_TYPE_SBIX && loader.n_contours > 0 ) { FT_Int bitmap_left; FT_Int bitmap_top; if ( load_flags & FT_LOAD_VERTICAL_LAYOUT ) { /* This is a guess, since Apple's CoreText engine doesn't */ /* really do vertical typesetting. */ bitmap_left = loader.bbox.xMin; bitmap_top = loader.top_bearing; } else { bitmap_left = loader.left_bearing; bitmap_top = loader.bbox.yMin; } glyph->bitmap_left += FT_MulFix( bitmap_left, x_scale ) >> 6; glyph->bitmap_top += FT_MulFix( bitmap_top, y_scale ) >> 6; } /* sanity checks: if `xxxAdvance' in the sbit metric */ /* structure isn't set, use `linearXXXAdvance' */ if ( !glyph->metrics.horiAdvance && glyph->linearHoriAdvance ) glyph->metrics.horiAdvance = FT_MulFix( glyph->linearHoriAdvance, x_scale ); if ( !glyph->metrics.vertAdvance && glyph->linearVertAdvance ) glyph->metrics.vertAdvance = FT_MulFix( glyph->linearVertAdvance, y_scale ); } return FT_Err_Ok; } } if ( load_flags & FT_LOAD_SBITS_ONLY ) { error = FT_THROW( Invalid_Argument ); goto Exit; } #endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */ /* if FT_LOAD_NO_SCALE is not set, `ttmetrics' must be valid */ if ( !( load_flags & FT_LOAD_NO_SCALE ) && !size->ttmetrics.valid ) { error = FT_THROW( Invalid_Size_Handle ); goto Exit; } #ifdef FT_CONFIG_OPTION_SVG /* check for OT-SVG */ if ( ( load_flags & FT_LOAD_COLOR ) && ( (TT_Face)glyph->face )->svg ) { SFNT_Service sfnt; FT_Short leftBearing; FT_Short topBearing; FT_UShort advanceX; FT_UShort advanceY; FT_TRACE3(( "Trying to load SVG glyph\n" )); sfnt = (SFNT_Service)( (TT_Face)glyph->face )->sfnt; error = sfnt->load_svg_doc( glyph, glyph_index ); if ( !error ) { TT_Face face = (TT_Face)glyph->face; FT_TRACE3(( "Successfully loaded SVG glyph\n" )); glyph->format = FT_GLYPH_FORMAT_SVG; sfnt->get_metrics( face, FALSE, glyph_index, &leftBearing, &advanceX ); sfnt->get_metrics( face, TRUE, glyph_index, &topBearing, &advanceY ); advanceX = (FT_UShort)FT_MulDiv( advanceX, glyph->face->size->metrics.x_ppem, glyph->face->units_per_EM ); advanceY = (FT_UShort)FT_MulDiv( advanceY, glyph->face->size->metrics.y_ppem, glyph->face->units_per_EM ); glyph->metrics.horiAdvance = advanceX << 6; glyph->metrics.vertAdvance = advanceY << 6; return error; } FT_TRACE3(( "Failed to load SVG glyph\n" )); } /* return immediately if we only want SVG glyphs */ if ( load_flags & FT_LOAD_SVG_ONLY ) { error = FT_THROW( Invalid_Argument ); goto Exit; } #endif /* FT_CONFIG_OPTION_SVG */ error = tt_loader_init( &loader, size, glyph, load_flags, FALSE ); if ( error ) goto Exit; /* done if we are only interested in the `hdmx` advance */ if ( load_flags & FT_LOAD_ADVANCE_ONLY && !( load_flags & FT_LOAD_VERTICAL_LAYOUT ) && loader.widthp ) { glyph->metrics.horiAdvance = loader.widthp[glyph_index] * 64; goto Done; } glyph->format = FT_GLYPH_FORMAT_OUTLINE; glyph->num_subglyphs = 0; glyph->outline.flags = 0; /* main loading loop */ error = load_truetype_glyph( &loader, glyph_index, 0, FALSE ); |
︙ | ︙ | |||
3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 | FT_TRACE1(( " subglyphs = %u, contours = %hd, points = %hd," " flags = 0x%.3x\n", loader.gloader->base.num_subglyphs, glyph->outline.n_contours, glyph->outline.n_points, glyph->outline.flags )); tt_loader_done( &loader ); Exit: #ifdef FT_DEBUG_LEVEL_TRACE if ( error ) FT_TRACE1(( " failed (error code 0x%x)\n", error )); | > | 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 | FT_TRACE1(( " subglyphs = %u, contours = %hd, points = %hd," " flags = 0x%.3x\n", loader.gloader->base.num_subglyphs, glyph->outline.n_contours, glyph->outline.n_points, glyph->outline.flags )); Done: tt_loader_done( &loader ); Exit: #ifdef FT_DEBUG_LEVEL_TRACE if ( error ) FT_TRACE1(( " failed (error code 0x%x)\n", error )); |
︙ | ︙ |
Changes to jni/freetype/src/truetype/ttgload.h.
1 2 3 4 5 6 | /**************************************************************************** * * ttgload.h * * TrueType Glyph Loader (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttgload.h * * TrueType Glyph Loader (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/truetype/ttgxvar.c.
1 2 3 4 5 6 | /**************************************************************************** * * ttgxvar.c * * TrueType GX Font Variation loader * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttgxvar.c * * TrueType GX Font Variation loader * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, Werner Lemberg, and George Williams. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
147 148 149 150 151 152 153 | { FT_UShort *points = NULL; FT_UInt n; FT_UInt runcnt; FT_UInt i, j; FT_UShort first; FT_Memory memory = stream->memory; | | < < | 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | { FT_UShort *points = NULL; FT_UInt n; FT_UInt runcnt; FT_UInt i, j; FT_UShort first; FT_Memory memory = stream->memory; FT_Error error; *point_cnt = 0; n = FT_GET_BYTE(); if ( n == 0 ) return ALL_POINTS; |
︙ | ︙ | |||
262 263 264 265 266 267 268 | FT_UInt delta_cnt ) { FT_Fixed *deltas = NULL; FT_UInt runcnt, cnt; FT_UInt i, j; FT_UInt bytes_used; FT_Memory memory = stream->memory; | | < < | 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 | FT_UInt delta_cnt ) { FT_Fixed *deltas = NULL; FT_UInt runcnt, cnt; FT_UInt i, j; FT_UInt bytes_used; FT_Memory memory = stream->memory; FT_Error error; if ( FT_QNEW_ARRAY( deltas, delta_cnt ) ) return NULL; i = 0; bytes_used = 0; |
︙ | ︙ | |||
357 358 359 360 361 362 363 | static void ft_var_load_avar( TT_Face face ) { FT_Stream stream = FT_FACE_STREAM( face ); FT_Memory memory = stream->memory; GX_Blend blend = face->blend; GX_AVarSegment segment; | | < < | 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 | static void ft_var_load_avar( TT_Face face ) { FT_Stream stream = FT_FACE_STREAM( face ); FT_Memory memory = stream->memory; GX_Blend blend = face->blend; GX_AVarSegment segment; FT_Error error; FT_Long version; FT_Long axisCount; FT_Int i, j; FT_ULong table_len; FT_TRACE2(( "AVAR " )); blend->avar_loaded = TRUE; error = face->goto_table( face, TTAG_avar, stream, &table_len ); if ( error ) { |
︙ | ︙ | |||
417 418 419 420 421 422 423 | /* Failure. Free everything we have done so far. We must do */ /* it right now since loading the `avar' table is optional. */ for ( j = i - 1; j >= 0; j-- ) FT_FREE( blend->avar_segment[j].correspondence ); FT_FREE( blend->avar_segment ); | < | 411 412 413 414 415 416 417 418 419 420 421 422 423 424 | /* Failure. Free everything we have done so far. We must do */ /* it right now since loading the `avar' table is optional. */ for ( j = i - 1; j >= 0; j-- ) FT_FREE( blend->avar_segment[j].correspondence ); FT_FREE( blend->avar_segment ); goto Exit; } for ( j = 0; j < segment->pairCount; j++ ) { segment->correspondence[j].fromCoord = FT_fdot14ToFixed( FT_GET_SHORT() ); |
︙ | ︙ | |||
2749 2750 2751 2752 2753 2754 2755 | { switch ( manageCvt ) { case mcvt_load: /* The cvt table has been loaded already; every time we change the */ /* blend we may need to reload and remodify the cvt table. */ FT_FREE( face->cvt ); | < < | 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 | { switch ( manageCvt ) { case mcvt_load: /* The cvt table has been loaded already; every time we change the */ /* blend we may need to reload and remodify the cvt table. */ FT_FREE( face->cvt ); error = tt_face_load_cvt( face, face->root.stream ); break; case mcvt_modify: /* The original cvt table is in memory. All we need to do is */ /* apply the `cvar' table (if any). */ error = tt_face_vary_cvt( face, face->root.stream ); break; case mcvt_retain: /* The cvt table is correct for this set of coordinates. */ break; } } /* enforce recomputation of the PostScript name; */ FT_FREE( face->postscript_name ); Exit: return error; } /************************************************************************** |
︙ | ︙ | |||
3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 | localpoints = ft_var_readpackedpoints( stream, table_len, &point_count ); points = localpoints; } else { points = sharedpoints; point_count = spoint_count; } deltas = ft_var_readpackeddeltas( stream, table_len, point_count == 0 ? face->cvt_size | > | 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 | localpoints = ft_var_readpackedpoints( stream, table_len, &point_count ); points = localpoints; } else { localpoints = NULL; points = sharedpoints; point_count = spoint_count; } deltas = ft_var_readpackeddeltas( stream, table_len, point_count == 0 ? face->cvt_size |
︙ | ︙ |
Changes to jni/freetype/src/truetype/ttgxvar.h.
1 2 3 4 5 6 | /**************************************************************************** * * ttgxvar.h * * TrueType GX Font Variation loader (specification) * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttgxvar.h * * TrueType GX Font Variation loader (specification) * * Copyright (C) 2004-2022 by * David Turner, Robert Wilhelm, Werner Lemberg and George Williams. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/truetype/ttinterp.c.
1 2 3 4 5 6 | /**************************************************************************** * * ttinterp.c * * TrueType bytecode interpreter (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttinterp.c * * TrueType bytecode interpreter (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
511 512 513 514 515 516 517 518 519 520 521 522 523 524 | exec->GS.projVector.y = 0x0000; exec->GS.freeVector = exec->GS.projVector; exec->GS.dualVector = exec->GS.projVector; exec->GS.round_state = 1; exec->GS.loop = 1; /* some glyphs leave something on the stack. so we clean it */ /* before a new execution. */ exec->top = 0; exec->callTop = 0; return exec->face->interpreter( exec ); | > > > > > > > > | 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 | exec->GS.projVector.y = 0x0000; exec->GS.freeVector = exec->GS.projVector; exec->GS.dualVector = exec->GS.projVector; exec->GS.round_state = 1; exec->GS.loop = 1; #ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY exec->iup_called = FALSE; #endif #ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL exec->iupx_called = FALSE; exec->iupy_called = FALSE; #endif /* some glyphs leave something on the stack. so we clean it */ /* before a new execution. */ exec->top = 0; exec->callTop = 0; return exec->face->interpreter( exec ); |
︙ | ︙ | |||
5256 5257 5258 5259 5260 5261 5262 | { if ( exc->pedantic_hinting ) exc->error = FT_THROW( Invalid_Reference ); return; } } | > > > | | | | > > | > > | 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 | { if ( exc->pedantic_hinting ) exc->error = FT_THROW( Invalid_Reference ); return; } } /* INSTCTRL should only be used in the CVT program */ if ( exc->iniRange == tt_coderange_cvt ) { exc->GS.instruct_control &= ~(FT_Byte)Kf; exc->GS.instruct_control |= (FT_Byte)L; } /* except to change the subpixel flags temporarily */ else if ( exc->iniRange == tt_coderange_glyph && K == 3 ) { #ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY /* INSTCTRL modifying flag 3 also has an effect */ /* outside of the CVT program */ if ( SUBPIXEL_HINTING_INFINALITY ) exc->ignore_x_mode = !FT_BOOL( L == 4 ); #endif #ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL /* Native ClearType fonts sign a waiver that turns off all backward */ /* compatibility hacks and lets them program points to the grid like */ /* it's 1996. They might sign a waiver for just one glyph, though. */ if ( SUBPIXEL_HINTING_MINIMAL ) exc->backward_compatibility = !FT_BOOL( L == 4 ); #endif } else if ( exc->pedantic_hinting ) exc->error = FT_THROW( Invalid_Reference ); } /************************************************************************** * * SCANCTRL[]: SCAN ConTRoL * Opcode range: 0x85 |
︙ | ︙ | |||
7751 7752 7753 7754 7755 7756 7757 | }; FT_UShort opcode_patterns = 1; FT_UShort opcode_pointer[1] = { 0 }; FT_UShort opcode_size[1] = { 1 }; #endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */ | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 | }; FT_UShort opcode_patterns = 1; FT_UShort opcode_pointer[1] = { 0 }; FT_UShort opcode_size[1] = { 1 }; #endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */ /* We restrict the number of twilight points to a reasonable, */ /* heuristic value to avoid slow execution of malformed bytecode. */ num_twilight_points = FT_MAX( 30, 2 * ( exc->pts.n_points + exc->cvtSize ) ); if ( exc->twilight.n_points > num_twilight_points ) { if ( num_twilight_points > 0xFFFFU ) |
︙ | ︙ |
Changes to jni/freetype/src/truetype/ttinterp.h.
1 2 3 4 5 6 | /**************************************************************************** * * ttinterp.h * * TrueType bytecode interpreter (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttinterp.h * * TrueType bytecode interpreter (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/truetype/ttobjs.c.
1 2 3 4 5 6 | /**************************************************************************** * * ttobjs.c * * Objects manager (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttobjs.c * * Objects manager (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
723 724 725 726 727 728 729 | ttface->face_flags |= FT_FACE_FLAG_TRICKY; #endif error = tt_face_load_hdmx( face, stream ); if ( error ) goto Exit; | | > | 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 | ttface->face_flags |= FT_FACE_FLAG_TRICKY; #endif error = tt_face_load_hdmx( face, stream ); if ( error ) goto Exit; if ( FT_IS_SCALABLE( ttface ) || FT_HAS_SBIX( ttface ) ) { #ifdef FT_CONFIG_OPTION_INCREMENTAL if ( !ttface->internal->incremental_interface ) #endif { error = tt_face_load_loca( face, stream ); |
︙ | ︙ | |||
1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 | { size->ttmetrics.scale = size_metrics->y_scale; size->ttmetrics.ppem = size_metrics->y_ppem; size->ttmetrics.x_ratio = FT_DivFix( size_metrics->x_ppem, size_metrics->y_ppem ); size->ttmetrics.y_ratio = 0x10000L; } size->metrics = size_metrics; #ifdef TT_USE_BYTECODE_INTERPRETER size->cvt_ready = -1; #endif /* TT_USE_BYTECODE_INTERPRETER */ | > > | 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 | { size->ttmetrics.scale = size_metrics->y_scale; size->ttmetrics.ppem = size_metrics->y_ppem; size->ttmetrics.x_ratio = FT_DivFix( size_metrics->x_ppem, size_metrics->y_ppem ); size->ttmetrics.y_ratio = 0x10000L; } size->widthp = tt_face_get_device_metrics( face, size_metrics->x_ppem, 0 ); size->metrics = size_metrics; #ifdef TT_USE_BYTECODE_INTERPRETER size->cvt_ready = -1; #endif /* TT_USE_BYTECODE_INTERPRETER */ |
︙ | ︙ |
Changes to jni/freetype/src/truetype/ttobjs.h.
1 2 3 4 5 6 | /**************************************************************************** * * ttobjs.h * * Objects manager (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttobjs.h * * Objects manager (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
277 278 279 280 281 282 283 284 285 286 287 288 289 290 | /* we have our own copy of metrics so that we can modify */ /* it without affecting auto-hinting (when used) */ FT_Size_Metrics* metrics; /* for the current rendering mode */ FT_Size_Metrics hinted_metrics; /* for the hinted rendering mode */ TT_Size_Metrics ttmetrics; FT_ULong strike_index; /* 0xFFFFFFFF to indicate invalid */ #ifdef TT_USE_BYTECODE_INTERPRETER FT_Long point_size; /* for the `MPS' bytecode instruction */ | > > | 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 | /* we have our own copy of metrics so that we can modify */ /* it without affecting auto-hinting (when used) */ FT_Size_Metrics* metrics; /* for the current rendering mode */ FT_Size_Metrics hinted_metrics; /* for the hinted rendering mode */ TT_Size_Metrics ttmetrics; FT_Byte* widthp; /* glyph widths from the hdmx table */ FT_ULong strike_index; /* 0xFFFFFFFF to indicate invalid */ #ifdef TT_USE_BYTECODE_INTERPRETER FT_Long point_size; /* for the `MPS' bytecode instruction */ |
︙ | ︙ |
Changes to jni/freetype/src/truetype/ttpload.c.
1 2 3 4 5 6 | /**************************************************************************** * * ttpload.c * * TrueType-specific tables loader (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttpload.c * * TrueType-specific tables loader (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
493 494 495 496 497 498 499 500 501 502 503 504 505 506 | FT_UNUSED( stream ); return FT_Err_Ok; #endif } /************************************************************************** * * @Function: * tt_face_load_hdmx * * @Description: | > > > > > > > > | 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 | FT_UNUSED( stream ); return FT_Err_Ok; #endif } FT_COMPARE_DEF( int ) compare_ppem( const void* a, const void* b ) { return **(FT_Byte**)a - **(FT_Byte**)b; } /************************************************************************** * * @Function: * tt_face_load_hdmx * * @Description: |
︙ | ︙ | |||
570 571 572 573 574 575 576 | { FT_TRACE2(( "with record size off by %ld bytes rejected\n", (FT_Long)record_size - ( ( face->root.num_glyphs + 2 + 3 ) & ~3 ) )); goto Fail; } | | < < < | | > > > > | 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 | { FT_TRACE2(( "with record size off by %ld bytes rejected\n", (FT_Long)record_size - ( ( face->root.num_glyphs + 2 + 3 ) & ~3 ) )); goto Fail; } if ( FT_QNEW_ARRAY( face->hdmx_records, num_records ) ) goto Fail; for ( nn = 0; nn < num_records; nn++ ) { if ( p + record_size > limit ) break; face->hdmx_records[nn] = p; p += record_size; } /* The records must be already sorted by ppem but it does not */ /* hurt to make sure so that the binary search works later. */ ft_qsort( face->hdmx_records, nn, sizeof ( FT_Byte* ), compare_ppem ); face->hdmx_record_count = nn; face->hdmx_table_size = table_size; face->hdmx_record_size = record_size; FT_TRACE2(( "%ux%lu loaded\n", num_records, record_size )); Exit: |
︙ | ︙ | |||
607 608 609 610 611 612 613 | FT_LOCAL_DEF( void ) tt_face_free_hdmx( TT_Face face ) { FT_Stream stream = face->root.stream; FT_Memory memory = stream->memory; | | | > | > > | | | > | > | > | > > | < < > | 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 | FT_LOCAL_DEF( void ) tt_face_free_hdmx( TT_Face face ) { FT_Stream stream = face->root.stream; FT_Memory memory = stream->memory; FT_FREE( face->hdmx_records ); FT_FRAME_RELEASE( face->hdmx_table ); } /************************************************************************** * * Return the advance width table for a given pixel size if it is found * in the font's `hdmx' table (if any). The records must be sorted for * the binary search to work properly. */ FT_LOCAL_DEF( FT_Byte* ) tt_face_get_device_metrics( TT_Face face, FT_UInt ppem, FT_UInt gindex ) { FT_UInt min = 0; FT_UInt max = face->hdmx_record_count; FT_UInt mid; FT_Byte* result = NULL; while ( min < max ) { mid = ( min + max ) >> 1; if ( face->hdmx_records[mid][0] > ppem ) max = mid; else if ( face->hdmx_records[mid][0] < ppem ) min = mid + 1; else { result = face->hdmx_records[mid] + 2 + gindex; break; } } return result; } /* END */ |
Changes to jni/freetype/src/truetype/ttpload.h.
1 2 3 4 5 6 | /**************************************************************************** * * ttpload.h * * TrueType-specific tables loader (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttpload.h * * TrueType-specific tables loader (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/truetype/ttsubpix.c.
1 2 3 4 5 6 | /**************************************************************************** * * ttsubpix.c * * TrueType Subpixel Hinting. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttsubpix.c * * TrueType Subpixel Hinting. * * Copyright (C) 2010-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/truetype/ttsubpix.h.
1 2 3 4 5 6 | /**************************************************************************** * * ttsubpix.h * * TrueType Subpixel Hinting. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * ttsubpix.h * * TrueType Subpixel Hinting. * * Copyright (C) 2010-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/module.mk.
1 2 3 4 5 | # # FreeType 2 Type1 module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Type1 module definition # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/rules.mk.
1 2 3 4 5 | # # FreeType 2 Type1 driver configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Type1 driver configuration rules # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/t1afm.c.
1 2 3 4 5 6 | /**************************************************************************** * * t1afm.c * * AFM support for Type 1 fonts (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1afm.c * * AFM support for Type 1 fonts (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/t1afm.h.
1 2 3 4 5 6 | /**************************************************************************** * * t1afm.h * * AFM support for Type 1 fonts (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1afm.h * * AFM support for Type 1 fonts (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/t1driver.c.
1 2 3 4 5 6 | /**************************************************************************** * * t1driver.c * * Type 1 driver interface (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1driver.c * * Type 1 driver interface (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/t1driver.h.
1 2 3 4 5 6 | /**************************************************************************** * * t1driver.h * * High-level Type 1 driver interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1driver.h * * High-level Type 1 driver interface (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/t1errors.h.
1 2 3 4 5 6 | /**************************************************************************** * * t1errors.h * * Type 1 error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1errors.h * * Type 1 error codes (specification only). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/t1gload.c.
1 2 3 4 5 6 | /**************************************************************************** * * t1gload.c * * Type 1 Glyph Loader (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1gload.c * * Type 1 Glyph Loader (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/t1gload.h.
1 2 3 4 5 6 | /**************************************************************************** * * t1gload.h * * Type 1 Glyph Loader (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1gload.h * * Type 1 Glyph Loader (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/t1load.c.
1 2 3 4 5 6 | /**************************************************************************** * * t1load.c * * Type 1 font loader (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1load.c * * Type 1 font loader (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
1526 1527 1528 1529 1530 1531 1532 | FT_FREE( encode->char_index ); FT_FREE( encode->char_name ); T1_Release_Table( char_table ); } /* we use a T1_Table to store our charnames */ loader->num_chars = encode->num_chars = array_size; | | | | 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 | FT_FREE( encode->char_index ); FT_FREE( encode->char_name ); T1_Release_Table( char_table ); } /* we use a T1_Table to store our charnames */ loader->num_chars = encode->num_chars = array_size; if ( FT_QNEW_ARRAY( encode->char_index, array_size ) || FT_QNEW_ARRAY( encode->char_name, array_size ) || FT_SET_ERROR( psaux->ps_table_funcs->init( char_table, array_size, memory ) ) ) { parser->root.error = error; return; } |
︙ | ︙ | |||
1768 1769 1770 1771 1772 1773 1774 | " (from %d to %ld)\n", num_subrs, ( parser->root.limit - parser->root.cursor ) >> 3 )); num_subrs = ( parser->root.limit - parser->root.cursor ) >> 3; if ( !loader->subrs_hash ) { | | | 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 | " (from %d to %ld)\n", num_subrs, ( parser->root.limit - parser->root.cursor ) >> 3 )); num_subrs = ( parser->root.limit - parser->root.cursor ) >> 3; if ( !loader->subrs_hash ) { if ( FT_QNEW( loader->subrs_hash ) ) goto Fail; error = ft_hash_num_init( loader->subrs_hash, memory ); if ( error ) goto Fail; } } |
︙ | ︙ |
Changes to jni/freetype/src/type1/t1load.h.
1 2 3 4 5 6 | /**************************************************************************** * * t1load.h * * Type 1 font loader (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1load.h * * Type 1 font loader (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/t1objs.c.
1 2 3 4 5 6 | /**************************************************************************** * * t1objs.c * * Type 1 objects manager (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1objs.c * * Type 1 objects manager (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/t1objs.h.
1 2 3 4 5 6 | /**************************************************************************** * * t1objs.h * * Type 1 objects manager (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1objs.h * * Type 1 objects manager (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/t1parse.c.
1 2 3 4 5 6 | /**************************************************************************** * * t1parse.c * * Type 1 parser (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1parse.c * * Type 1 parser (body). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/t1parse.h.
1 2 3 4 5 6 | /**************************************************************************** * * t1parse.h * * Type 1 parser (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1parse.h * * Type 1 parser (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/t1tokens.h.
1 2 3 4 5 6 | /**************************************************************************** * * t1tokens.h * * Type 1 tokenizer (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t1tokens.h * * Type 1 tokenizer (specification). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type1/type1.c.
1 2 3 4 5 6 | /**************************************************************************** * * type1.c * * FreeType Type 1 driver component (body only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * type1.c * * FreeType Type 1 driver component (body only). * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type42/module.mk.
1 2 3 4 5 | # # FreeType 2 Type42 module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Type42 module definition # # Copyright (C) 2002-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/type42/rules.mk.
1 2 3 4 5 | # # FreeType 2 Type42 driver configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Type42 driver configuration rules # # Copyright (C) 2002-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/type42/t42drivr.c.
1 2 3 4 5 6 | /**************************************************************************** * * t42drivr.c * * High-level Type 42 driver interface (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t42drivr.c * * High-level Type 42 driver interface (body). * * Copyright (C) 2002-2022 by * Roberto Alameda. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
145 146 147 148 149 150 151 | t42_ps_has_glyph_names( FT_Face face ) { FT_UNUSED( face ); return 1; } | < < < < < < < < < < > | | 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | t42_ps_has_glyph_names( FT_Face face ) { FT_UNUSED( face ); return 1; } static const FT_Service_PsInfoRec t42_service_ps_info = { (PS_GetFontInfoFunc) t42_ps_get_font_info, /* ps_get_font_info */ (PS_GetFontExtraFunc) t42_ps_get_font_extra, /* ps_get_font_extra */ (PS_HasGlyphNamesFunc) t42_ps_has_glyph_names, /* ps_has_glyph_names */ /* Type42 fonts don't have a Private dict */ (PS_GetFontPrivateFunc)NULL, /* ps_get_font_private */ /* not implemented */ (PS_GetFontValueFunc) NULL /* ps_get_font_value */ }; /* * |
︙ | ︙ |
Changes to jni/freetype/src/type42/t42drivr.h.
1 2 3 4 5 6 | /**************************************************************************** * * t42drivr.h * * High-level Type 42 driver interface (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t42drivr.h * * High-level Type 42 driver interface (specification). * * Copyright (C) 2002-2022 by * Roberto Alameda. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type42/t42error.h.
1 2 3 4 5 6 | /**************************************************************************** * * t42error.h * * Type 42 error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t42error.h * * Type 42 error codes (specification only). * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type42/t42objs.c.
1 2 3 4 5 6 | /**************************************************************************** * * t42objs.c * * Type 42 objects manager (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t42objs.c * * Type 42 objects manager (body). * * Copyright (C) 2002-2022 by * Roberto Alameda. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
40 41 42 43 44 45 46 | PSAux_Service psaux = (PSAux_Service)face->psaux; t42_loader_init( &loader, face ); parser = &loader.parser; | | < < < < < < | | 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | PSAux_Service psaux = (PSAux_Service)face->psaux; t42_loader_init( &loader, face ); parser = &loader.parser; face->ttf_data = NULL; face->ttf_size = 0; error = t42_parser_init( parser, face->root.stream, memory, psaux); if ( error ) goto Exit; |
︙ | ︙ | |||
148 149 150 151 152 153 154 155 156 157 158 159 160 161 | type1->encoding.code_first = min_char; type1->encoding.code_last = max_char; type1->encoding.num_chars = loader.num_chars; } Exit: t42_loader_done( &loader ); return error; } /***************** Driver Functions *************/ | > > > > > | 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | type1->encoding.code_first = min_char; type1->encoding.code_last = max_char; type1->encoding.num_chars = loader.num_chars; } Exit: t42_loader_done( &loader ); if ( error ) { FT_FREE(face->ttf_data); face->ttf_size = 0; } return error; } /***************** Driver Functions *************/ |
︙ | ︙ |
Changes to jni/freetype/src/type42/t42objs.h.
1 2 3 4 5 6 | /**************************************************************************** * * t42objs.h * * Type 42 objects manager (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t42objs.h * * Type 42 objects manager (specification). * * Copyright (C) 2002-2022 by * Roberto Alameda. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type42/t42parse.c.
1 2 3 4 5 6 | /**************************************************************************** * * t42parse.c * * Type 42 font parser (body). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t42parse.c * * Type 42 font parser (body). * * Copyright (C) 2002-2022 by * Roberto Alameda. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ | |||
359 360 361 362 363 364 365 | FT_FREE( encode->char_index ); FT_FREE( encode->char_name ); T1_Release_Table( char_table ); } /* we use a T1_Table to store our charnames */ loader->num_chars = encode->num_chars = count; | | | | 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 | FT_FREE( encode->char_index ); FT_FREE( encode->char_name ); T1_Release_Table( char_table ); } /* we use a T1_Table to store our charnames */ loader->num_chars = encode->num_chars = count; if ( FT_QNEW_ARRAY( encode->char_index, count ) || FT_QNEW_ARRAY( encode->char_name, count ) || FT_SET_ERROR( psaux->ps_table_funcs->init( char_table, count, memory ) ) ) { parser->root.error = error; return; } |
︙ | ︙ | |||
534 535 536 537 538 539 540 | { T42_Parser parser = &loader->parser; FT_Memory memory = parser->root.memory; FT_Byte* cur; FT_Byte* limit = parser->root.limit; FT_Error error; FT_Int num_tables = 0; | | > > > > | 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 | { T42_Parser parser = &loader->parser; FT_Memory memory = parser->root.memory; FT_Byte* cur; FT_Byte* limit = parser->root.limit; FT_Error error; FT_Int num_tables = 0; FT_Long ttf_count; FT_Long ttf_reserved; FT_ULong n, string_size, old_string_size, real_size; FT_Byte* string_buf = NULL; FT_Bool allocated = 0; T42_Load_Status status; /** There should only be one sfnts array, but free any previous. */ FT_FREE( face->ttf_data ); face->ttf_size = 0; /* The format is */ /* */ /* /sfnts [ <hexstring> <hexstring> ... ] def */ /* */ /* or */ /* */ |
︙ | ︙ | |||
570 571 572 573 574 575 576 | goto Fail; } T1_Skip_Spaces( parser ); status = BEFORE_START; string_size = 0; old_string_size = 0; | | > > > > | 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 | goto Fail; } T1_Skip_Spaces( parser ); status = BEFORE_START; string_size = 0; old_string_size = 0; ttf_count = 0; ttf_reserved = 12; if ( FT_QALLOC( face->ttf_data, ttf_reserved ) ) goto Fail; FT_TRACE2(( "\n" )); FT_TRACE2(( "t42_parse_sfnts:\n" )); while ( parser->root.cursor < limit ) { FT_ULong size; cur = parser->root.cursor; if ( *cur == ']' ) { parser->root.cursor++; face->ttf_size = ttf_count; goto Exit; } else if ( *cur == '<' ) { if ( string_buf && !allocated ) { |
︙ | ︙ | |||
680 681 682 683 684 685 686 | { FT_ERROR(( "t42_parse_sfnts: invalid string\n" )); error = FT_THROW( Invalid_File_Format ); goto Fail; } FT_TRACE2(( " PS string size %5lu bytes, offset 0x%08lx (%lu)\n", | | | | > > > | | | | | > | | > | | > | | | | | > > > > > | 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 | { FT_ERROR(( "t42_parse_sfnts: invalid string\n" )); error = FT_THROW( Invalid_File_Format ); goto Fail; } FT_TRACE2(( " PS string size %5lu bytes, offset 0x%08lx (%lu)\n", string_size, ttf_count, ttf_count )); /* The whole TTF is now loaded into `string_buf'. We are */ /* checking its contents while copying it to `ttf_data'. */ size = (FT_ULong)( limit - parser->root.cursor ); for ( n = 0; n < string_size; n++ ) { switch ( status ) { case BEFORE_START: /* load offset table, 12 bytes */ if ( ttf_count < 12 ) { face->ttf_data[ttf_count++] = string_buf[n]; continue; } else { FT_Long ttf_reserved_prev = ttf_reserved; num_tables = 16 * face->ttf_data[4] + face->ttf_data[5]; status = BEFORE_TABLE_DIR; ttf_reserved = 12 + 16 * num_tables; FT_TRACE2(( " SFNT directory contains %d tables\n", num_tables )); if ( (FT_Long)size < ttf_reserved ) { FT_ERROR(( "t42_parse_sfnts: invalid data in sfnts array\n" )); error = FT_THROW( Invalid_File_Format ); goto Fail; } if ( FT_QREALLOC( face->ttf_data, ttf_reserved_prev, ttf_reserved ) ) goto Fail; } /* fall through */ case BEFORE_TABLE_DIR: /* the offset table is read; read the table directory */ if ( ttf_count < ttf_reserved ) { face->ttf_data[ttf_count++] = string_buf[n]; continue; } else { int i; FT_ULong len; FT_Long ttf_reserved_prev = ttf_reserved; FT_TRACE2(( "\n" )); FT_TRACE2(( " table length\n" )); FT_TRACE2(( " ------------------------------\n" )); for ( i = 0; i < num_tables; i++ ) { FT_Byte* p = face->ttf_data + 12 + 16 * i + 12; len = FT_PEEK_ULONG( p ); FT_TRACE2(( " %4i 0x%08lx (%lu)\n", i, len, len )); if ( len > size || ttf_reserved > (FT_Long)( size - len ) ) { FT_ERROR(( "t42_parse_sfnts:" " invalid data in sfnts array\n" )); error = FT_THROW( Invalid_File_Format ); goto Fail; } /* Pad to a 4-byte boundary length */ ttf_reserved += (FT_Long)( ( len + 3 ) & ~3U ); } ttf_reserved += 1; status = OTHER_TABLES; FT_TRACE2(( "\n" )); FT_TRACE2(( " allocating %ld bytes\n", ttf_reserved )); FT_TRACE2(( "\n" )); if ( FT_QREALLOC( face->ttf_data, ttf_reserved_prev, ttf_reserved ) ) goto Fail; } /* fall through */ case OTHER_TABLES: /* all other tables are just copied */ if ( ttf_count >= ttf_reserved ) { FT_ERROR(( "t42_parse_sfnts: too much binary data\n" )); error = FT_THROW( Invalid_File_Format ); goto Fail; } face->ttf_data[ttf_count++] = string_buf[n]; } } T1_Skip_Spaces( parser ); } /* if control reaches this point, the format was not valid */ error = FT_THROW( Invalid_File_Format ); Fail: parser->root.error = error; Exit: if ( parser->root.error ) { FT_FREE( face->ttf_data ); face->ttf_size = 0; } if ( allocated ) FT_FREE( string_buf ); } static void t42_parse_charstrings( T42_Face face, |
︙ | ︙ |
Changes to jni/freetype/src/type42/t42parse.h.
1 2 3 4 5 6 | /**************************************************************************** * * t42parse.h * * Type 42 font parser (specification). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t42parse.h * * Type 42 font parser (specification). * * Copyright (C) 2002-2022 by * Roberto Alameda. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type42/t42types.h.
1 2 3 4 5 6 | /**************************************************************************** * * t42types.h * * Type 42 font data types (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * t42types.h * * Type 42 font data types (specification only). * * Copyright (C) 2002-2022 by * Roberto Alameda. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/type42/type42.c.
1 2 3 4 5 6 | /**************************************************************************** * * type42.c * * FreeType Type 42 driver component. * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * type42.c * * FreeType Type 42 driver component. * * Copyright (C) 2002-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/winfonts/fnterrs.h.
1 2 3 4 5 6 | /**************************************************************************** * * fnterrs.h * * Win FNT/FON error codes (specification only). * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * fnterrs.h * * Win FNT/FON error codes (specification only). * * Copyright (C) 2001-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. |
︙ | ︙ |
Changes to jni/freetype/src/winfonts/module.mk.
1 2 3 4 5 | # # FreeType 2 Windows FNT/FON module definition # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Windows FNT/FON module definition # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/winfonts/rules.mk.
1 2 3 4 5 | # # FreeType 2 Windows FNT/FON driver configuration rules # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # # FreeType 2 Windows FNT/FON driver configuration rules # # Copyright (C) 1996-2022 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, # and distributed under the terms of the FreeType project license, # LICENSE.TXT. By continuing to use, modify, or distribute this file you # indicate that you have read the license and understand and accept it # fully. |
︙ | ︙ |
Changes to jni/freetype/src/winfonts/winfnt.c.
1 2 3 4 5 6 | /**************************************************************************** * * winfnt.c * * FreeType font driver for Windows FNT/FON files * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * winfnt.c * * FreeType font driver for Windows FNT/FON files * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * Copyright 2003 Huw D M Davies for Codeweavers * Copyright 2007 Dmitry Timoshkov for Codeweavers * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute |
︙ | ︙ | |||
347 348 349 350 351 352 353 354 355 356 357 358 359 360 | type_id = FT_GET_USHORT_LE(); if ( !type_id ) break; count = FT_GET_USHORT_LE(); if ( type_id == 0x8008U ) { font_count = count; font_offset = FT_STREAM_POS() + 4 + (FT_ULong)( stream->cursor - stream->limit ); break; | > > > > | 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 | type_id = FT_GET_USHORT_LE(); if ( !type_id ) break; count = FT_GET_USHORT_LE(); FT_TRACE2(( type_id == 0x8007U ? "RT_FONTDIR count %hu\n" : type_id == 0x8008U ? "RT_FONT count %hu\n" : "", count )); if ( type_id == 0x8008U ) { font_count = count; font_offset = FT_STREAM_POS() + 4 + (FT_ULong)( stream->cursor - stream->limit ); break; |
︙ | ︙ |
Changes to jni/freetype/src/winfonts/winfnt.h.
1 2 3 4 5 6 | /**************************************************************************** * * winfnt.h * * FreeType font driver for Windows FNT/FON files * | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /**************************************************************************** * * winfnt.h * * FreeType font driver for Windows FNT/FON files * * Copyright (C) 1996-2022 by * David Turner, Robert Wilhelm, and Werner Lemberg. * Copyright 2007 Dmitry Timoshkov for Codeweavers * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and |
︙ | ︙ |
Changes to jni/freetype/vms_make.com.
1 2 | $! make FreeType 2 under OpenVMS $! | | | 1 2 3 4 5 6 7 8 9 10 | $! make FreeType 2 under OpenVMS $! $! Copyright (C) 2003-2022 by $! David Turner, Robert Wilhelm, and Werner Lemberg. $! $! This file is part of the FreeType project, and may only be used, modified, $! and distributed under the terms of the FreeType project license, $! LICENSE.TXT. By continuing to use, modify, or distribute this file you $! indicate that you have read the license and understand and accept it $! fully. |
︙ | ︙ |
Changes to undroid/build-undroidwish-win32.sh.
︙ | ︙ | |||
622 623 624 625 626 627 628 | # used by tkpath, too. #ZLIB_CFLAGS=-I${TCLDIR}/compat/zlib ZLIB_LIBS="-L${TCLDIR}/win -ltcl86" \ #./configure --prefix=${PFX_HERE} --build=i386-windows-mingw32 \ # --disable-shared --with-bzip2=no --with-png=no \ # --with-harfbuzz=no --with-zlib=yes || exit 1 ./configure --prefix=${PFX_HERE} --build=i386-windows-mingw32 \ --disable-shared --with-bzip2=no --with-png=no --with-brotli=no \ | | | 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 | # used by tkpath, too. #ZLIB_CFLAGS=-I${TCLDIR}/compat/zlib ZLIB_LIBS="-L${TCLDIR}/win -ltcl86" \ #./configure --prefix=${PFX_HERE} --build=i386-windows-mingw32 \ # --disable-shared --with-bzip2=no --with-png=no \ # --with-harfbuzz=no --with-zlib=yes || exit 1 ./configure --prefix=${PFX_HERE} --build=i386-windows-mingw32 \ --disable-shared --with-bzip2=no --with-png=no --with-brotli=no \ --with-harfbuzz=no --with-zlib=no --enable-freetype-config || exit 1 # remove some drivers to conserve space perl -ni -e 'print unless /pcf_driver/' objs/ftmodule.h perl -ni -e 'print unless /bdf_driver/' objs/ftmodule.h perl -ni -e 'print unless /cid_driver/' objs/ftmodule.h perl -ni -e 'print unless /pfr_driver/' objs/ftmodule.h perl -ni -e 'print unless /t42_driver/' objs/ftmodule.h perl -ni -e 'print unless /winfnt_driver/' objs/ftmodule.h |
︙ | ︙ |
Changes to undroid/build-undroidwish-win64.sh.
︙ | ︙ | |||
613 614 615 616 617 618 619 | # used by tkpath, too. #ZLIB_CFLAGS=-I${TCLDIR}/compat/zlib ZLIB_LIBS="-L${TCLDIR}/win -ltcl86" \ #./configure --prefix=${PFX_HERE} --build=x86_64-windows-mingw32 \ # --disable-shared --with-bzip2=no --with-png=no \ # --with-harfbuzz=no --with-zlib=yes || exit 1 ./configure --prefix=${PFX_HERE} --build=x86_64-windows-mingw32 \ --disable-shared --with-bzip2=no --with-png=no --with-brotli=no \ | | | 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 | # used by tkpath, too. #ZLIB_CFLAGS=-I${TCLDIR}/compat/zlib ZLIB_LIBS="-L${TCLDIR}/win -ltcl86" \ #./configure --prefix=${PFX_HERE} --build=x86_64-windows-mingw32 \ # --disable-shared --with-bzip2=no --with-png=no \ # --with-harfbuzz=no --with-zlib=yes || exit 1 ./configure --prefix=${PFX_HERE} --build=x86_64-windows-mingw32 \ --disable-shared --with-bzip2=no --with-png=no --with-brotli=no \ --with-harfbuzz=no --with-zlib=no --enable-freetype-config || exit 1 # remove some drivers to conserve space perl -ni -e 'print unless /pcf_driver/' objs/ftmodule.h perl -ni -e 'print unless /bdf_driver/' objs/ftmodule.h perl -ni -e 'print unless /cid_driver/' objs/ftmodule.h perl -ni -e 'print unless /pfr_driver/' objs/ftmodule.h perl -ni -e 'print unless /t42_driver/' objs/ftmodule.h perl -ni -e 'print unless /winfnt_driver/' objs/ftmodule.h |
︙ | ︙ |